配件简介

接下来我们一起完成一个 多色 LED 实验,点亮 LED 中多种颜色的灯。
首先我们介绍一下我们涉及到的一些配件主要:

  • 树莓派主板
  • RGB-LED 模块 ( 重点)
  • 电源
  • 40P 软排线
  • 面包版
  • T 型版
  • 跳针 * 4

RGB LED 模块可以发出各种颜色的光。红色、绿色和蓝色的三个 LED 被封装到透明的外壳中,并带有四个引脚。红色、绿色和蓝色三原色可以使用 PWM 亮度混合并组合各种颜色,因此可以通过控制电路使 RGB LED 发出彩色光。

脉冲宽度调剂( PWD ) 是一种通过数字方式获取模拟结果的技术。数字控制用于创建方波,信号在高电平和低电平之间切换。这种开关模式可以通过改变信号持续的时间部分与信号关闭的时间来模拟全开(5V)和关(0V)之间的电压。有效的持续时间成为脉冲宽度,要获得不同的模拟值,可以更改或调制脉冲宽度。如果重复此开关模式足够快,结果就好像是信号 0~5V 的稳定电压,直流电压输出的幅度为 5V,通过 PWM 实际电压输出可能为 3.75V,主要看高电平在一端时间内的占比。

RGB LED 模块 实验接线
R R
G G
B B
GND GND

接线

  1. 在 40P 软排线插入方向一定要正确,该位置可以看到有一个浅色实心三角形为第一个脚。软排线连接好树莓派的 IO 模块和 T 型板。
  2. T 型板压进面包版上。( 刺刺的比较难压,最好用眼镜布垫着 )
  3. 使用 红、绿、蓝、白三个跳线分别从 - 开始接入RGB LED 模块,分别代表 R、G、B、GND。
  4. 红线连接的是 LED 的 R 色,另一端跳针插到面包板对应 T 型板的 G17 位置( 1 行)。
  5. 绿线连接的是 LED 的 G 色,另一端跳针插到面包板对应 T 型板的 G18 位置( 1 行)。
  6. 蓝线连接的是 LED 的 R 色,另一端跳针插到面包板对应 T 型板的 G27 位置( 10 行)。
  7. 白线连接的是 LED 的 GND,另一端跳针插到面包板对应 T 型板的 GND 位置( 17 行)。

代码

  1. #!/usr/bin/env python
  2. import RPi.GPIO as GPIO
  3. import time
  4. R_PIN = 11
  5. G_PIN = 12
  6. B_PIN = 13
  7. pins = (R_PIN, G_PIN, B_PIN)
  8. GPIO.setmode(GPIO.BOARD)
  9. GPIO.setup(pins, GPIO.OUT)
  10. GPIO.output(pins, GPIO.LOW)
  11. pwmR = GPIO.PWM(R_PIN, 70)
  12. pwmG = GPIO.PWM(G_PIN, 70)
  13. pwmB = GPIO.PWM(B_PIN, 70)
  14. pwmR.start(0)
  15. pwmG.start(0)
  16. pwmB.start(0)
  17. def Red(duration):
  18. pwmR.ChangeDutyCycle(0)
  19. pwmG.ChangeDutyCycle(100)
  20. pwmB.ChangeDutyCycle(100)
  21. time.sleep(duration)
  22. def Green(duration):
  23. pwmR.ChangeDutyCycle(100)
  24. pwmG.ChangeDutyCycle(0)
  25. pwmB.ChangeDutyCycle(100)
  26. time.sleep(duration)
  27. def Blue(duration):
  28. pwmR.ChangeDutyCycle(100)
  29. pwmG.ChangeDutyCycle(100)
  30. pwmB.ChangeDutyCycle(0)
  31. time.sleep(duration)
  32. Red(5)
  33. Green(5)
  34. Blue(5)
  35. pwmR.stop()
  36. pwmG.stop()
  37. pwmB.stop()
  38. GPIO.cleanup()