前言

一直想自己做一个LED的台灯,能够实现三色调节和光暗调节,搜索了下淘宝里的可调LED灯发现要么是只能调光暗,无法做到单色的调节,要么就是可以能实现调各种颜色,但是是无线的,多出一个遥控器是什么鬼...我只是想在台灯的底座上开三个孔,连上旋钮实现调色和调光啊,多一个遥控器不像话啊,看来只能自己实现了。

一通翻箱倒柜,发现5年前买的51开发板还在,就差一个能控的LED模块了!又一通搜索,发现一款WS2812B的LED控制模块好像挺符合我的需求的,但是网上发的程序要么是STM32的,要么是15系列的芯片的,没有我手头上51的,看来还是得自己手动来调了。

WS2812B资料

主要特点

  • 智能反接保护,电源反接不会损坏IC。
  • IC控制电路与LED点光源公用一个电源。
  • 控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。
  • 内置信号整形电路,任何一个像素点收到信号后经过波形整形再输出,保证线路波形畸变不会累加。
  • 内置上电复位和掉电复位电路。
  • 每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s。
  • 串行级联接口,能通过一根信号线完成数据的接收与解码。
  • 任意两点传传输距离在不超过5米时无需增加任何电路。
  • 当刷新速率30帧/秒时,级联数不小于1024点。
  • 数据发送速度可达800Kbps。
  • 光的颜色高度一致,性价比高。

主要应用领域

  • LED全彩发光字灯串,LED全彩模组, LED全彩软灯条硬灯条,LED护栏管。
  • LED点光源,LED像素屏,LED异形屏,各种电子产品,电器设备跑马灯。

产品概述

WS2813B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。

数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。

LED具有低电压驱动,环保节能,亮度高,散射角度大,一致性好,超低功率,超长寿命等优点。将控制电路集成于LED上面,电路变得更加简单,体积小,安装更加简便。

机械尺寸(单位mm)

机械尺寸与引脚图(单位mm)

引脚功能 :

序号

符号

管脚名

功 能 描 述

1

VDD

电源

供电管脚

2

DOUT

数据输出

控制数据信号输出

3

VSS

信号接地和电源接地

4

DIN

数据输入

控制数据信号输入

最大额定值(如无特殊说明,TA=25℃,VSS=0V

参数

符号

范围

单位

电源电压

VDD

+3.5~+5.3

V

逻辑输入电压

VI

-0.5~VDD+0.5

V

工作温度

Topt

-25~+80

储存温度

Tstg

-55~+150

电气参数(如无特殊说明,TA=-20~+70℃,VDD=4.5~5.5V,VSS=0V

参数

符号

最小

典型

最大

单位

测试条件

输入电流

II

——

——

±1

µA

VI=VDD/VSS

高电平输入

VIH

0.7VDD

——

——

V

DIN,SET

低电平输入

VIL

——

——

0.3 VDD

V

DIN,SET

滞后电压

VH

——

0.35

——

V

DIN,SET

开关特性(如无特殊说明,TA=-20~+70℃,VDD=4.5~5.5V,VSS=0V

参数

符号

最小

典型

最大

单位

测试条件

振荡频率

Fosc

——

600

——

KHz

——

传输延迟时间

tPLZ

——

——

300

ns

CL=15pF,DIN→DOUT,RL=10KΩ

下降时间

tTHZ

——

——

120

µs

CL=300pF,OUTR/OUTG/OUTB

输入电容

CI

——

——

15

pF

——

LED 特性参数

数据传输时间TH+TL=1.25µs±600ns)

T0H

0码,  高电平时间

0.4µs

±150ns

T1H

1码,  高电平时间

0.8 µs

±150ns

T0L

0码,  低电平时间

0.85µs

±150ns

T1L

1码,  低电平时间

0.45 µs

±150ns

RES

帧单位,低电平时间

50µs以上

时序波形图

WS2812B

输入码型:

连接方法:

WS2812B

 

WS2812B

数据传输方法

注:其中D1为MCU端发送的数据,D2、D3、D4为级联电路自动整形转发的数据。

24bit数据结构:

G7

G6

G5

G4

G3

G2

G1

G0

R7

R6

R5

R4

R3

R2

R1

R0

B7

B6

B5

B4

B3

B2

B1

B0

注:高位先发,按照GRB的顺序发送数据。

典型应用电路:

以上内容复制粘贴。。。来源https://wenku.baidu.com/view/25f176db482fb4daa48d4ba1.html,还有英文版https://wenku.baidu.com/view/76a0294580eb6294dc886c4d.html

主要注意以下几个点:

1.发送的01数据流一定要跟规格书走;误差不能超过150ns,51单片机的频率小一点的晶振可能根本达不到这个要求,所以我采用     了一颗24M晶振,并且在ISP下载工具中打开了,使频率翻了一倍,大概48M,那么一条指令的大概时间就       是6/24M=0.25µs,勉强够用。

2.发送的24位数据一定注意发送的顺序,文档中的要求是先发绿色色值,并且是从高位开始发送;

3.发送数据时有多少个灯要发送多少个24位颜色值,而且2个24位颜色值之间时间间隔不能超过50µs,否则,模块会把这个24位     数当做是第一个灯的数据;

4.嗯,想起来再补充;

关键思路

先实现能调光,而想要调光,那么肯定要有一个电位器进行调节,然后通过ADC模块来读入值,再转化后发送到ws2812b模块。嗯,直接先用51开发板上的ADC模块来调试吧。

51开发板上自带的ADC模块,J2直接短接34脚,使用电位器来调节。

ADC模块代码开发板已经自带了,直接拿来使用,不在本文的关键内容中,不做赘述!

ws2812b有四口,一个VCC,一个GND,一个DATA IN,一个DATA OUT。51与ws2812b的连接电路很简单,P0.0口上拉一个10K电阻后与ws2812b的data in口连接,ws2812b的电源地端与51的电源共地,电源的+-之间并一个100uf的电容,搞定!

相关代码

注意,以下代码都是在stc89c52rc,晶振为24M,打开使能6T功能下测试成功,P0口上拉电阻,接ws2812b的data in端,其他条件下需要自己做代码上的调整!

(1)写入一位数据时序:

/*写入数据时序*/
void Send_A_bit(uchar VAL)
{if (VAL==1){Send_Dat=1;_nop_();//两个nop,大概是0.5us,经测试,发送完1后的延时最重要_nop_();Send_Dat=0;}else{Send_Dat=1;_nop_(); //一个nop,大概是0.25usSend_Dat=0;}
}

(2)发送一个灯的24位数据:

//存储一个转化后的RGB2进制数  共24bits
struct My_24bits                    //结构体
{uchar G_VAL;                 //绿色  0-255uchar R_VAL;                  //红色 0-255uchar B_VAL;                  //蓝色0-255
};/*发送24位字符(包含RGB信息各8位)*/
void Send_24bits(struct My_24bits RGB_VAL)
{uchar i;for(i=0; i<8; i++){Send_A_bit(RGB_VAL.G_VAL>>(7-i)&0x01);//注意是从高位先发}for(i=8; i<16; i++){Send_A_bit(RGB_VAL.R_VAL>>(15-i)&0x01);}for(i=16; i<24; i++){Send_A_bit(RGB_VAL.B_VAL>>(23-i)&0x01);}
}

(3)ADC转换代码,不是重点,可以下载后查看,略;

以上,实现了电位器对led灯亮度进行调节,可以对ws2812b模块进行很好的了解与熟悉。因为此部分只能调光,不能对单色进行调节,下部分会把ADC模块替换掉,改用EC11编码器,就可以对单色逐一调节,然后用上EEPROM保存颜色值,断电重启能记忆上次颜色值。嗯,EC11还没买,没有示波器,只能纯手调,看运气和人品了。。。

完整代码:https://download.csdn.net/download/yaleond/10749279

STC89C52RC控制WS2812B LED 调色调光(一)相关推荐

  1. STC89C52RC控制WS2812B LED 调色调光(二)

    前言 淘宝买的编码器到货,开始手动编码调试,踩了一些坑,不过最终还是搞定. 目标 上篇文章中是用ADC转换电位器阻值来对WS2812B来进行调光的,如果想分别调三基色的亮暗,那就得用三个电位器三个AD ...

  2. FP7126降压DC-DC恒流LED双路调光芯片调色调光【舞台灯RGB调光驱动方案】

    概述   FP7126 是平均电流模式控制的 LED 驱动 IC,具有稳定输出恒流的能力,优秀的负载调整率与高精度的电流控制.不用额外增加外部补偿元件,简化 PCB 板设计.FP7126 可接受 PW ...

  3. 《LED调光-DMX512灯光协义接收控制》转

    源:http://blog.163.com/zhaojun_xf/blog/static/30050580200951023046891 来自: 作者:龙图开发网 文章来源:龙图开发网 时间:2009 ...

  4. 树莓派40/100 - Pico控制WS2812B,一根信号线实现多种LED灯光效果(1)

    从某多平台花了15元钱买了一米长的WS2812B彩灯,用于我的Pico编程试验,这种灯的神奇之处在于只需一根信号线,能够控制串联在一起的30颗LED灯珠(好像能长达1024颗灯),实现各种彩灯效果. ...

  5. SGL系列 LED调光电路设计 ANBOZ

    一.SGL8022W-单路LED调光触控芯片: 提供三段式触控调光和无级触控调光两种调光方式.在无级触控调光方式中,又有不带亮度记忆不带亮度缓冲.带亮度记忆不带亮度缓冲.带亮度记忆带亮度缓冲等三个不同 ...

  6. LED调光,PFM即pulse frequence modulation

    PWM不是唯一的调制方式,可以PWM,也可以PFM,也可以混合调制. PWM即pulse width modulation的缩写,脉冲宽度调制,保持开关周期不变,调节开关导通时间. PFM即pulse ...

  7. 【Proteus仿真】51单片机过零检测触发控制光耦+可控硅调光电路

    [Proteus仿真]51单片机过零检测触发控制光耦+可控硅调光电路 Proteus仿真截图 可以进行仿真,但是没有预期的效果. 电路搭建注意事项 整流桥输出负极端一定要接地,不然运行仿真会报错. 程 ...

  8. LED调光闪烁的原因

    转载--电源研发精英圈 2016-09-07 21:09 大家是不是在设计led调光电源的时候,电源会出现频闪的现象呢?通常人眼能够感知到频率达70Hz的光闪烁,高于这个频率则不会感知.故在LED照明 ...

  9. 简单高效地控制高亮度LED

    简单高效地控制高亮度LED HBLED(高亮度发光二极管)是全球增长最快的一种光源,它的发光效率在35-50Lm/W内,超过了白炽灯和卤素灯.经过改进,还可以用于生产发光效率大于100Lm/W的器件, ...

最新文章

  1. 第十六周程序阅读(1)
  2. dubbo图形化界面搭建_使用 JMeter 进行 Dubbo 性能测试
  3. A Quantization-Friendly Separable Convolution for MobileNets
  4. Linux 上 docker 安装 oracle-xe-11g
  5. php dom 换行,PHP DOM XML不会在标记之后打印掉换行符
  6. BZOJ2209 [Jsoi2011]括号序列 splay
  7. PHP清除HTML代码、空格、回车换行符的函数
  8. 剑指offer面试题[9-1]-跳台阶
  9. HDU2080 夹角有多大II【数学】
  10. ASP.NET 對cookies的操作
  11. Python有趣小程序代码
  12. three.js将fbx文件转为glb文件,并且压缩处理
  13. jQuery获取屏幕宽度和高度
  14. SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(四)
  15. pandas的apply中的x到底是什么
  16. iOS编辑预览视频小结
  17. python3注册全局热键
  18. python绘制散点图的步骤_python绘制散点图
  19. python print r_Python 语句 print(r\nGood) 的运行结果是 ( ) 。_学小易找答案
  20. tpx色卡电子版_潘通色卡电子版下载

热门文章

  1. 位运算—统计文本文件中汉字的个数
  2. 关于软删除的一点小建议
  3. 郑州大学网络空间安全学院复试123
  4. 【python】PyQt6和pyqt6-tools在PyCharm2021的详细配置方法
  5. 方案设计-实现地图导航
  6. 【转载】Linux查看PCIe版本及速率【方法】PCIE的X4X8X16 查看 数量 怎么看
  7. TWaver家族新成员 — Legolas工业自动化设计平台
  8. 如何使用同一个gitlab账号提交到外网、内网gitlab
  9. 总投资460亿!陈十一院士任校长,东方理工大学年薪40-60万招人
  10. 【nowcoder 219035】春游