esp-01 arduino WS2812B W2812
主旨: RGB 彩灯帶晶片WS2812B W2812 實習
日期: 2019/12/18~2019/12/18
說明:
1。之前是用 MPC82G516 (8051) , TINY13A (AVR) 做彩灯條的控制。
2。暫找不到彩灯條,找到前年,合作廠提供的 100 顆彩灯, 未帶線, 需自行焊接。
3。因為要動手焊線路,就停頓一些日子,沒去動它。
4。今,想用 arduino 去控制它,就動手焊接實習。
5。可以用以前的原碼進行改寫,但,用網上既有的程式庫,也是一種選擇,於是就採後者。
https://www.trademe.co.nz/electronics-photography/other-electronics/electronic-components/leds/listing-2445505601.htm
Neopixel WS2812B W2812 5050 RGB LED環形燈,帶集成驅動器
手上有這近100顆, 要進行實測, 用arduino
https://core-electronics.com.au/tutorials/ws2812-addressable-leds-arduino-quickstart-guide.html
WS2812 / NeoPixel可尋址LED:Arduino快速入門指南
10顆*20mA=200mA
網文提供的 原碼, 複製使用時, 要修改, 因為, 每列會重覆顯示。
已經實習成功,檔名是 ws2801.ino
主旨:原自寫的WS2812 彩灯條 TINY13A AVR C ,改寫為 esp-01 Arduino 碼
硬體:上圖, ESP-01 + WS2812B
紀要:改碼後, 測試不成功。暫行放棄。
說明:
工作: 寫< 1us 的delay_me()
說明:
重點:
while(t--); for(i=0;i< 10000;i++); 這等同沒有。8051C, 則會佔cpu時間,esp8266 arduino 則沒有佔。
工作: 寫< 1us 的delay_me()
說明:
日期: 2019/12/18~2019/12/18
說明:
1。之前是用 MPC82G516 (8051) , TINY13A (AVR) 做彩灯條的控制。
2。暫找不到彩灯條,找到前年,合作廠提供的 100 顆彩灯, 未帶線, 需自行焊接。
3。因為要動手焊線路,就停頓一些日子,沒去動它。
4。今,想用 arduino 去控制它,就動手焊接實習。
5。可以用以前的原碼進行改寫,但,用網上既有的程式庫,也是一種選擇,於是就採後者。
https://www.trademe.co.nz/electronics-photography/other-electronics/electronic-components/leds/listing-2445505601.htm
Neopixel WS2812B W2812 5050 RGB LED環形燈,帶集成驅動器
10顆*20mA=200mA
網文提供的 原碼, 複製使用時, 要修改, 因為, 每列會重覆顯示。
已經實習成功,檔名是 ws2801.ino
主旨:原自寫的WS2812 彩灯條 TINY13A AVR C ,改寫為 esp-01 Arduino 碼
硬體:上圖, ESP-01 + WS2812B
紀要:改碼後, 測試不成功。暫行放棄。
說明:
問: 貴州案, tiny13A 有沒有控制彩燈條
答: 有的。
關於delay(),
millis(), micros(),delayMicroseconds與定时器(教程)計時
我懷疑, 要用 nop 才不會被esp8266 略過。
我用
while(t--); 它根本就沒執行, 直接略過。for(i=0;i< 10000;i++);
它也是,略過。
void
delay_me(ulong t){
static int k;
while(t--)
for(k=0;k< 160;k++) __asm__("nop\n\t");
}
delay_me(10000);
t0= 40835506
t1= 40936932 t= 101426
這才有反應, 正常點的反應,之前都是略過。有反應了, 就精簡如下。
void
delay_me(ulong t){
while(t--) __asm__("nop\n\t");
}
delay_me(10000);
輸出如下:
t0= 14087109
t1= 14087739 t= 630
delay_me()
=> 0.063us
結論: 這樣寫就對了。
問: 灯沒反應, 很可能是
high low, 送反了.
答: 變更後, 灯一樣沒反應, 我決定放棄。
問: 是否顏色未變化,看不出來。
答: 改用亂變作為灯色, 但10灯,顏色全沒有變化。放棄。
問: arduino
如何印小數
答: Serial.println(1.23456,
2) 小數點2位 gives "1.23"
計劃:用8051 C 或 AVR C , 驅動彩灯1次,找明原因
說明:
1。之前用的彩灯,有可能和現在用的有所不同,重新用我之前的工具,干一次,以進一步了解原因。
2。。。。
說明:
1。之前用的彩灯,有可能和現在用的有所不同,重新用我之前的工具,干一次,以進一步了解原因。
2。。。。

留言