树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧。

树莓派版本:Model 3B+

树莓派系统:Raspbian Stretch with desktop and recommended software,April 2019

连接装置

准备一个 LED 灯,两个两头都为母的杜邦线。对照下图连接树莓派和 LED 灯,要求一个是地线(GND)连接灯的负极,一个有 GPIO + BCM 编号连接正极。我选择了 pin 号为 6 和 12 的两个引脚。你也可以选择别的,记得将之后的代码中 BCM 编号修改正确

在断电状态下连接。连接好的如下图,我的 LED 灯有正负极的提示,图中所示红色箭头指向的是正极,蓝色箭头是负极。如果你的 LED 灯是最简单的那种,长引脚就是正极,短的负极。

树莓派开机。

安装 RPI.GPIO

我装的树莓派系统已经满足所需要的环境,不需要额外下载。

你可以测试是否已经有该模块,在终端打开 Python3,然后尝试导入库: import RPi.GPIO as GPIO 。如果没有出现error,就表示已经有了,可以直接跳到下一步。

如果出现错误,则执行以下命令:

sudo apt-get updatesudo apt-get install python3-rpi.gpio

测试 GPIO

按下图所示依次输入命令,观察。

GPIO.setmode() 有两种参数可以选择:可以使用 GPIO.BOARD 选项告诉库根据 GPIO 接口的引脚号引用信号,或者使用 Broadcom 芯片的信号编号( GPIO.setmode(GPIO.BCM) )。

在选择了模式之后,需要确定在程序中使用哪一个 GPIO 信号以及将家门用来作为输入还是输出:GPIO.setup(channel, direction)。我给的例子里是 GPIO.setup(18, GPIO.OUT) 。

后面两个命令控制灯的开关: GPIO.output(18, GPIO.HIGH) 和 GPIO.output(18, GPIO.LOW) 。

GPIO.cleanup() 用于重置 GPIO 接口,它把所有的 GPIO 引脚设置为低电平状态,所以没有多余的信号出现在界面上。在不使用改函数的情况下,如果试图配置一个已分配信号值的 GPIO 信号引脚,那么 RPi.GPIO 模块会产生一条警告信息。

闪烁 LED

然后我在树莓派上编写了下面这个代码让 LED 灯闪烁五次,保存在 Desktop,命名为 led.py。

#!/usr/bin/python3

importRPi.GPIO as GPIOimporttime

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

GPIO.output(18, GPIO.LOW)

blinks=0print('开始闪烁')while (blinks < 5):

GPIO.output(18, GPIO.HIGH)

time.sleep(1.0)

GPIO.output(18, GPIO.LOW)

time.sleep(1.0)

blinks= blinks + 1GPIO.output(18, GPIO.LOW)

GPIO.cleanup()print('结束闪烁')

演示结果:

也可以以通过PWM 信号来达到让灯闪烁的效果。

#!/usr/bin/python3

importRPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

blink= GPIO.PWM(18, 1)try:

blink.start(50)whileTrue:pass

exceptKeyboardInterrupt:

blink.stop()

GPIO.cleanup()

start() 方法指定了占空比(从 1 到 100)。在开始 PWM 信号后,程序就可以解放出来做其他事情了。GPIO 18 会持续发送 PWM 信号,直到停止它。 blink = GPIO.PWM(18, 1) 指定了 PWM 信号以 1HZ 的频率发送,灯 1 秒闪烁一次。按 Control + C 中止闪烁。

参考资料

《树莓派Python编程 入门与实战(第2版)》,人民邮电出版社

python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯相关推荐

  1. Orange pi GPIO输出控制,裸机点灯大法(二)!

    文章目录 Orange pi GPIO输出控制方式 前言 1.OPi.GPIO安装及使用 2.引脚编号 3.WiringOP-Zero-Python安装及使用 4.WiringOP-Zero 安装及使 ...

  2. Orange pi GPIO输出控制,裸机点灯大法(一)!

    裸机点灯大法 玩树莓派或者香橙派,如果不玩裸机点灯,那岂不是不完整.所谓裸机点灯,即一块裸板,通过gpio输出控制,实现控制板载绿色的电源指示灯以及红色的状态指示灯 裸机点灯(GPIO输出控制)的两种 ...

  3. 蓝桥杯物联网基础图文教程——GPIO输出控制LD5亮灭

    蓝桥杯物联网基础教程--GPIO输出控制LD5亮灭 (本系列教程针对一些有stm32基础的同学,需要参加蓝桥杯物联网竞赛的,对HAL库感兴趣的同学提供参考,本文不再详细赘述关于stm32基础原理指导) ...

  4. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  5. NRF51822开发笔记-5.nRF51822裸机实验GPIO输出驱动LED

    NRF51822开发笔记-5.nRF51822裸机实验GPIO输出驱动LED 一.例程分析 1.多个GPIO输出模式配置函数 2.单个GPI0输出模式配置函数 GPIO输出高电平函数 二.程序设计 一 ...

  6. 物联网BLE裸机程序开发 -- (1)nRF52840配置GPIO输出驱动LED

    nRF52840配置GPIO输出驱动LED 在大部分的开发板例程里面,都以点亮一个LED作为开发板软件开发例程的起始例程."点亮一个LED"."LED流水灯"似 ...

  7. android客户端控制树莓派GPIO点亮LED灯

    首先需要android客户端与树莓派进行连接,树莓派与android客户端利用wifi连接并进行socket通信请参考我的另一片文章:https://mp.csdn.net/postedit/7991 ...

  8. 立创梁山派学习笔记——GPIO输出控制

    梁山派 前言 开发板简介 GD32F407ZGT6官方资源 数据手册 1.系统框图 2. 引脚复用表 3.命名规则 4.其他 用户手册 固件库与PACK包 开发环境搭建 立创官方的资料包 资料齐活,开 ...

  9. 使用GPIO输出控制Led亮灭(CC2530)

    1.实验目的: a.通过实验掌握CC2530芯片GOIP的配置方法 b.掌握Led驱动电路以及开光Led的原理 c.查看cc2530-datasheet.pdf手册查找各个寄存器的意思. 二.实验相关 ...

  10. 树莓派基础实验1:双色LED灯实验

    一.介绍    双色发光二极管(LED)能够发出红色和绿色,两种不同颜色的光.正电压指向LED端子之一,使LED发出相应的颜色的光,一次只能有一个引脚接受电压,常用着各种设备的指示灯. 二.组件 ★R ...

最新文章

  1. 生物信息3天速成班—成为团队中不可或缺的人
  2. 七、linux驱动注册
  3. WPF usercontrol 自定义依赖属性
  4. linux脚本 set env,linux 中 set,env,export,declare显示shell变量的区别
  5. C#中的集合学习笔记
  6. .NET Core 收徒,有缘者,可破瓶颈
  7. html木桶布局,木桶布局 实现
  8. linux vim 单引号,单引号和双引号的区别、linux快捷键、zip压缩、lrzsz、vim常见问题...
  9. (47)VHDL实现8位奇偶校验电路(for loop语句)
  10. html如何为“选择”框创建占位符?
  11. Enabled AWE
  12. keil5图标变成白色_【网上最简单】Chrome安装后打不开任何页面 amp; 改名后图标变成小白块[30秒解决]...
  13. mysql导入sql文件乱码或者报错unknown command
  14. 小程序数据缓存机制应用
  15. 此生不戒多巴胺-冲刺集合
  16. 提高电脑运行速度WIN7
  17. 绕x,y轴旋转曲面面积公式推导
  18. springboot篇】二十一. 基于springboot电商项目 十二 订单服务
  19. 程序员幽默:39个奇葩代码注释,每一个都能笑抽
  20. 小样本算法库LibFewShot

热门文章

  1. 简单的一道题 背包问题
  2. include_fns.php_管理页面
  3. HttpClient工具类
  4. 本篇文档介绍如何手动在ECS实例上部署Java web项目
  5. python爬取评论_python爬取网易云音乐评论
  6. 数据结构和算法之数组模拟队列
  7. 使用JPA映射实体类和数据库中表时,实体类中定义的enum类型,数据库定义的是varchar类型,为什么使用JPA插入时字段变成了Integer类型
  8. Yuhao and a Parenthesis
  9. 搭建LVS_DR模型
  10. OAuth2.0的四种授权方式