Arduino光立方代碼 焊接教程 原理圖
通俗易懂的硬件焊接教程:
0.png (618.52 KB, 下載次數: 156)
下載附件
2017-9-22 02:49 上傳
0.png (375.72 KB, 下載次數: 131)
下載附件
2017-9-22 02:49 上傳
0.png (407.04 KB, 下載次數: 120)
下載附件
2017-9-22 02:50 上傳
原理圖
0.png (96.27 KB, 下載次數: 140)
下載附件
2017-9-22 02:48 上傳
0.png (97.79 KB, 下載次數: 134)
下載附件
2017-9-22 02:48 上傳
Arduino參考程序代碼:
- int latchPin = 13; //74HC595的ST_CP(管腳12)
- int clockPin = 12; //74HC595的SH_CP(管腳11)
- int dataPin = 11; //74HC595的DS(管腳14)
- int CUBESIZE = 8;
- int PlanePin[] = {2, 3, 4, 5, 6, 7, 8, 9};
- void setup()
- {
- pinMode(latchPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(dataPin, OUTPUT);
- for(int i = 0; i < 8; i++)
- {
- pinMode(PlanePin[i],OUTPUT);
- }
- }
- void loop()
- {
- //花樣1
- EnablePlane(1);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第一層全亮
- delay(200);
- EnablePlane(2);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第二層全亮
- delay(200);
- EnablePlane(4);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第三層全亮
- delay(200);
- EnablePlane(8);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第四層全亮
- delay(200);
- EnablePlane(16);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第五層全亮
- delay(200);
- EnablePlane(32);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第六層全亮
- delay(200);
- EnablePlane(64);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第七層全亮
- delay(200);
- EnablePlane(128);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第八層全亮
- delay(200);
- //花樣2
- EnablePlane(255);
- EnableLed(0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01);//第1列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02);//第2列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04);//第3列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08);//第4列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10);//第5列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20);//第6列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40);//第7列全亮
- delay(200);
- EnablePlane(255);
- EnableLed(0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80);//第8列全亮
- delay(200);
- //花樣3
- EnablePlane(0xC0);
- EnableLed(0,0,0,0,0,0,0x03,0x03);//2階立方體
- delay(200);
- EnablePlane(0xE0);
- EnableLed(0,0,0,0,0,0x07,0x07,0x07);//3階立方體
- delay(200);
- EnablePlane(0xF0);
- EnableLed(0,0,0,0,0x0F,0x0F,0x0F,0x0F);//4階立方體
- delay(200);
- EnablePlane(0xF8);
- EnableLed(0,0,0,0x1F,0x1F,0x1F,0x1F,0x1F);//5階立方體
- delay(200);
- EnablePlane(0xFC);
- EnableLed(0,0,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F);//6階立方體
- delay(200);
- EnablePlane(0xFE);
- EnableLed(0,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F);//7階立方體
- delay(200);
- EnablePlane(0xFF);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8階立方體
- delay(200);
- //花樣4
- EnablePlane(0xC0);
- EnableLed(0xC0,0xC0,0,0,0,0,0,0);//2階立方體
- delay(200);
- EnablePlane(0xE0);
- EnableLed(0xE0,0xE0,0xE0,0,0,0,0,0);//3階立方體
- delay(200);
- EnablePlane(0xF0);
- EnableLed(0xF0,0xF0,0xF0,0xF0,0,0,0,0);//4階立方體
- delay(200);
- EnablePlane(0xF8);
- EnableLed(0xF8,0xF8,0xF8,0xF8,0xF8,0,0,0);//5階立方體
- delay(200);
- EnablePlane(0xFC);
- EnableLed(0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0,0);//6階立方體
- delay(200);
- EnablePlane(0xFE);
- EnableLed(0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0);//7階立方體
- delay(200);
- EnablePlane(0xFF);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8階立方體
- delay(200);
- //花樣5
- EnablePlane(0x18);
- EnableLed(0,0,0,0x18,0x18,0,0,0);//2階立方體
- delay(200);
- EnablePlane(0x3C);
- EnableLed(0,0,0x3C,0x3C,0x3C,0x3C,0,0);//4階立方體
- delay(200);
- EnablePlane(0x7E);
- EnableLed(0,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0);//6階立方體
- delay(200);
- EnablePlane(0xFF);
- EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8階立方體
- delay(200);
- //花樣6
- EnablePlane(0x7E);
- EnableLed(0,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0);//6階立方體
- delay(200);
- EnablePlane(0x3C);
- EnableLed(0,0,0x3C,0x3C,0x3C,0x3C,0,0);//4階立方體
- delay(200);
- EnablePlane(0x18);
- EnableLed(0,0,0,0x18,0x18,0,0,0);//2階立方體
- delay(200);
- EnablePlane(0);
- EnableLed(0,0,0,0,0,0,0,0);//全滅
- delay(200);
- //花樣7
- EnablePlane(0x81);
- EnableLed(0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF);
- delay(200);
- //花樣8
- EnablePlane(0xFF);
- EnableLed(0x81,0,0,0,0,0,0,0x81);
- delay(200);
- }
- void EnablePlane(byte a) //a為1個字節,8位的變量,想使能那層LED,對應的哪位為1
- {
- for(int j = 0; j < CUBESIZE; j++)
- {
- if((0x1 << j) & a)
- digitalWrite(PlanePin[j],HIGH);
- else
- digitalWrite(PlanePin[j],LOW);
- }
- }
- void EnableLed(unsigned int a, unsigned int b,unsigned int c,unsigned int d,unsigned int e,unsigned int f,unsigned int g,unsigned int h)
- {
- digitalWrite(latchPin,LOW); //將ST_CP口上面加低電平讓芯片準備好接收數據
- shiftOut(dataPin, clockPin, MSBFIRST, a); //U8 74HC595
- shiftOut(dataPin, clockPin, MSBFIRST, b); //U7
- shiftOut(dataPin, clockPin, MSBFIRST, c); //U6
- shiftOut(dataPin, clockPin, MSBFIRST, d); //U5
- shiftOut(dataPin, clockPin, MSBFIRST, e); //U4
- shiftOut(dataPin, clockPin, MSBFIRST, f); //U3
- shiftOut(dataPin, clockPin, MSBFIRST, g); //U2
- shiftOut(dataPin, clockPin, MSBFIRST, h); //U1
- digitalWrite(latchPin, HIGH); //串行輸入數據輸出到并口
- }
復制代碼
資料下載:
光立方資料.zip
(6.4 MB, 下載次數: 246)
2017-9-21 10:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|