Hallo,
ich habe mit dem Arduino einen Würfel gemacht:
Es hat 7 LEDs (Das sind die Würfelpunkte) und
einen roten Knopf.
Ich will das wenn ich auf den Knopf drücke, eine Zufallszahl zwischen 1 und 6 generiert wird und sie mir dann mithilfe der LEDs anzeigt.
Soweit so gut, aber wenn ich mit diesem Code (den ich selber geschrieben habe)
auf den Knopf drücke flackern die LED's auf und es wird entweder eine 2 oder eine 4 angezeigt.
Warum?
Freue mich auf Antworten.
MFG
Alex-Digital
ich habe mit dem Arduino einen Würfel gemacht:
Es hat 7 LEDs (Das sind die Würfelpunkte) und
einen roten Knopf.
Ich will das wenn ich auf den Knopf drücke, eine Zufallszahl zwischen 1 und 6 generiert wird und sie mir dann mithilfe der LEDs anzeigt.
Soweit so gut, aber wenn ich mit diesem Code (den ich selber geschrieben habe)
C-Quellcode
- // Deklaration der Pins
- const int led1 = 13;
- const int led2 = 12;
- const int led3 = 11;
- const int led4 = 10;
- const int led5 = 9;
- const int led6 = 8;
- const int led7 = 7;
- const int button = 6;
- // Deklarationen
- int buttonState = 0;
- int number;
- //-------------------------------------------------------------
- // void ledclear()
- // Void zum Ausschalten aller LEDs
- void ledclear()
- {
- digitalWrite(led1,LOW);
- digitalWrite(led2,LOW);
- digitalWrite(led3,LOW);
- digitalWrite(led4,LOW);
- digitalWrite(led5,LOW);
- digitalWrite(led6,LOW);
- digitalWrite(led7,LOW);
- }
- //------------------------------------------------------------
- // void shownumber()
- // Void zum Anzeigen der Würfelzahl
- void shownumber(int zahl)
- {
- if(zahl == 1) // Wenn Zahl ist 1 ...
- {
- ledclear();
- digitalWrite(led7,HIGH);
- }
- if(zahl == 2) // Wenn Zahl ist 2 ...
- {
- ledclear();
- digitalWrite(led3,HIGH);
- digitalWrite(led4,HIGH);
- }
- if(zahl == 3) // Wenn Zahl ist 3 ...
- {
- ledclear();
- digitalWrite(led3,HIGH);
- digitalWrite(led4,HIGH);
- digitalWrite(led7,HIGH);
- }
- if(zahl == 4) // Wenn Zahl ist 4 ...
- {
- ledclear();
- digitalWrite(led1,HIGH);
- digitalWrite(led3,HIGH);
- digitalWrite(led4,HIGH);
- digitalWrite(led6,HIGH);
- }
- if(zahl == 5) // Wenn Zahl ist 5 ...
- {
- ledclear();
- digitalWrite(led1,HIGH);
- digitalWrite(led3,HIGH);
- digitalWrite(led4,HIGH);
- digitalWrite(led6,HIGH);
- digitalWrite(led7,HIGH);
- }
- if(zahl == 6) // Wenn Zahl ist 6 ...
- {
- ledclear();
- digitalWrite(led1,HIGH);
- digitalWrite(led2,HIGH);
- digitalWrite(led3,HIGH);
- digitalWrite(led4,HIGH);
- digitalWrite(led5,HIGH);
- digitalWrite(led6,HIGH);
- }
- }
- //--------------------------------------------------------------------------------
- void setup() // Die Void wird nur einmal ausgeführt
- { // Anfang der void setup()
- pinMode(led1,OUTPUT);
- pinMode(led2,OUTPUT);
- pinMode(led3,OUTPUT);
- pinMode(led4,OUTPUT);
- pinMode(led5,OUTPUT);
- pinMode(led6,OUTPUT);
- pinMode(led7,OUTPUT);
- pinMode(button,INPUT);
- //--------------------------
- shownumber(1);
- delay(1000);
- shownumber(2);
- delay(1000);
- shownumber(3);
- delay(1000);
- shownumber(4);
- delay(1000);
- shownumber(5);
- delay(1000);
- shownumber(6);
- delay(2000);
- ledclear();
- //--------------------------
- } // Ende der void setup()
- // void loop() ist eine Schleife, die nach der void setup() ausgeführt wird.
- void loop()
- { // Anfang der void loop()
- while(true)
- {
- buttonState = digitalRead(button);
- if(buttonState == HIGH)
- {
- break;
- }
- }
- number = random(1,7);
- shownumber(number);
- } // Ende der void loop()
- // ENDE des Programms Wuerfel
auf den Knopf drücke flackern die LED's auf und es wird entweder eine 2 oder eine 4 angezeigt.
Warum?
Freue mich auf Antworten.
MFG
Alex-Digital