久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
炫酷ws2812流水燈好看又簡單 附單片機(jī)源碼
[打印本頁]
作者:
配合著你
時間:
2018-9-24 04:32
標(biāo)題:
炫酷ws2812流水燈好看又簡單 附單片機(jī)源碼
STC15W204是8PIN的寬電壓版,驅(qū)動WS2812的時候單片機(jī)可以用5V電壓,也可以用3.3V的電源。
RGB燈條的電源應(yīng)該是4-7V之間,目前驅(qū)動的是8顆粒的燈條,原則上應(yīng)該可以驅(qū)動更多顆粒的,不過手頭沒有那么長的,沒試過,有興趣的朋友可以自己試驗,看看最多可以驅(qū)動多少個。按理論來講驅(qū)動8顆和80顆應(yīng)該是一樣的。
硬件環(huán)境:
單片機(jī):STC15W204S(SOP8)
燈帶:WS2812(8顆粒)
非必需品:開關(guān),USB轉(zhuǎn)接板,面包板,跳線若干。
使用片內(nèi)R/C振蕩器,連外部晶振都不需要,工作頻率為11.0592MHz
STC15W204S可以用其他其他STC 1T的MCU。
代碼也非常簡單,只用到1個IO口,不需要進(jìn)行任何初始化。
如果使用其他工作頻率時,請相應(yīng)調(diào)整DELAY_LONG和DELAY_SHORT的宏定義,適當(dāng)增減_nop()_的個數(shù),直到能正確驅(qū)動燈條為止。
單片機(jī)源程序如下:
#include <reg51.h>
#include <intrins.h>
// 使用的IO口,無需初始化
sbit DOUT = P3^3;
#define DELAY_LONG {_nop_();_nop_();_nop_();}
#define DELAY_SHORT {_nop_();_nop_();}
#define SEND_1 {DOUT=1;DELAY_LONG;DOUT=0;DELAY_SHORT;}
#define SEND_0 {DOUT=1;DELAY_SHORT;DOUT=0;DELAY_LONG;}
#define SEND_BIT(x) {if(x) {SEND_1;} else {SEND_0;}}
// WS2812燈帶顆粒數(shù)
#define PIXEL_CNT (8)
// RGB顆粒結(jié)構(gòu)
typedef struct {
unsigned int next_pixel; // 下一顆粒的index
unsigned char green; // 綠色值
unsigned char red; // 紅色值
unsigned char blue; // 藍(lán)色值
unsigned char brightness; // 亮度值
} Pixel;
void send_p(Pixel _p); // 發(fā)送1個顆粒的值
void send_pixels(Pixel *_p_list, unsigned int _start, unsigned int _cnt); // 發(fā)送所有顆粒的值
// 各顆粒值的初始值
Pixel pixels[PIXEL_CNT] = {
{1, 31, 255, 127, 255},
{2, 31, 255, 127, 127},
{3, 31, 255, 127, 31},
{4, 31, 255, 127, 7},
{5, 31, 255, 127, 1},
{6, 31, 255, 127, 0},
{7, 31, 255, 127, 0},
{0, 31, 255, 127, 0},
};
// 通用計數(shù)器
unsigned int cnt = 0;
// 指定毫秒數(shù)Delay
void delay_ms(unsigned int x) //@11.0592MHz
{
unsigned char i, j;
do {
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
} while (--x);
}
// 主函數(shù)
void main() {
// 初始化段
// 循環(huán)處理段
while(1) {
// 等待50ms
delay_ms(50);
cnt %= 0x100;
send_pixels(pixels, cnt % PIXEL_CNT, PIXEL_CNT);
cnt++;
}
}
void Delay50us() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 1;
j = 134;
do
{
while (--j);
} while (--i);
}
// RESET信號
void reset() {
DOUT = 0;
Delay50us();
}
void send_p(Pixel _p) {
unsigned char p_v;
p_v = (_p.green * _p.brightness) >> 8;
SEND_BIT(p_v & 0x80);
SEND_BIT(p_v & 0x40);
SEND_BIT(p_v & 0x20);
SEND_BIT(p_v & 0x10);
SEND_BIT(p_v & 0x08);
SEND_BIT(p_v & 0x04);
SEND_BIT(p_v & 0x02);
SEND_BIT(p_v & 0x01);
p_v = (_p.red * _p.brightness) >> 8;
SEND_BIT(p_v & 0x80);
SEND_BIT(p_v & 0x40);
SEND_BIT(p_v & 0x20);
SEND_BIT(p_v & 0x10);
SEND_BIT(p_v & 0x08);
SEND_BIT(p_v & 0x04);
SEND_BIT(p_v & 0x02);
SEND_BIT(p_v & 0x01);
p_v = (_p.blue * _p.brightness) >> 8;
SEND_BIT(p_v & 0x80);
SEND_BIT(p_v & 0x40);
SEND_BIT(p_v & 0x20);
SEND_BIT(p_v & 0x10);
SEND_BIT(p_v & 0x08);
SEND_BIT(p_v & 0x04);
SEND_BIT(p_v & 0x02);
SEND_BIT(p_v & 0x01);
}
void send_pixels(Pixel *_p_list, unsigned int _start, unsigned int _cnt) {
Pixel *_p = &_p_list[_start % _cnt];
reset();
while(_cnt--) {
send_p(*_p);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
WS2812B.zipWS2812B.zip
(29.26 KB, 下載次數(shù): 493)
2018-9-24 04:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
dhii1234
時間:
2018-9-27 21:11
謝謝分享,學(xué)習(xí)學(xué)習(xí)
作者:
printy123
時間:
2018-10-8 16:16
是不是不能用12T單片機(jī)
作者:
快樂眼淚
時間:
2018-10-8 19:34
謝謝樓主分享!!!
作者:
kxxxxc
時間:
2018-10-19 17:25
感謝感謝
作者:
happy¥
時間:
2018-10-23 13:49
這個怎么用的
作者:
happy¥
時間:
2018-10-23 13:50
感謝樓主,能詳細(xì)點嗎
作者:
大飛0011
時間:
2018-11-16 11:02
你試過這個程序沒有
我試了,完全不受控制 只是亮了
作者:
yuren1984
時間:
2018-12-5 20:56
這個程序只能點亮8個燈,不能實現(xiàn)流水切換顏色的嗎?
作者:
yuren1984
時間:
2018-12-6 14:41
這個程序要怎么調(diào)才能切換顏色啊?
作者:
yuren1984
時間:
2018-12-6 14:51
多多只能點亮17個燈,所有燈還不受控制啊
作者:
liu--2019
時間:
2019-7-18 20:18
新手看看
作者:
pxh316
時間:
2019-9-17 18:07
謝謝分享,學(xué)習(xí)
作者:
ryz917
時間:
2019-10-31 07:38
就是看看 。。。。達(dá)到
作者:
螞蟻絆大象
時間:
2019-10-31 10:50
謝謝樓主分享!!!想下載新手沒有幣
作者:
wuxishun
時間:
2019-12-13 13:45
我也說一句想整個車燈
作者:
enban
時間:
2020-3-15 16:45
調(diào)節(jié)亮度的那個函數(shù),怎么理解?
作者:
1223520317
時間:
2020-4-30 15:01
謝謝,剛好可以用來做設(shè)計
作者:
495427449
時間:
2020-10-16 16:10
最近在用這個RGB燈,剛好找到這里,謝謝分享
作者:
tomhlot
時間:
2021-7-1 08:54
亮度值你是怎么增減的?
作者:
hhdsdy
時間:
2021-9-4 00:20
下載一個撿現(xiàn)成的程序
作者:
Malone_6
時間:
2024-6-25 19:28
你這個不能流水變色啊
作者:
cigee001
時間:
2024-10-17 14:10
人才啊,用一個fastled庫代碼要省很多
作者:
aigo13428149596
時間:
2024-11-19 22:38
謝謝分享,學(xué)習(xí)學(xué)習(xí)
作者:
wkman
時間:
2024-11-25 17:27
類似2812燈珠 的還有好多種
作者:
ydq2015ok
時間:
2024-12-24 23:04
近在用這個RGB燈,剛好找到這里,謝謝分享
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美在线视频观看
|
少妇高潮毛片
|
亚洲国产日本
|
国产日韩免费
|
色婷婷18
|
亚洲综合婷婷
|
日韩欧美一级片
|
高潮毛片又色又爽免费
|
国产黄色在线观看
|
香港三日本三级少妇66
|
国产黄色片视频
|
成人免费视频网站在线观看
|
欧美亚洲激情
|
日韩免费高清视频
|
超碰97久久
|
国产精品久久久久久久午夜
|
亚洲精品网站在线观看
|
免费毛片网
|
日本黄色a级片
|
亚洲天堂第一页
|
欧美午夜精品一区二区
|
国产精品久久久久久久久借妻
|
国产真实乱人偷精品
|
一区二区免费视频
|
欧美视频在线观看
|
欧美激情在线播放
|
国产精品久久久一区二区
|
黄色免费av
|
看黄色大片
|
亚洲激情视频在线观看
|
成人毛片网
|
一区二区三区精品
|
性大毛片视频
|
日韩中文字幕一区
|
日韩精品极品视频在线观看免费
|
在线视频日韩
|
中文字幕不卡在线
|
久久视频在线
|
免费的一级片
|
日韩欧美综合
|
日韩视频免费在线观看
|