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

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

3天内不再提示

RGB LED灯条制作

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

概述

RGB LED灯条制作

我们喜欢一些好的LED闪烁下一个人,但经过多年的LED焊接,我们需要一些凉爽的东西才能使我们兴奋。当然有RGB LED,它们也很有趣,但是之后又会怎样呢?好吧,我们得到了答案: LED灯条!这些是柔性电路板,上面焊接有全彩LED。他们从装饰房间,汽车,自行车,服装等中省去了很多LED布线工作。我们携带的也防水(虽然不是全部)。

LED灯带有两种基本类型, “模拟”类和“数字”类。模拟型灯带将所有LED并联连接,因此它就像一个巨大的三色LED;您可以将整个条设置为所需的任何颜色,但不能控制各个LED的颜色。它们非常易于使用且相当便宜。

数字式条带的工作方式不同。它们为每个LED都有一个芯片,要使用灯带,您必须将数字编码的数据发送到芯片。但是,这意味着您可以单独控制每个LED!由于芯片的额外复杂性,它们更加昂贵。

您可以在Adafruit商店的仪表处购买防水的模拟型RGB LED灯条!

教程仅适用于模拟RGB LED灯条!

技术规格:

每段宽10.5毫米(0.41英寸),厚3毫米(0.12英寸),长100毫米(3.95英寸)

清晰的防水成型

背面有3M胶条

每个条段最大12V @ 60mA抽奖

每个段3个共阳极RGB LED

LED波长:630nm/530nm/475nm

没有微控制器或芯片控制器(仅适用于“模拟”!)

(我们正在努力从制造商那里获得英文数据表!)

原理图

模拟类型RGB LED灯带放在卷轴上,由10厘米长的3-LED截面制成。它们很容易在每个部分的边界处切割,有一点切割痕迹区域,并且可以焊接一些铜片。部分中的每个LED均为“ 5050”三色类型,其中包含红色,绿色和蓝色LED。这意味着每个部分实际上总共有9个LED-三个红色,三个绿色和三个蓝色。 LED串联排列,如下图所示:

电流消耗

由于存在三个串联的LED,因此无法通过5V电源驱动这些LED。 LED灯带上标有“ + 12V”以标记阳极,这是我们建议的最大电压。我们发现,如果您对它们稍微调光就可以了,那么即使9VDC也能很好地工作。

每3个LED的每段从12V电源消耗大约,每串LED的电流为20mA。指示灯因此,对于每个段,红色LED的最大电流为20mA,绿色LED的最大电流为20mA,蓝色LED的最大电流为20mA。如果您的LED灯条为全白色(所有LED都点亮),每段为60mA。

要查找每米的总最大电流,我们将 60mA x 10 (十段)相乘每米30/LED每米带的每米)= 0.6安培每米或 60mA x 20 (每米60/LED每米带的20米每节) b》每米1.2安培。再次,这是假定您将同时打开所有LED并以12V供电。如果要在颜色之间进行PWM渐变,则可能要绘制其中的1/2。尽管如此,您仍然需要有相当不错的电源才能运行此条带,所有这些LED都加起来!

接线

连接到插排非常简单,您需要将四根导线焊接到铜排上。我们将白色用于+ 12V,然后将红色,绿色和蓝色导线用于相应的LED颜色。

切掉条带一端的防水包覆成型。这些条带是对称的,因此无论使用哪一端都没有关系。

刮掉橡胶以露出铜垫。

将一些焊料融化到焊盘上以进行镀锡,并且还可以烧掉残留在橡胶上的任何东西。

焊接四根线上。我们使用的是绞合线,比实芯线更柔软,可能是更好的选择。

为保护电线并保持一定的防水性,可以使用热收缩。

用法

由于这些LED灯带非常简单,因此我们可以轻松地将它们与任何微控制器一起使用。我们建议使用PWM调光技术来控制条带。由于每个“ LED”引脚最终可能需要一个或更多的Amp接地,因此需要!不要尝试将引脚直接连接到您的日常微控制器,否则它们会烧坏和/或无法工作。

您可以使用任何功率NPN或N沟道MOSFET,请确保晶体管能够通过根据需要提供尽可能多的电流。例如,由于我们每米每通道消耗约0.2Amp的电流,因此如果您有5米长的条带,则每个晶体管需要通过多达1安培的电流。获取功能强大的“ TO-220”软件包,而不是笨拙的小家伙。确保它们看起来像这样:

对于基本的低成本用途,我们建议使用N沟道MOSFET(例如IRLB8721)-它们非常流行且价格便宜,并且可以使用3.3V或5V逻辑。如果您看不到这些,TIP120也不错,但是晶体管中的电压损耗比MOSFET中的损耗大,这就是为什么我们建议首先使用它们的原因(热量损耗少,光更多!)

此图显示了与N沟道MOSFET,其中栅极为引脚1,漏极为引脚2,源极为引脚3

IRLB8721 可以处理最高 16A电流连续电流-至少有750个LED,如果不将它们全部放在明亮的白色上,则为1500个LED。您可能需要散热片,具体取决于连续/总体功耗/损耗

对于需要超过1 Amp的较长插排,请将电源直接连接到插排,然后将电源和地线连接回Arduino

此图显示了与功率NPN晶体管(例如TIP120)的连接,其中Base是引脚1,集电极是引脚2,发射极是引脚3。除了这次我们在PWM输出引脚和基极之间有100-220欧姆的电阻外,它非常相似。

对于需要超过1A的较长插排,将电源直接连接到插排,然后将电源和地线重新连接到Arduino。 div》

连接9-为Arduino提供12V电源,以便 Vin 提供电源高压LED灯带。如果需要,也可以仅使用一条单独的电线连接到提供约+ 12V的电源。确保将电源的接地端连接至Arduino/MOSFET的接地端。

TIP120可以承受高达 5 Amps 的连续电流-因此,至少有250个LED,如果不这样做,不能全部使用500个明亮的白色LED。

Arduino代码

一旦连接好条带,就可以使用PWM输出轻松控制条带的颜色,对于Arduino,您可以使用 analogWrite(),位于引脚3、5、6、9、10或11上(适用于使用Atmega328或168的经典Arduino)。 analogWrite(pin,0)将关闭该LED, analogWrite(pin,127)将其打开一半,而 analogWrite(pin,255) 将其完全打开。这是一些执行简单颜色旋转的示例代码。

如果您想使用其他引脚,请在AnalogWrite()上查看此页面,以了解哪些型号支持哪些引脚上的AnalogWrite()

下载:文件

复制代码

// color swirl! connect an RGB LED to the PWM pins as indicated

// in the #defines

// public domain, enjoy!

#define REDPIN 5

#define GREENPIN 6

#define BLUEPIN 3

#define FADESPEED 5 // make this higher to slow down

void setup() {

pinMode(REDPIN, OUTPUT);

pinMode(GREENPIN, OUTPUT);

pinMode(BLUEPIN, OUTPUT);

}

void loop() {

int r, g, b;

// fade from blue to violet

for (r = 0; r 《 256; r++) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from violet to red

for (b = 255; b 》 0; b--) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from red to yellow

for (g = 0; g 《 256; g++) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

// fade from yellow to green

for (r = 255; r 》 0; r--) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from green to teal

for (b = 0; b 《 256; b++) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from teal to blue

for (g = 255; g 》 0; g--) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

} // color swirl! connect an RGB LED to the PWM pins as indicated

// in the #defines

// public domain, enjoy!

#define REDPIN 5

#define GREENPIN 6

#define BLUEPIN 3

#define FADESPEED 5 // make this higher to slow down

void setup() {

pinMode(REDPIN, OUTPUT);

pinMode(GREENPIN, OUTPUT);

pinMode(BLUEPIN, OUTPUT);

}

void loop() {

int r, g, b;

// fade from blue to violet

for (r = 0; r 《 256; r++) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from violet to red

for (b = 255; b 》 0; b--) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from red to yellow

for (g = 0; g 《 256; g++) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

// fade from yellow to green

for (r = 255; r 》 0; r--) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from green to teal

for (b = 0; b 《 256; b++) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from teal to blue

for (g = 255; g 》 0; g--) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

}

CircuitPython代码

您可以将模拟RGB LED灯条与CircuitPython的内置模拟/PWM输出模块一起使用。就像使用CircuitPython调暗LED的亮度一样,您可以使用PWM输出来控制条带的红色,绿色和蓝色LED的亮度。

就像连接到Arduino一样,您需要使用晶体管来缓冲和控制发送到LED灯条的较高电流(您的电路板)本身无法提供所有电流!)。确保按照使用页面将LED灯带通过功率晶体管连接到板上,如图所示。本指南假定接线相同,板脚5连接到灯条的红色LED,板脚6连接到绿色,板脚3连接到蓝色。如使用页面上所述,也请确保使用功能强大的12V外部电源,该电源具有足够的电流来驱动所有LED。

以下是将Metro M0 Express接线到MOSFET的示例,该MOSFET驱动一个LED条:

Fritzing来源

注意:请确保使用板上的PWM输出引脚!并非所有的数字输入/输出都支持PWM输出。查看电路板的指南和引脚排列以确认。通常,具有PWM功能的输出在电路板上的丝网上会在其旁边有一条点或波浪状的信号线。

也要非常小心,以确保您的电路板可以由12伏电压供电!如果使用与LED灯条相同的12伏电源驱动电路板,则需要确保将12伏电源连接到电路板上的相应引脚,以便将其正确调节至电路板所需的逻辑电平。特别要注意使用Feather和12伏电源,在Metro/Arduino板上没有Vin线路,因此以更高的电压(例如12伏)为它们供电会比较棘手,您会损坏板。 不要用12V的电源为羽毛,小装饰品或Gemma供电,否则可能会损坏电路板,请改用Metro电路板!

现在请连接到电路板的串行REPL,以便您使用CircuitPython 》》》 提示。

通过运行以下命令导入必要的 pulseio 和 board 模块:

下载:文件

复制代码

import board

import pulseio import board

import pulseio

然后为每个LED连接(红色,绿色,蓝色)创建PWM输出:

下载:文件

复制代码

red = pulseio.PWMOut(board.D5)

green = pulseio.PWMOut(board.D6)

blue = pulseio.PWMOut(board.D3) red = pulseio.PWMOut(board.D5)

green = pulseio.PWMOut(board.D6)

blue = pulseio.PWMOut(board.D3)

类似于模拟量I/O指南提到您可以更改每个PWM输出的占空比以控制LED的亮度。较大的占空比意味着LED的开启时间更长,并且看起来更亮。请记住,占空比是一个从0(0%/未打开)到65535(100%/一直打开)的值。

要将条带设置为100%的紫色红色,0%绿色和50%蓝色可以运行:

下载:文件

复制代码

red.duty_cycle = 65535 # 100% red

green.duty_cycle = 0 # 0% green

blue.duty_cycle = 32767 # 50% blue red.duty_cycle = 65535 # 100% red

green.duty_cycle = 0 # 0% green

blue.duty_cycle = 32767 # 50% blue

就像模拟I/O指南中提到的那样,尽管创建转换函数可能会更容易占空比值相对于数值的百分比,并使用它来简化代码。以下是定义和使用该函数设置相同紫色的方法:

下载:文件

复制代码

def duty_cycle(percent):

return int(percent / 100.0 * 65535.0)

red.duty_cycle = duty_cycle(100) # 100% red

green.duty_cycle = duty_cycle(0) # 0% green

blue.duty_cycle = duty_cycle(50) # 50% blue def duty_cycle(percent):

return int(percent / 100.0 * 65535.0)

red.duty_cycle = duty_cycle(100) # 100% red

green.duty_cycle = duty_cycle(0) # 0% green

blue.duty_cycle = duty_cycle(50) # 50% blue

下面是使用CircuitPython控制LED灯条并在不同颜色之间淡入淡出的完整示例就像上一页中的类似Arduino代码一样。将其另存为开发板的根文件系统上的 main.py ,它将在开发板启动时淡化条带的颜色:

下载:Project Zip 或 main.py | 在Github上查看

复制代码

import time

import board

import pulseio

RED_PIN = board.D5 # Red LED pin

GREEN_PIN = board.D6 # Green LED pin

BLUE_PIN = board.D3 # Blue LED pin

FADE_SLEEP = 10 # Number of milliseconds to delay between changes.

# Increase to slow down, decrease to speed up.

# Define PWM outputs:

red = pulseio.PWMOut(RED_PIN)

green = pulseio.PWMOut(GREEN_PIN)

blue = pulseio.PWMOut(BLUE_PIN)

# Function to simplify setting duty cycle to percent value.

def duty_cycle(percent):

return int(percent / 100.0 * 65535.0)

# Fade from nothing up to full red.

for i in range(100):

red.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Now fade from violet (red + blue) down to red.

for i in range(100, -1, -1):

blue.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from red to yellow (red + green)。

for i in range(100):

green.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from yellow to green.

for i in range(100, -1, -1):

red.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from green to teal (blue + green)。

for i in range(100):

blue.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from teal to blue.

for i in range(100, -1, -1):

green.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

import time

import board

import pulseio

RED_PIN = board.D5 # Red LED pin

GREEN_PIN = board.D6 # Green LED pin

BLUE_PIN = board.D3 # Blue LED pin

FADE_SLEEP = 10 # Number of milliseconds to delay between changes.

# Increase to slow down, decrease to speed up.

# Define PWM outputs:

red = pulseio.PWMOut(RED_PIN)

green = pulseio.PWMOut(GREEN_PIN)

blue = pulseio.PWMOut(BLUE_PIN)

# Function to simplify setting duty cycle to percent value.

def duty_cycle(percent):

return int(percent / 100.0 * 65535.0)

# Fade from nothing up to full red.

for i in range(100):

red.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Now fade from violet (red + blue) down to red.

for i in range(100, -1, -1):

blue.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from red to yellow (red + green)。

for i in range(100):

green.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from yellow to green.

for i in range(100, -1, -1):

red.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from green to teal (blue + green)。

for i in range(100):

blue.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)

# Fade from teal to blue.

for i in range(100, -1, -1):

green.duty_cycle = duty_cycle(i)

time.sleep(FADE_SLEEP)
责任编辑:wv

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

    关注

    237

    文章

    22420

    浏览量

    645790
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino控制RGB LED

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

    OpenHarmony:如何使用HDF驱动控制LED

    开发 GPIO应用程序开发 2、硬件设计RGB LED整体硬件电路如下图所示,硬件电路中包含了三个GPIO控制管脚控制RGB LED
    发表于 09-05 14:10

    如何使用计时器驱动RGB LED

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

    使用M0516将TM1812通过SPI0的MOSI驱动到光RGB-LED

    : Nutiny-EVB-M051_V3.0 本样本代码使用M0516将TM1812通过SPI0的MOSI驱动到光 RGB-LED。 您可以在下列时间下载样本代码http://www.nuvoton.com/resources-downlo.0210170845 nu
    发表于 08-22 06:23

    CK6865L的2813氛围RGB效#灯光效果

    ledrgb
    qulia0818
    发布于 :2023年08月09日 14:34:41

    用4017芯片和RGB LED制作LED循环

    DIY制作
    学习电子知识
    发布于 :2023年07月24日 21:47:52

    使用Arduino的Android控制RGB LED灯条

    电子发烧友网站提供《使用Arduino的Android控制RGB LED灯条.zip》资料免费下载
    发表于 07-05 09:45 2次下载
    使用Arduino的Android控制<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>灯条

    RGB LED选择器开源分享

    电子发烧友网站提供《RGB LED选择器开源分享.zip》资料免费下载
    发表于 06-28 16:10 0次下载
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>选择器开源分享

    自制RGB LED矩阵屏蔽

    电子发烧友网站提供《自制RGB LED矩阵屏蔽.zip》资料免费下载
    发表于 06-16 15:48 0次下载
    自制<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>矩阵屏蔽

    RGB LED控制器开源分享

    电子发烧友网站提供《RGB LED控制器开源分享.zip》资料免费下载
    发表于 06-15 10:54 3次下载
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>控制器开源分享

    制作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 将寻址
    发表于 06-07 07:14

    请问哪个是最适合led条项目的esp8266板?

    很简单: 我需要使用网络界面控制 LED ,例如使用连接到家庭局域网的计算机或智能手机。 我知道 esp8266 不能打开 12V 带,事实上我打算使用 MOSFET。 该
    发表于 06-02 07:39

    如何通过MQTT控制RGB LED

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

    模拟LED的规格是什么?

    嗨,你的模拟 LED 的规格是什么?他们需要多少伏特和多少安培才能工作?
    发表于 05-11 07:36