带PWM的RGB LED色彩效果的制作

电子说

1.4w人已加入

描述

步骤1:获取组件

您需要什么:

Raspberry Pi 3(如果型号不同,也没什么不同)

RGB LED阴极或阳极

1 x 100 ohm和2 x 150 ohm电阻

Micro USB电缆2.5 A,5 V USB电源(对于RPi 3,它最多需要2.5 A,但是对于较旧的版本2 A就足够了)

SD卡

面包板

电缆或跳线-》在这种情况下,我建议使用雌雄跳线

步骤2:让我们从硬件开始

PWM

PWM

PWM

PWM

PWM

首先,让我们从硬件开始。对于硬件,必须确保使用的是RGB LED:阴极还是阳极?为此,您可以从根本上自己进行测试或咨询您的提供者。为了进行测试,只需将电缆连接到接地和3.3V引脚,然后将接地连接到RGB LED的长脚,再将3.3 V连接到任何其他脚。如果它点亮,则您的RGB LED为阴极RGB LED,如果不工作,则为阳极RGB LED。

最后,这两种类型的LED都是一样的,只是略有不同。使用共阴极LED,您必须将长脚接地(RPi 3的第6、9、14、20、25、30、34和39针),而将阳极LED则必须将其连接至5 V( RPi 3的第二或第四引脚)。如果您使用的是其他版本,唯一要做的就是打开RPi模型的“引脚列表”并检查RPi的5 V引脚。

对于红色,绿色和蓝色支脚,我选择了RPi 3的第20、21和22引脚。

您应该将rgb led的绿色引脚连接到GPIO 20,将红色引脚连接到GPIO 21,蓝色引脚连接到GPIO 22,但不直接连接到GPIO,从原理图上还可以看到,还必须连接电阻-红色100欧姆,绿色和蓝色150欧姆-然后,将RPi的GND直接连接到长脚如果使用共阴极,则为RGB LED的数量。否则,连接5 V而不是GND。您也可以使用不同的引脚,但是我为软件选择了它们。

为RPi 3接通电源后,您的硬件部分就完成了:)

在您的图片中可以看到,我没有使用任何电阻,这是因为我当前正在使用共阳极RGB LED,并且已将长脚直接连接到3.3V。

步骤3:继续使用软件

在我的RPi 3中,我使用Raspbian作为操作系统。我认为,这是查找来源的最简单的操作系统,也是最容易学习的操作系统。如果尚未上传,则可以从上面的链接中找到最新版本以及如何将其上传到RPi的指南。

https://www.raspberrypi.org/downloads/raspbian/

在此指导中,我更喜欢使用Python对RPi进行编程。它是一种易于读写的语言,非常适合包括我在内的初学者:)

对于使用Python进行编码,我更喜欢使用终端进行编程。您还可以使用Python 3或Python 2程序。但是从终端,我发现它更实用。如果您有其他意见,我想在评论中进行讨论:)

要开始编程,您应该打开终端屏幕并输入

nano rgbled.py

此命令将为您的RGB LED创建一个新的python文件。您也可以随意命名,我选择了此名称以使其与其他程序区分开。

您将看到空白页,用于编码。现在,这是您开始编写Python的部分。

这里是代码,此代码用于阴极RGB LED,因为它更常见且更易于使用,但我将为阳极做一些说明。 RGB LED,如果您无法使用代码启动程序,我也添加了Python文件,您也可以使用该文件:

#将RPi的引脚定义为Input/Output

import RPi.GPIO作为GPIO

#导入库以延迟命令。

导入时间

#用于GPIO编号

GPIO.setmode(GPIO.BCM)

#在您关闭时关闭警告编译代码GPIO.setwarnings(False)

RUNNING = True

#定义引脚

绿色= 20

红色= 21

blue = 22

#将引脚定义为输出

GPIO.setup(red,GPIO.OUT)

GPIO.setup (绿色,GPIO.OUT)

GPIO.setup(蓝色,GPIO.OUT)

#选择pwm的频率

频率= 100

#定义将要与PWM一起使用的引脚

RED = GPIO.PWM(red,Freq)

GREEN = GPIO.PWM(green,Freq)

BLUE = GPIO.PWM(blue,Freq)

尝试:

#我们在运行时从循环开始

#点亮针脚。 100表示将100%分配给该引脚

RED.start(100)

GREEN.start(1)

BLUE.start(1)

#对于阳极RGB LED用户,如果您也想从RED开始,唯一要做的就是将RED定义为1,将GREEN和BLUE定义为100。

对于x在范围内(1,101) ):

#用于更改PWM的宽度,此命令用于

GREEN.ChangeDutyCycle(x)

#对于阳极LED用户,只需更改x使用101-x

#并延迟时间。使用sleep。您可以通过从以下时间更改时间来改变颜色的持续时间

time.sleep(0.05)

对于x在范围(1,101):

红色.ChangeDutyCycle(101-x)

time.sleep(0.025)

for x in range(1,101)

GREEN.ChangeDutyCycle(101-x)

BLUE.ChangeDutyCycle(x)

time.sleep(0.025)

for x in range(1,101):

RED.ChangeDutyCycle (x)

time.sleep(0.025)

除了KeyboardInterrupt:

#这部分的目的是,当您中断代码时,它将停止while循环并关闭引脚,这意味着您的LED不再发光

RUNNING = False

GPIO.cleanup()

步骤4:运行代码

编写代码已完成。现在按CTRL + X退出代码,然后按Y保存代码。

您现在拥有一个Python代码,需要运行它。

要运行python代码,您需要输入终端:

sudo python RGBLED.py //或输入文件名而不是RGBLED

恭喜,您可以在这里完成所有操作!

这仅适用于一个RGB LED,仅用于查看可获得的颜色。您可以随时改进代码,并用颜色制作更多不同的东西。

我希望您喜欢并喜欢我的指导。我希望写更多关于我将来学到的东西以及分享我的项目的信息。

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • led
  • PWM

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分