37款傳感器與模塊的提法碌燕,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊井辜,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的管闷,這里準(zhǔn)備逐一動(dòng)手試試做實(shí)驗(yàn)粥脚,不管成功與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不定的問題包个,希望能夠拋磚引玉刷允。?
【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)三十六:WS2812B智能外控集成LED四位彩燈模塊(內(nèi)置驅(qū)動(dòng)IC)
WS2813B
是一個(gè)集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個(gè)5050LED燈珠相同,每個(gè)元件即為一個(gè)像素點(diǎn)树灶。像素點(diǎn)內(nèi)部包含了智能數(shù)字接口數(shù)據(jù)鎖存信號(hào)整形放大驅(qū)動(dòng)電路纤怒,還包含有高精度的內(nèi)部振蕩器和12V高壓可編程定電流控制部分,有效保證了像素點(diǎn)光的顏色高度一致天通。
主要特點(diǎn)
●????智能反接保護(hù)熏挎,電源反接不會(huì)損壞IC耿焊。
●????IC控制電路與LED點(diǎn)光源公用一個(gè)電源。
●????控制電路與RGB芯片集成在一個(gè)5050封裝的元器件中,構(gòu)成一個(gè)完整的外控像素點(diǎn)邓萨。
●????內(nèi)置信號(hào)整形電路,任何一個(gè)像素點(diǎn)收到信號(hào)后經(jīng)過波形整形再輸出檩小,保證線路波形畸變不會(huì)累加罩阵。
●????內(nèi)置上電復(fù)位和掉電復(fù)位電路。
●????每個(gè)像素點(diǎn)的三基色顏色可實(shí)現(xiàn)256級(jí)亮度顯示序臂,完成16777216種顏色的全真色彩顯示蚌卤,掃描頻率不低于400Hz/s。
●????串行級(jí)聯(lián)接口奥秆,能通過一根信號(hào)線完成數(shù)據(jù)的接收與解碼逊彭。
●????任意兩點(diǎn)傳傳輸距離在不超過5米時(shí)無需增加任何電路。
●????當(dāng)刷新速率30幀/秒時(shí)构订,級(jí)聯(lián)數(shù)不小于1024點(diǎn)侮叮。
●????數(shù)據(jù)發(fā)送速度可達(dá)800Kbps。
●????光的顏色高度一致悼瘾,性價(jià)比高囊榜。
數(shù)據(jù)協(xié)議采用單線歸零碼的通訊方式,像素點(diǎn)在上電復(fù)位以后亥宿,DIN端接受從控制器傳輸過來的數(shù)據(jù)卸勺,首先送過來的24bit數(shù)據(jù)被第一個(gè)像素點(diǎn)提取后,送到像素點(diǎn)內(nèi)部的數(shù)據(jù)鎖存器烫扼,剩余的數(shù)據(jù)經(jīng)過內(nèi)部整形處理電路整形放大后通過DO端口開始轉(zhuǎn)發(fā)輸出給下一個(gè)級(jí)聯(lián)的像素點(diǎn)曙求,每經(jīng)過一個(gè)像素點(diǎn)的傳輸,信號(hào)減少24bit映企。像素點(diǎn)采用自動(dòng)整形轉(zhuǎn)發(fā)技術(shù)悟狱,使得該像素點(diǎn)的級(jí)聯(lián)個(gè)數(shù)不受信號(hào)傳送的限制,僅僅受限信號(hào)傳輸速度要求堰氓。
LED具有低電壓驅(qū)動(dòng)挤渐,環(huán)保節(jié)能,亮度高豆赏,散射角度大挣菲,一致性好富稻,超低功率,超長(zhǎng)壽命等優(yōu)點(diǎn)白胀。將控制電路集成于LED上面椭赋,電路變得更加簡(jiǎn)單,體積小或杠,安裝更加簡(jiǎn)便哪怔。
應(yīng)用領(lǐng)域
●? ???LED全彩發(fā)光字燈串,LED全彩模組向抢, LED全彩軟燈條硬燈條认境,LED護(hù)欄管
●? ?LED點(diǎn)光源,LED像素屏挟鸠,LED異形屏叉信,各種電子產(chǎn)品,電器設(shè)備跑馬燈等
只需要一個(gè)數(shù)字口就可以幾乎無限級(jí)聯(lián)的全彩RGB LED( 我這里是四位的模塊)
四位模塊電原理圖
模塊引腳
VCC---這個(gè)引腳需要由一個(gè)5V-7V的直流電源接入艘希。電壓過高(7V)的話會(huì)燒毀LED硼身,電壓太低(5V)的話則會(huì)造成亮度過低,甚至造成LED不工作覆享。
GND---公共引腳佳遂,接地,即接電源的負(fù)極撒顿。
IN---微控制器(或者是另外一個(gè)WS2812)的數(shù)據(jù)從這個(gè)引腳傳入LED丑罪。
OUT---數(shù)據(jù)從這里輸出給下一級(jí)的WS2812,如果這個(gè)WS2812是最后一級(jí)凤壁,則可直接懸空此引腳吩屹。
下載WS2812驅(qū)動(dòng)庫(kù)Adafruit_NeoPixel,有二個(gè)鏈接客扎;
https://github.com/adafruit/Adafruit_NeoPixel
https://www.tuicool.com/articles/IbaAJbE
好像需要三個(gè)庫(kù)祟峦,以適應(yīng)不同情況下的使用
Adafruit_GFX
Adafruit_NeoPixel
Adafruit_NeoMatrix
解壓縮每個(gè)庫(kù)罚斗,從文件夾名稱中刪除“-master”并將它們移動(dòng)到Arduino庫(kù)文件夾libraries里面徙鱼。重新啟動(dòng)Arduino IDE以加載庫(kù)。
/*
【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)三十六:WS2812B智能外控集成LED四位彩燈模塊(內(nèi)置驅(qū)動(dòng)IC)之一
第一個(gè)實(shí)驗(yàn):一只LED的呼吸燈
*/
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define MAX_LED 1
#define ADD true
#define SUB false
int val = 0;
boolean stat = ADD;
Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );
void setup(){
??strip.begin();
??strip.show();
}
void loop(){
??uint32_t color = strip.Color(val, val, val);
??strip.setPixelColor(0, color);
??
??if(val>=235)
? ? stat = SUB;
??if(val<=0)
? ? stat = ADD;
??
??strip.show();
??delay(15);
??if(stat==SUB) val --;
??else if(stat==ADD) val++;
}
/*
【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)三十六:WS2812B智能外控集成LED四位彩燈模塊(內(nèi)置驅(qū)動(dòng)IC)之二
第二個(gè)實(shí)驗(yàn):四只LED輪流全彩快閃
*/
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define MAX_LED 4
#define ADD true
#define SUB false
int val = 0;
boolean stat = ADD;
Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );
void setup()
{
??strip.begin();? ?? ?? ???
??strip.show();? ?? ?? ???
}
void loop()
{
??uint8_t i,a=0;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
??uint32_t color = strip.Color(0, 100, 255);? ?? ???
??while(a<10)
??{
? ?? ?for(i=0;i<9;i++)
? ?? ?{
? ?? ???if(i==a) strip.setPixelColor(i, color);? ???
? ?? ???else strip.setPixelColor(i, 0);? ?? ?? ?? ?
? ?? ?}
? ?? ? strip.show();? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ?? ? delay(30);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ?? ? a++;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
??}
}
/*
【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)三十六:WS2812B智能外控集成LED四位彩燈模塊(內(nèi)置驅(qū)動(dòng)IC)之三
第三個(gè)實(shí)驗(yàn):循序點(diǎn)亮四只綠色光LED
*/
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN? ?? ?? ?? ?6
#define NUMPIXELS? ?? ?4
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 500;
void setup() {
#if defined (__AVR_ATtiny85__)
??if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
??pixels.begin();
}
void loop() {
??for(int i=0;i<NUMPIXELS;i++){
? ? pixels.setPixelColor(i, pixels.Color(0,150,0));
? ? pixels.show();
? ? delay(delayval);
??}
}
實(shí)現(xiàn)同一效果针姿,至少有三種編程方式袱吆,代碼+圖形+仿真,可以互為補(bǔ)充距淫,互相配合