Arduino Tutorial: How to Make a LED Cube
hello, In this tutorial you will learn to make LED Cube using arduino board based on atmega chip. is cheap and simple to use.
To make this prototype I am using:
To make this prototype I am using:
download |
Geekcreit® 375pcs 3MM 5MM LED Light Emitting Diode Beads Resistance Lights Kits Bulb Lamp
5Pcs DIP28 ATmega328P-PU MCU IC Chip With Arduino UNO Bootloader |
Code
Code
int Anode[4]={A5,A4,A3,A2}; //led Anodes int Led[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,A0,A1}; //led rows void setup() { for(int i = 0; i<16; i++) { pinMode(Led[i], OUTPUT); //setting rows to ouput } for(int i = 0; i<4; i++) { pinMode(Anode[i], OUTPUT); //setting Anodes to output } } void loop() { allOff(); EdgeDown(); flicker(); EdgeDown1(); flicker(); turnhor(); turnver(); turnverr(); } //turn all off void allOff() { allledOff(); allanodeOff(); } void turnver() { for(int y = 0; y<6; y++) { for(int i = 0; i<4; i++) { digitalWrite(Anode[i], 1); turnallledOn(); turnallledOff(); digitalWrite(Anode[i], 0); } } } void turnverr() { allanodeOff(); allledOn(); for(int y = 0; y<6; y++) { turnallanodeOn(); turnallanodeOff; } } void turnhor() { allanodeOn(); for(int y = 0; y<5; y++) { turnallledOn(); turnallledOff(); } } void EdgeDown() { allanodeOn(); for(int x = 600; x != 0; x -=50) { allledOff(); digitalWrite(Led[0], 0); digitalWrite(Led[1], 0); digitalWrite(Led[2], 0); digitalWrite(Led[3], 0); delay(x); digitalWrite(Led[0], 1); digitalWrite(Led[1], 1); digitalWrite(Led[2], 1); digitalWrite(Led[3], 1); digitalWrite(Led[4], 0); digitalWrite(Led[13], 0); digitalWrite(Led[12], 0); digitalWrite(Led[11], 0); delay(x); digitalWrite(Led[4], 1); digitalWrite(Led[13], 1); digitalWrite(Led[12], 1); digitalWrite(Led[11], 1); digitalWrite(Led[10], 0); digitalWrite(Led[15], 0); digitalWrite(Led[14], 0); digitalWrite(Led[5], 0); delay(x); digitalWrite(Led[10], 1); digitalWrite(Led[15], 1); digitalWrite(Led[14], 1); digitalWrite(Led[5], 1); digitalWrite(Led[6], 0); digitalWrite(Led[7], 0); digitalWrite(Led[8], 0); digitalWrite(Led[9], 0); delay(x); } } void EdgeDown1() { allanodeOn(); for(int x = 600; x != 0; x -=50) { allledOff(); digitalWrite(Led[0], 0); digitalWrite(Led[11], 0); digitalWrite(Led[10], 0); digitalWrite(Led[9], 0); delay(x); digitalWrite(Led[0], 1); digitalWrite(Led[11], 1); digitalWrite(Led[10], 1); digitalWrite(Led[9], 1); digitalWrite(Led[1], 0); digitalWrite(Led[12], 0); digitalWrite(Led[15], 0); digitalWrite(Led[8], 0); delay(x); digitalWrite(Led[1], 1); digitalWrite(Led[12], 1); digitalWrite(Led[15], 1); digitalWrite(Led[8], 1); digitalWrite(Led[2], 0); digitalWrite(Led[13], 0); digitalWrite(Led[14], 0); digitalWrite(Led[7], 0); delay(x); digitalWrite(Led[2], 1); digitalWrite(Led[13], 1); digitalWrite(Led[14], 1); digitalWrite(Led[7], 1); digitalWrite(Led[3], 0); digitalWrite(Led[4], 0); digitalWrite(Led[5], 0); digitalWrite(Led[6], 0); delay(x); } } //flicker off void flicker() { allanodeOn(); for(int i = 0; i< 150; i+=5) { allledOff(); delay(i+50); allledOn(); delay(i); } } void allledOn() { for(int j = 0; j<16; j++) { digitalWrite(Led[j], 0); } } void allledOff() { for(int j = 0; j<16; j++) { digitalWrite(Led[j], 1); } } void turnallledOn() { for(int j = 0; j<12; j++) { digitalWrite(Led[j], 0); delay(15); } } void turnallledOff() { for(int j = 0; j<12; j++) { digitalWrite(Led[j], 1); delay(25); } } void allanodeOn() { for(int j = 0; j<4; j++) { digitalWrite(Anode[j], 1); } } void allanodeOff() { for(int j = 0; j<4; j++) { digitalWrite(Anode[j], 0); } } void turnallanodeOff() { for(int j = 0; j<4; j++) { digitalWrite(Anode[j], 0); delay(10); } } void turnallanodeOn() { for(int j = 0; j<4; j++) { digitalWrite(Anode[j], 1); delay(10); } }