树莓派的gpio控制------呼吸灯

树莓派的gpio控制------呼吸灯

还是第一次用树莓派,所以很多的不懂,还有这也是新学的python

首先GPIO就是板子上的引脚 
这个是网上的图
主要看的就是编码格式和功能。
功能有3.3V引脚,5.5V引脚,还有SDA,SCL,地 等,这里就不加说了
这里还有一个命名为GPIO的引脚 这个就是我们要用的
树莓派的gpio控制------呼吸灯_第1张图片

引脚这样数才是对的!!!!!!!!

树莓派的gpio控制------呼吸灯_第2张图片
这里通过代码讲解

首先把灯接上,先把灯与电阻相接然后再把灯的正极接到12脚,负极接以一个地。

import RPi.GPIO as GPIO #调入树莓派的GPIO库并命名为GPIO
import time #调入时间的函数库

GPIO.setmode(GPIO.BOARD)#选择物理引脚的编码方式(另外的方式有BCM等具体使用要看图)
GPIO.setup(12,GPIO.OUT)#让12引脚为输出口(要么是输出要么就是输入,输出输入要分开)

pwm = GPIO.PWM(12,50)#调用PWM这个函数创建对象,参数分别是(设置的是12口,50赫兹)
				#这个函数创建成了PWM这个对象

pwm.START(0)#以0%占空比(0%-100%)开始   
			#占空比就是实际高电平占逻辑高电平的多少  (就比如说,逻辑上,高电平应该是十秒钟,但是我只在这十秒钟里产一秒的高电平,所以剩下的九秒都是低电平,占空比就是百分之十)

#错误处理
try:
	while Ture:#一直循环
		for i in range(0,101,2)#循环从0到100(相当于for(i=0;i<101;i++)的意思)每隔两个取一次数
			pwm.ChangedutyCyCle(i)#更改占空比,数值越大,小灯就越亮,这个for就是让灯越来越亮
			time.sleep(.03)#延时30ms 
			               #表示线程挂起时间
			               #单位是秒,最高精度是毫秒,也就是说 最小的参数为0.001
			               
		for i in range(100,-1,-2)#这个循环是让灯越来越暗
			pwm.ChangedutyCyCle(i)
			time.sleep(.03)
except KeyboardInterrupt: #当有键盘中断时(大部分时候就是CTRL + C)
	pass #表示什么也不做 然后继续跳到下一行执行,这样避免了突然CTRL + C 就退出了,GPIO口没有机会清理。
#try语句用法的链接我已经放在文章后面了
pwm.stop()#停用PWM
GPIO.cleanup()#清理GPIO口 这样GPIO口才不会一直被占用 这一步必须要有!!不然后面程序多了,就很容易出错

# 最后一段是一个小技巧。这个程序如果不强制停止会不停地执行下去。
# 而Ctrl+C强制终端程序的话,GPIO口又没有机会清理。
# 加上一个try except 可以捕捉到Ctrl+C强制中断的动作,
# 试图强制中断时,程序不会马上停止而是会先跳到这里来做一些你想做完的事情,比如清理GPIO口。
#这段话我是复制别人的

其实频率就是每秒钟 电平从 再到 的次数 频率调得越高,这个灯的变化就变得越“顺滑”,(如果频率很低,小灯就会有闪烁,就是它的变化不够顺滑 你可以把代码中的50 改为10 然后又改为100,看小灯的变化就知道了),我也不知道是不是越高越好,但是现在是是这么觉得的,还待后面研究

树莓派实验室中的呼吸灯实例

try语句的描述及用法

你可能感兴趣的:(树莓派的gpio控制------呼吸灯)