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
    +关注

    关注

    244

    文章

    24727

    浏览量

    692552
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SGM31324:一款强大的RGB LED驱动芯片

    SGM31324:一款强大的RGB LED驱动芯片 在电子设计领域,RGB LED驱动芯片是实现多彩灯光效果的关键组件。今天,我们要深入了解一款名为SGM31324的
    的头像 发表于 03-25 14:40 169次阅读

    XINGLIGHT 成兴光 幻彩LED 珠#幻彩渐变 #RGB炫彩灯

    RGB
    成兴光电子
    发布于 :2026年02月27日 16:28:33

    RGB时序的工作原理讲解

    图文配合讲解了RGB时序的应用场景、什么是RGB时序、信号格式与传输规则、
    发表于 02-06 11:36 0次下载

    LTC3212 RGB LED 驱动芯片深度解析

    LTC3212 RGB LED 驱动芯片深度解析 在电子设备的显示与照明应用中,RGB LED 驱动芯片扮演着至关重要的角色。今天我们就来深入了解一下 Linear Technolog
    的头像 发表于 02-02 15:35 334次阅读

    探索LTC3212 RGB LED驱动芯片:特性、应用与设计要点

    探索LTC3212 RGB LED驱动芯片:特性、应用与设计要点 在电子设备的设计中,RGB LED的应用越来越广泛,从手机到媒体播放器,都能看到它们的身影。而一款优秀的
    的头像 发表于 02-02 15:00 426次阅读

    《机智云Gokit3开发篇》4 RGB的介绍与驱动移植(HAL库)

    在物联网开发与STM32嵌入式应用实践中,RGB是实现可视化交互、状态指示的常用外设,而机智云Gokit3开发板作为物联网开发的经典硬件平台,其板载的RGB凭借P9813专用驱动芯
    的头像 发表于 01-28 19:11 5323次阅读
    《机智云Gokit3开发篇》4 <b class='flag-5'>RGB</b><b class='flag-5'>灯</b>的介绍与驱动移植(HAL库)

    博通LED:设计与应用的全面指南

    博通LED:设计与应用的全面指南 作为电子工程师,我们在设计项目时经常会用到各种LED
    的头像 发表于 12-30 15:30 433次阅读

    用于嵌入式系统和显示器的 RGB LED 指示

    作者:Poornima Apte 投稿人:DigiKey 北美编辑 电子电路通常需要传递其工作状态,而指示就成为满足该要求的一种简单方法。在照明解决方案中,LED 的能耗低于传统光源。LE
    的头像 发表于 10-03 17:59 2594次阅读
    用于嵌入式系统和显示器的 <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b> 指示<b class='flag-5'>灯</b>

    ‌LP5861 18通道RGB LED驱动器技术解析与应用指南

    Texas Instruments LP5861 18通道RGB LED矩阵驱动器设计用于使用LED矩阵以小尺寸解决方案来改善具有动画效果和指示功能的善用户体验。LP5861集成了18个具有N(N
    的头像 发表于 09-19 10:36 1123次阅读
    ‌LP5861 18通道<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驱动器技术解析与应用指南

    ‌LP55281 12通道RGB/白光LED驱动器技术文档总结

    LP55281 器件是用于手持设备的四重 RGB LED 驱动器。它可以驱动 4 个 RGB LED 组和一个 fun-light LED
    的头像 发表于 09-04 14:15 1230次阅读
    ‌LP55281 12通道<b class='flag-5'>RGB</b>/白光<b class='flag-5'>LED</b>驱动器技术文档总结

    如何制作RGB565标志?

    如何制作RGB565标志?
    发表于 09-04 06:35

    LP5813同步升压4×3矩阵RGB LED驱动器技术解析与应用指南

    Texas Instruments LP5813 4 × 3矩阵RGB LED驱动器是一款同步升压RGB驱动器,具有自主动画引擎控制功能。该器件非常适合用于支持输入电压范围为0.5V至5.5V的电池供电应用,具有超低正常工作电流
    的头像 发表于 08-12 16:24 1189次阅读
    LP5813同步升压4×3矩阵<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驱动器技术解析与应用指南

    RGB LED 时尚照明控制器 skyworksinc

    电子发烧友网为你提供()RGB LED 时尚照明控制器相关产品参数、数据手册,更有RGB LED 时尚照明控制器的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 07-28 18:34
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b> 时尚照明控制器 skyworksinc

    LED珠来料检验

    珠是LED灯具最核心的原物料,直接决定了灯具的性能和可靠性。大多LED照明厂商出于投资回报比的考量,并未采购专业的微观结构检测设备,也缺乏材料学科的专业技术人员。LED
    的头像 发表于 07-24 11:30 2288次阅读
    <b class='flag-5'>LED</b><b class='flag-5'>灯</b>珠来料检验