python RPi.GPIO库支持使用pwm方式控制GPIO引脚,进而控制与GPIO引脚连接的外设。
本次实验使用led灯作为外设,通过PWM脉冲信号控制其亮暗程度的变化。
电路连接如下:
其中黑色线接树莓派GND,黄色接BCM编码的2号GPIO,GPIO与LED正极间串联个1k左右的电阻(这里用了2个5k的电阻并联,因为没有小电阻了~~~~~)。
python代码如下:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2, GPIO.OUT)
pwm = GPIO.PWM(2, 100)
pwm.start(0)
while True:
print("pls input dt: ")
dt = input()
pwm.ChangeDutyCycle(int(dt))
这里使用了2号GPIO引脚。
初始PWM占空比为0,即初始状态为熄灭。
通过命令行接收用户输入占空比数值(0~100),然后调用ChangeDutyCycle函数更新GPIO输出的PWM占空比。进而可以控制led等的亮暗程度。
测试效果(亮-pwm占空比100%):
测试效果(暗-pwm占空比20%):
参考:
https://gpiozero.readthedocs.io/en/stable/migrating_from_rpigpio.html#pwm-pulse-width-modulation