Components and supplies
Resistor 330 ohm
Arduino UNO
LED (generic)
Tools and machines
Soldering iron (generic)
Apps and platforms
Arduino IDE
Project description
Code
Dicing Cube with Turn-On Animation
arduino
1// PROGRAMM: LED Wuerfel 2 3 4// Festlegen der Pins 5// Pin der ersten LED 6int PinErsteLED=2; 7 8// Pin des Tasters 9int PinTaster=9; 10 11// Festlegen der Wuerfelbilder: Reihenfolge 12// 1 2 13// 3 7 4 14// 5 6 15int wuerfelBild[8][7]= 16 {{0,0,0,0,0,0,0}, //0 = alle LED's aus 17 {0,0,0,0,0,0,1}, //1 18 {0,1,0,0,1,0,0}, //2 19 {1,0,0,0,0,1,1}, //3 20 {1,1,0,0,1,1,0}, //4 21 {1,1,0,0,1,1,1}, //5 22 {1,1,1,1,1,1,0}, //6 23 {1,1,1,1,1,1,1}}; //7 = alle LED's an 24 25int lauflichtmax=6; 26int lauflicht[6]={1,2,4,6,5,3}; 27 28 29void setup() { 30 31 // Ausgehend von dem ersten LED Pin werden alle Pins als Output definiert 32 for (int i=PinErsteLED;i<=PinErsteLED+6;++i) 33 pinMode(i,OUTPUT); 34 35 // Pin fuer den Schalter zur Steuerung des Zufallgenerators 36 pinMode(PinTaster,INPUT); 37} 38 39// Funktion zum Anzeigen der Ergebnisse 40void ZeigeZahl(int zahl) 41{ 42 // Fuer die vom Zufallsgenerator bergebene Nummer wird das passende Bild 43 // ausgelesen und die passenden LEDs eingeschaltet 44 for (int i=0;i<=6;++i) 45 digitalWrite(i+PinErsteLED,wuerfelBild[zahl][i]?HIGH:LOW); 46} 47 48void loop() { 49 //Variablen vereinbaren 50 int i,j,zufall; 51 52 ZeigeZahl(7); //Alle LED's einschalten 53 delay(1000); // Pause in Millisekunden 54 55 // Zufallszahlen anzeigen bis das erste Mal eine Taste gedrueckt wird 56 i=0; 57 do { 58 i=i+1; 59 if (i>6) {i=1;} 60 delay(500); 61 ZeigeZahl(i); //Zahl anzeigen 62 } while (digitalRead(PinTaster)==HIGH); //wiederholten, bis Taste gedrueckt wird 63 64 65 // Ab hier wird gewuerfelt, in Endlosschleife bis zum Ausschalten 66 do { 67 //Startzustand setzen 68 zufall=0; 69 i=0; 70 do { 71 zufall=zufall+1; //Zufallszahl hochzhlen 72 i=i+1; 73 if (i>=lauflichtmax) {i=0;} //Wenn i lauflichtmax ist, dann wieder auf 0 setzen, so ist i immer 0..6 74 delay(60); //Pause in Millisekunden 75 76 ZeigeZahl(0); 77 digitalWrite(PinErsteLED+lauflicht[i]-1,HIGH); 78 79 } while (digitalRead(PinTaster)==LOW); //Wiederholen bis Taster losgelassen wird 80 81 zufall=zufall%6; //Ergebnis ist Zahl von 0..5 82 ZeigeZahl(zufall+1); //Wrfelergebnis anzeigen 83 84 while (digitalRead(PinTaster)==HIGH) {}; //Warten bis naechste Taste gedrueckt wird 85 } while (1==1); //Undendlich Wiederholen, da 1 immer gleich 1 ist 86} 87
Dicing Cube with Turn-On Animation
arduino
1// PROGRAMM: LED Wuerfel 2 3 4// Festlegen der Pins 5// Pin der ersten LED 6int PinErsteLED=2; 7 8// Pin des Tasters 9int PinTaster=9; 10 11// Festlegen der Wuerfelbilder: Reihenfolge 12// 1 2 13// 3 7 4 14// 5 6 15int wuerfelBild[8][7]= 16 {{0,0,0,0,0,0,0}, //0 = alle LED's aus 17 {0,0,0,0,0,0,1}, //1 18 {0,1,0,0,1,0,0}, //2 19 {1,0,0,0,0,1,1}, //3 20 {1,1,0,0,1,1,0}, //4 21 {1,1,0,0,1,1,1}, //5 22 {1,1,1,1,1,1,0}, //6 23 {1,1,1,1,1,1,1}}; //7 = alle LED's an 24 25int lauflichtmax=6; 26int lauflicht[6]={1,2,4,6,5,3}; 27 28 29void setup() { 30 31 // Ausgehend von dem ersten LED Pin werden alle Pins als Output definiert 32 for (int i=PinErsteLED;i<=PinErsteLED+6;++i) 33 pinMode(i,OUTPUT); 34 35 // Pin fuer den Schalter zur Steuerung des Zufallgenerators 36 pinMode(PinTaster,INPUT); 37} 38 39// Funktion zum Anzeigen der Ergebnisse 40void ZeigeZahl(int zahl) 41{ 42 // Fuer die vom Zufallsgenerator bergebene Nummer wird das passende Bild 43 // ausgelesen und die passenden LEDs eingeschaltet 44 for (int i=0;i<=6;++i) 45 digitalWrite(i+PinErsteLED,wuerfelBild[zahl][i]?HIGH:LOW); 46} 47 48void loop() { 49 //Variablen vereinbaren 50 int i,j,zufall; 51 52 ZeigeZahl(7); //Alle LED's einschalten 53 delay(1000); // Pause in Millisekunden 54 55 // Zufallszahlen anzeigen bis das erste Mal eine Taste gedrueckt wird 56 i=0; 57 do { 58 i=i+1; 59 if (i>6) {i=1;} 60 delay(500); 61 ZeigeZahl(i); //Zahl anzeigen 62 } while (digitalRead(PinTaster)==HIGH); //wiederholten, bis Taste gedrueckt wird 63 64 65 // Ab hier wird gewuerfelt, in Endlosschleife bis zum Ausschalten 66 do { 67 //Startzustand setzen 68 zufall=0; 69 i=0; 70 do { 71 zufall=zufall+1; //Zufallszahl hochzhlen 72 i=i+1; 73 if (i>=lauflichtmax) {i=0;} //Wenn i lauflichtmax ist, dann wieder auf 0 setzen, so ist i immer 0..6 74 delay(60); //Pause in Millisekunden 75 76 ZeigeZahl(0); 77 digitalWrite(PinErsteLED+lauflicht[i]-1,HIGH); 78 79 } while (digitalRead(PinTaster)==LOW); //Wiederholen bis Taster losgelassen wird 80 81 zufall=zufall%6; //Ergebnis ist Zahl von 0..5 82 ZeigeZahl(zufall+1); //Wrfelergebnis anzeigen 83 84 while (digitalRead(PinTaster)==HIGH) {}; //Warten bis naechste Taste gedrueckt wird 85 } while (1==1); //Undendlich Wiederholen, da 1 immer gleich 1 ist 86} 87
Downloadable files
Schematics
Schematics of wiring the 7 LED's and the button.
Schematics
Comments
Only logged in users can leave comments
tangielsky
0 Followers
•0 Projects
Table of contents
Intro
7
0