树莓派系列应用:点亮LED灯及流水灯实验

树莓派是一台微型计算机,可以用来学习计算机知识,熟悉Linux系统操作。也可以作为单片机来学习各种电子元器件的应用。

用树莓派点亮一个LED灯是非常简单的事情,但意义却非常重大。首次能用树莓派去控制LED灯,领会树莓派神奇的世界。

有关GPIO的介绍,可以先关注我,再查看我的文章,其中有一篇就是介绍GPIO的。这一篇文章主要介绍用树莓派点亮LED灯及控制流水灯。

准备

  1. 树莓派主机一台
  2. 树莓派GPIO扩展板
  3. 发光LED灯
  4. 电阻
  5. 杜邦线
  6. 面包板

点亮LED

首先要用一个1kΩ的电阻串联到发光LED的正极上,再把电阻的另一端接到GPIO18接口上,把发光LED灯的负极接到GND上。接线图如下:

树莓派系列应用:点亮LED灯及流水灯实验

接完线后,就可以写代码:

#!/usr/bin/env python
import RPi.GPIO as GPIO # 引入GPIO模块
import time # 引入time模块
GPIO.setmode(GPIO.BCM) # 使用BCM编号方式
GPIO.setup(18, GPIO.OUT) # 将GPIO18设置为输出模式
if __name__ == '__main__':
try:
while True: # 无限循环
GPIO.output(18, True) # 将GPIO18设置为高电平,点亮LED
time.sleep(1) # 等待1秒钟
GPIO.output(18, False) # 将GPIO18设置为低电平,熄灭LED
time.sleep(1) # 等待1秒钟
finally:
GPIO.cleanup() # 清理释放GPIO资源,将GPIO复位

流水灯

首先还是布线,这一次用5个LED灯,每个LED灯都串联一个1kΩ的电阻,如下图:

树莓派系列应用:点亮LED灯及流水灯实验

编写代码:

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
# BCM GPIO编号
pins = [5, 6, 13, 19, 26]
def setup():
# 采用BCM编号
GPIO.setmode(GPIO.BCM)
# 设置所有GPIO为输出状态,且输出低电平
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
def loop():
while True:
# 循环点亮
for pin in pins:
GPIO.output(pin, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1)
def destroy():
for pin in pins:
GPIO.output(pin, GPIO.LOW)
GPIO.setup(pin, GPIO.IN)
if __name__ == '__main__':
# 初始化GPIO
setup()
try:
loop()
except KeyboardInterrupt:
# 恢复GPIO口状态
destroy()
GPIO.cleanup()

最终效果如下:


分享到:


相關文章: