Pikocube是一個54像素的小LED立方體,一個ESP8285-01F WiFi MCU和一個ADXL345陀螺儀傳感器。每個PCB的尺寸為25x25mm??赏ㄟ^一側(cè)的6個貼片焊盤閃光。計(jì)劃是將立方體用作一個電子骰子來檢測它何時被拋出,何時變得不活躍。
您需要的零件
5x PCB
45個WS2812 2020 LED
5個0.1μF 0603電容器
5個10 μF 0603電容器
5x 0歐姆0603電阻
一些電線
它僅將一個LED的DIN連接到另一個LED的DOUT。它包含兩個介于5V和GND之間的電容器。根據(jù)WS2812的數(shù)據(jù)表,建議為每個LED使用一個電容器,但是九個LED的面積非常小,并且LED彼此之間相距不遠(yuǎn),這就是為什么我只使用了兩個電容器的原因。
為了將五個PCB連接在一起,我在所有四個邊緣上都添加了一些焊盤,這些焊盤包含5V,GND,DIN,DOUT。有些配備了跳線墊,因?yàn)樘貏e是對于頂部PCB,您不應(yīng)該連接所有的墊-5V會被焊接到GND,那將是不好的……誠然,這些墊太小了,其尺寸僅為0.635 ×0.635mm,但稍有耐心,它將以某種方式工作。
該項(xiàng)目僅用于連接45個LED,因此在對Pikocube進(jìn)行編程時可以非常有創(chuàng)意。我在大多數(shù)LED項(xiàng)目中都使用FastLED庫,但是Neopixel庫在很多情況下也可以使用。我編寫了一個簡單的函數(shù),將圓形(?)矩陣映射到多維數(shù)據(jù)集上,得到一個12×5矩陣,其中第五行(y = 4,因?yàn)榈谝恍惺莥 = 0)只是頂部的中間像素,使用哪個x坐標(biāo)的問題。
int get_pixel(int x, int y){
int num = -1;
int mat = x/3;
if(y 《 3){
//bottom matrix 3x12
if(x《3){
//matrix 1
if(y==1) num = 5 - x;
else num = y * 3 + x;
}
else if(x《6){
//matrix 2
if(y==1) num = 17 - x;
else num = y * 3 + x + 6;
}
else if(x《9){
//matrix 3
if(y==1) num = 29 - x;
else num = y * 3 + x + 12;
}
else if(x《12){
//matrix 4
if(y==1) num = 41 - x;
else num = y * 3 + x + 18;
}
}
else if(y == 3){
//top matrix 3x3
if(x==0 || x==11) num = 38;
if(x==1) num = 39;
if(x==2 || x==3) num = 44;
if(x==4) num = 43;
if(x==5 || x==6) num = 42;
if(x==7) num = 41;
if(x==8 || x==9) num = 36;
if(x==10) num = 37;
}
else if(y==4){
//top middle led
num = 40;
}
return num;
}
責(zé)任編輯:pj
-
傳感器
+關(guān)注
關(guān)注
2552文章
51294瀏覽量
755199 -
電容器
+關(guān)注
關(guān)注
64文章
6242瀏覽量
99944 -
pcb
+關(guān)注
關(guān)注
4324文章
23137瀏覽量
398889
發(fā)布評論請先 登錄
相關(guān)推薦
評論