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

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

3天内不再提示

幻彩灯珠的秘密

niebinfeng 来源:niebinfeng 作者:niebinfeng 2023-06-25 15:31 次阅读

幻彩灯珠介绍

一、幻彩灯珠其实我们可以理解为该灯珠内部有一颗LED驱动芯片外加R,G,B 3种颜色的LED的合封体。并且这颗LED驱动芯片可以驱动3路 LED,每一路LED驱动都跟内部的R,G,B通过封装打线连接好了。

1、幻彩灯珠的应用场所:

(1)、家庭照明。幻彩灯珠可以应用于家庭中的各种照明场景,如客厅、卧室、厨房等。多彩变幻的颜色可以为家庭营造出温馨、浪漫的氛围。

(2)、商业场所。幻彩灯珠可以应用于商业场所的装饰和照明,如商场、酒店、ktv等。多彩变幻的颜色可以为商业场所营造出艺术感和时尚感。

(3)、户外景观。幻彩灯珠可以应用于城市公园、广场、桥梁等户外景观,为城市增添艺术气息和夜间景观

2、幻彩灯珠对比传统灯珠优缺点

(1)、颜色多彩变幻。幻彩灯珠的多彩变幻可以为家庭、商业场所等营造出良好的氛围

(2)、相比传统的三基色LED灯珠+外置LED驱动芯片体积要小,更容易生产

(3)、相比传统的LED灯珠+外置LED驱动芯片 成本更低

幻彩灯珠内置驱动芯片介绍

一、市场常见的有WS2812,SM16703P,目前我们公司推出了AD2203芯片,该芯片性价比更高。

AD2203是三通道LED驱动IC,内部集成有MCU数字接口、数据锁存器、LED驱动等电路。通过外围MCU控制实现该芯片的单独灰度、级联控制实现户外大屏的彩色点阵发光控制 。 主要特征: 默认上电灯不亮,恒流12mA(可定制),256级灰度可调,数据自动整形,传输数率800---1200KHz,标准应用电压5V

poYBAGSX98mAWAPvAAAs73CSX4w965.png管脚定义 pYYBAGSX-BCASEbOAACZ_ftiRc0473.png

具体参数如下:

poYBAGSX-daATOhAAABDEjGgsHg302.png

六、通讯方式和应用电路

芯片设计为单线归零码通讯方式。芯片上电复位以后,接收DIN 的数据,足24 bit 后,DOUT 端口开始转发数据,输出到下一个芯片。在转发之前DOUT=0电位。芯片 OUTR、OUTG、OUTB 三个端口可输出相应24 bit 数据的不同占空比的信号。如果DIN 端输入信号为RESET 信号,芯片将接收到的数据送显示,芯片将在该信号结束后重新接收新的数据,在接收完开始的 24bit 数据后,通过DOUT口转发数据,芯片在没有接收到RESET 码前,OUTR、OUTG、OUTB 管脚原输出亮度保持不变,当接收到不小于80µs 低电平RESET 码后,芯片将刚才接收到的24 bit 亮度数据输出到OUTR、OUTG、OUTB 引脚上。 七、数据编码格式

T0H: 350ns T0L: 800ns T1H: 800ns T1L: 350ns (容错20%) Trst > 80us

pYYBAGSX_FGAPSZGAAAfdxv41H4878.png

八、级连方法

pYYBAGSX_KqAPnmtAAAc9R18rYM443.png

九、数据传输方法

单芯片24BIT数据发送顺序:高位先发,即R7先发送

poYBAGSX_QyAbcfPAAAmzJMnBco882.png

十、典型应用电路

pYYBAGSX_U-AWK8FAADWr5ywWe4687.png

AD2202 应用编程之炫彩渐变效果(MCU 应广150C)

#include "extern.h"

byte red, green, blue; //Could save these three bytes by using the rgb EWORD directly ( rgb$0, rgb$1, rgb$2)
byte mode;
byte hueinc;
byte firstinc;
EWORD rgb;
word pixels; //Only has to be a word if number of pixels > 255
word firstPixelHue;

#define definedPIXELS 300;//像素点

bit LED : pa.6;
bit BTN : pa.4;

int count;
//====================bit1
send1 MACRO
SET1 LED;
.DELAY 5;
$ LED low;
// .DELAY 1; //Going around is enough delay
ENDM
//===================bit0
send0 MACRO
SET1 LED;
.DELAY 2;
$ LED low;
.DELAY 2;
ENDM
//========================

void SendRGB (void)
{
DISGINT; //Let's not get interrupted

.FOR bitno, <23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0> //Regular for() loop doesn't work, but at least the compiler can do the hard work
if (rgb.bitno == 0)
{
send0;
}
else
{
send1;
}
.ENDM
ENGINT;
}

void show (void) {
rgb$0 = blue; //I lost track of MSB, LSB and endians.. This is what works. ????????
rgb$1 = red;
rgb$2 = green;
SendRGB();
}

void clearLED (void)
{
rgb = 0;
//pixels = definedPIXELS;
pixels = 300; //Debug
do
{
SendRGB();
} while (--pixels);
.delay 2000; //If you want to make sure the LED-reset is caught, use a longer one. 0.125us *2000 = 250us

}

void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/2 // SYSCLK=IHRC/2 16MH 2?? 8M

count = 0;

$ T16M IHRC, /4, BIT15; // BIT15 Time increment of each T16M = 16MHz / 4 = 4 MHz
// generate INTRQ.T16 = 16,384 uS every 2^16 times
ENGINT;
$ INTEN T16; // Enable the T16M interrupt

$ LED out,low; //LED ????? ???
$ BTN in, pull; //?????????
count = 0;
unsigned word hue = 0;
firstPixelHue = 0;
byte current;
mode = 0;
firstinc = 1;

//Let's start by clearing LED's and going to sleep - we don't want anything to consume current if we restarted by mistake
clearLED();
rgb = 0;
SendRGB();//
$ LED high;
CLKMD = 0xF4; // -> ILRC
CLKMD.En_IHRC = 0; // close IHRC
while (1)
{
STOPSYS;

if (BTN == 0) break; // examine and determine whether toggle to STOPSYS or execute at high speed.
}
CLKMD = 0x34; // -> IHRC / 2
count = 0; //

//========================???===========================================
while (1) //Main loop
{
if ( BTN == 1)
{ //If button is not pressed
pixels = definedPIXELS;//300

if (mode < 3) 
{ //Rainbow
hue = firstPixelHue;//0
if (mode == 0)
{
hueinc = 5;
firstinc = 1;
}
if (mode == 1) hueinc = 0;
if (mode == 2)
{
hueinc = 10;
firstinc = 0;
}

do
{
if (hue>=768)
{
hue -= 768;
}
current = (hue & 0xFF);
if (hue < 256)
{
red = ~current;
green = current;
blue = 0;
show();
}

if (hue > 255 && hue < 512)
{
red = 0;
green = ~current;
blue = current;
show();
}

if (hue > 511 && hue < 768)
{
red = current;
green = 0;
blue = ~current;
show();
}
hue+=hueinc;

} while (--pixels);


.delay(8000); //Should be increased if fewer LED's are used
firstPixelHue+=firstinc;
if (firstPixelHue > 3072) firstPixelHue = 0; //Has to be reset sometime.
} //End rainbow

//=================??======================
if (mode == 3)
{ //Red - not too bright
red = 150;
green = 0;
blue = 0;
do {

show();
} while (--pixels);
.delay(2000);
}
//=================??=======================
if (mode == 4)
{ //Green - not too bright
red = 0;
green = 150;
blue = 0;
do {
show();
} while (--pixels);
.delay(2000);
}
//====================??==================
if (mode == 5)
{ //Blue - not too bright
red = 0;
green = 0;
blue = 125;
do {
show();
} while (--pixels);
.delay(2000);
}

if (mode == 6)
{ //Princess! - not too bright
green = 0;
red = 200;
blue = 200;
do {
show();
} while (--pixels);
.delay(2000);
}
}
else
{ //Button pressed - go to sleep
clearLED();
rgb = 0;
SendRGB();
$ LED high; //I think I remember something about setting the WS2812B signal line high, reduces leak current. Maybe not.

if (count > 10)
{ //Unless we just woke up go to sleep
//Maybe disable wakeup from other pins - PADIER
CLKMD = 0xF4; // -> ILRC
CLKMD.En_IHRC = 0; // close IHRC
while (1)
{
STOPSYS;
if (BTN == 0) break; // examine and determine whether toggle to STOPSYS or execute at high speed.
}
CLKMD = 0x34; // -> IHRC / 2
mode++;
if (mode > 6) mode = 0;
}

/* //Change mode if button held longer when coming out of sleep
count = 0;
while (count < 30) {
if (BTN == 1) {

break;
}
}
*/
count = 0;
}
// wdreset;
}
}


void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{
Intrq.T16 = 0;
count ++; // 16,384uS 61 == 999,424 uS ≤ 1S
}
popaf;
}

审核编辑黄宇

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

    关注

    237

    文章

    22462

    浏览量

    645956
  • 驱动芯片
    +关注

    关注

    12

    文章

    1094

    浏览量

    53647
  • DIN
    DIN
    +关注

    关注

    0

    文章

    13

    浏览量

    10708
收藏 人收藏

    评论

    相关推荐

    麦爵士madrix麦觉仕幻彩灯条灯带智能像素灯工程安装经验详解

    以工程安装经验为基础,为麦爵士幻彩灯条灯带智能像素灯安装提供合理的经验,以便提高工程施工效率,麦爵士madrix幻彩灯条灯带智能像素灯安装经验详解第一要点:供电和信号分离---幻彩灯条灯带都有独立
    的头像 发表于 02-27 19:55 494次阅读
    麦爵士madrix麦觉仕幻<b class='flag-5'>彩灯</b>条灯带智能像素灯工程安装经验详解

    2835灯白光波长

    2835白光灯通常是LED灯的一种型号,而波长通常用于描述光的颜色。然而,LED的白光是通过混合不同颜色的LED来实现的,而不是通过单一的波长。因此,通常不会直接使用波长来描述白光LED
    发表于 01-25 13:17

    彩LED灯带芯片:SM16703SP单点单控 断点续传

    彩LED灯带芯片SM16703SP3是一款单点单控断点续传的芯片,它采用了先进的技术,可以实现灯光的变化和控制。这款芯片不仅仅可以提供各种丰富多彩的灯光效果,还有断点续传功能, LED断点续传灯条
    发表于 12-18 14:45

    快速制作PCB中的秘密

    快速制作PCB中的秘密
    的头像 发表于 12-14 18:27 416次阅读
    快速制作PCB中的<b class='flag-5'>秘密</b>

    电阻的秘密——你必须知道的电阻参数

    电阻的秘密——你必须知道的电阻参数
    的头像 发表于 12-06 14:31 434次阅读
    电阻的<b class='flag-5'>秘密</b>——你必须知道的电阻参数

    【每周一练】+盘古1K开发板+键盘控制彩灯+硬件约束改变按键

    ) btn_deb <= `UD btn_in; end endmodule 二、彩灯控制 小眼睛开发板上使用的彩灯是0603灯,每个灯有RGB三个脚进行控制,可以显
    发表于 11-29 21:01

    EDA八路彩灯课程设计

    电子发烧友网站提供《EDA八路彩灯课程设计.doc》资料免费下载
    发表于 10-30 09:59 8次下载
    EDA八路<b class='flag-5'>彩灯</b>课程设计

    【新品体验】涂鸦 T2-U 开发板免费试用

    。它支持开发者通过 TuyaOS 进行自定义二次开发,拥有电量统计芯片驱动、照明驱动、彩灯带芯片驱动等功能,开发者可按需选用。了解更多>>
    发表于 09-18 10:31

    彩灯控制电路的设计与制作

    让自己学号的后2位编码后点亮相应的灯,能实现循环左、右移,按键控制,同时按键控制彩灯亮灭速度。
    的头像 发表于 08-25 17:16 1947次阅读
    <b class='flag-5'>彩灯</b>控制电路的设计与制作

    彩灯珠的应用场所

      幻彩灯珠其实我们可以理解为该灯珠内部有一颗LED驱动芯片外加R,G,B 3种颜色的LED的合封体。并且这颗LED驱动芯片可以驱动3路 LED,每一路LED驱动都跟内部的R,G,B通过封装打线连接
    的头像 发表于 06-28 16:16 740次阅读
    幻<b class='flag-5'>彩灯</b>珠的应用场所

    led灯遇到这些问题怎么办

    led灯常见问题极解决方法 1.是供电不正常所导致问题 1检查供电的电源有没有正常工作,指示灯有没有亮起来,请看电源有没有链接好 2.查看灯的电源线是否供电电源的正负极链接好,有没有反向
    发表于 06-06 14:32

    用三极管制作音乐变色彩灯电路

    有关三极管的应用实例,采用三极管制作一个音乐变色彩灯电路,介绍了该音乐变色彩灯电路的元件构成,以及电路的工作原理,有需要的朋友参考下。
    的头像 发表于 05-30 16:10 1385次阅读
    用三极管制作音乐变色<b class='flag-5'>彩灯</b>电路

    使用ESP8266驱动WS2812彩灯

    本篇介绍ESP8266使用NeoPixel库来驱动IOT Kit板载WS2812彩灯
    的头像 发表于 05-19 14:31 1946次阅读
    使用ESP8266驱动WS2812<b class='flag-5'>彩灯</b>

    今日说“法”:paramter 、localparam的小“秘密

    好的灵感以及文章随笔,欢迎投稿,投稿请标明笔名以及相关文章,投稿接收邮箱:1033788863@qq.com。今天带来的是paramter 、localparam的小“秘密”,话不多说,上货
    发表于 05-17 16:26

    趣味满满的幻彩灯带开发包来了!开发者一用就爱上

    如果你常看短视频,一定被各种炫酷的幻彩灯带产品刷屏过。随着智能幻彩灯带的问世,其玩法也愈加丰富。比如支持用户对灯带上的每一颗灯珠实现亮度和颜色的单独调节,并专属自定义你想要的场景模式,呈现出花式
    的头像 发表于 05-06 10:13 786次阅读
    趣味满满的幻<b class='flag-5'>彩灯</b>带开发包来了!开发者一用就爱上