0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:网络整理 作者:佚名 2019-11-11 11:11 次阅读

步骤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:让我们从硬件开始

首先,让我们从硬件开始。对于硬件,必须确保使用的是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

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

    关注

    237

    文章

    22455

    浏览量

    645898
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209963
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LEDRGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本Arduino
    的头像 发表于 02-11 10:28 1426次阅读
    如何使用Arduino控制<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>

    树莓派Pico驱动RGB LED模块的方法

    RGB LED 模块内有红、绿、蓝三种颜色的灯丝。可以通过程序将其调制成丰富的色彩点亮。
    的头像 发表于 11-30 09:06 650次阅读
    树莓派Pico驱动<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>模块的方法

    单片机PWM控制LED输出呼吸灯的效果,这个PWM的频率应该设置成多少呢 ?

    单片机PWM控制LED输出呼吸灯的效果,这个PWM的频率应该设置成多少呢 ?
    发表于 10-15 11:47

    0-10V调光 PWM调光 调光效果稳定功率可以做150W

    投影专用LED降压恒流IC高精度大功率芯片LED降压恒流可PWM模拟分压0-10V调光大功率驱动芯片0-10V调光 PWM调光户外景观、舞台灯、RG
    发表于 09-14 09:52

    如何使用MS51 PWM来控制UART的RGB LED

    应用:本样本代码使用MS51 PWM来控制UART的RGB LED。 BSP 版本: MS51_Series_BSP_Keil_V1.00.004 硬件:NuTiny-MS51FB V1.1 此
    发表于 08-29 06:03

    如何使用计时器驱动RGB LED

    时器控制 I/O 显示 LED 的各种表示方式,包括 RGB 模糊、闪亮和通用呼吸灯,通常使用闪光和普通呼吸灯,使用计时器控制 I/O 显示 LED 的各种表示方式 PWM, 但当
    发表于 08-22 06:32

    AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动

    AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动
    的头像 发表于 08-16 23:21 662次阅读
    AP51656  电流采样降压恒流驱动IC  <b class='flag-5'>RGB</b> <b class='flag-5'>PWM</b>深度调光 <b class='flag-5'>LED</b>电源驱动

    AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动

    AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动
    的头像 发表于 08-08 17:22 377次阅读
    AP51656  电流采样降压恒流驱动IC  <b class='flag-5'>RGB</b> <b class='flag-5'>PWM</b>深度调光 <b class='flag-5'>LED</b>电源驱动

    4通道白色+RGB可调色彩智能连接灯泡参考设计

    电子发烧友网站提供《4通道白色+RGB可调色彩智能连接灯泡参考设计.pdf》资料免费下载
    发表于 07-25 14:39 0次下载
    4通道白色+<b class='flag-5'>RGB</b>可调<b class='flag-5'>色彩</b>智能连接灯泡参考设计

    RGB彩灯驱动实现三种不同的显示效果

    最近接触到了RGB彩灯,这种灯的驱动方式一般有两种,一种是使用专门的驱动IC,可能是I2C接口也可能是SPI接口,发送一些指令来实现驱动的目的,另外一种是直接使用PWM方式驱动,根据三路PWM设置的DUTY比例来实现显示不同的颜
    发表于 07-21 15:33 1489次阅读

    使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色

    电子发烧友网站提供《使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色.zip》资料免费下载
    发表于 07-12 09:13 0次下载
    使用<b class='flag-5'>PWM</b>或脉冲宽度调制管理<b class='flag-5'>LED</b>亮度和<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>颜色

    如何在FPGA中实现RGB转HSV

    HSV色彩空间相对于RGB色彩空间更适合做颜色追踪,分割颜色等。那么RGB色彩空间要怎么转变为HSV色彩
    的头像 发表于 07-02 11:49 1068次阅读
    如何在FPGA中实现<b class='flag-5'>RGB</b>转HSV

    制作Hexabitz RGB LED项链

    电子发烧友网站提供《制作Hexabitz RGB LED项链.zip》资料免费下载
    发表于 06-12 14:42 0次下载
    <b class='flag-5'>制作</b>Hexabitz <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>项链

    如何用ESP8266制作一个声音反应性RGB LED灯条?

    我想用 ESP8266 制作一个声音反应性 RGB LED 灯条,声音应该从我手机的麦克风中捕获并发送到 ESP,ESP 将寻址 LED。 这可能吗 ? 我在网上看到过这些类型的东西,
    发表于 06-07 07:14

    如何通过MQTT控制RGB LED

    IDE 进行编程的。所有这些都 100% 有效。我可以通过 OpenHAB 的用户界面打开/关闭灯。现在这是我有问题的地方。 我还有一台 WeMos D1 Mini。我制作了一个定制的 RGB LED
    发表于 05-23 06:44