mittlerweile sieht es so aus. was mich schon einiges weiter gebracht hat.
allerdings muss ich den LEDs jetzt noch erklären das die nach einer bestimmten zeit (ZEIT--) auch direkt wieder ausgehen sollen und die Schleife nach dieser zeit weiterlaufen soll...
##include "pitches.h" // TOENE
//EIN UND AUSGAENGE FESTLEGEN
const int BL1 = 0;
const int BL2 = 1;
const int BL3 = 2;
const int BL4 = 3;
const int AL1 = 5;
const int AL2 = 6;
const int AL3 = 7;
const int AL4 = 8;
const int ROT1 = 10;
const int GELB2 = 11;
const int GRUEN3 = 12;
const int BLAU4 = 13;
//NOTENDAUER
int achtel = 1000/8;
int viertel = 1000/4;
// ARDUINO SETUP
void setup(){
//BL = BLINK LED ZUFALL
pinMode (BL1, OUTPUT);
pinMode (BL2, OUTPUT);
pinMode (BL3, OUTPUT);
pinMode (BL4, OUTPUT);
//AL = ANZEIGE LED PUNKTE
pinMode (AL1, OUTPUT);
pinMode (AL2, OUTPUT);
pinMode (AL3, OUTPUT);
pinMode (AL4, OUTPUT);
//TASTER IN DEN FARBEN
pinMode (ROT1, INPUT);
pinMode (GELB2, INPUT);
pinMode (GRUEN3, INPUT);
pinMode (BLAU4, INPUT);
randomSeed(analogRead(0)); //ZUFALLSZAHL GENERIEREN
// LAUFLICHT
digitalWrite(AL1, HIGH);
delay(110);
digitalWrite(AL1, LOW);
digitalWrite(AL2, HIGH);
delay(110);
digitalWrite(AL2, LOW);
digitalWrite(AL3, HIGH);
delay(110);
digitalWrite(AL3, LOW);
digitalWrite(AL4, HIGH);
delay(110);
digitalWrite(AL4, LOW);
digitalWrite(AL3, HIGH);
delay(110);
digitalWrite(AL3, LOW);
digitalWrite(AL2, HIGH);
delay(110);
digitalWrite(AL2, LOW);
digitalWrite(BL1, HIGH);
delay(110);
digitalWrite(BL1, LOW);
digitalWrite(BL1, HIGH);
delay(110);
digitalWrite(BL1, LOW);
digitalWrite(BL2, HIGH);
delay(110);
digitalWrite(BL2, LOW);
digitalWrite(BL3, HIGH);
delay(110);
digitalWrite(BL3, LOW);
digitalWrite(BL4, HIGH);
delay(110);
digitalWrite(BL4, LOW);
digitalWrite(BL3, HIGH);
delay(110);
digitalWrite(BL3, LOW);
digitalWrite(BL2, HIGH);
delay(110);
digitalWrite(BL2, LOW);
digitalWrite(BL1, HIGH);
delay(110);
digitalWrite(BL1, LOW);
delay(1500); //BEREITMACHEN UND START
}
// VAR INIT
int PUNKTE = 1;
int ZEIT;
int ZUFALL;
//TASTERZUSTAENDE AUF FALSE SETZEN
boolean ROT1STATE = false;
boolean GELB2STATE = false;
boolean GRUEN3STATE = false;
boolean BLAU4STATE = false;
// EIGENTLICHES PROGRAMM
void loop()
{
ZUFALL = random(1, 5); //ZUFALLSZAHL ZUFALL
if (ZUFALL == 1) {
digitalWrite (BL1, HIGH);
tone(9,NOTE_A3,500);
}
if (ZUFALL == 2){
digitalWrite (BL2, HIGH);
tone(9,NOTE_B3,500);
}
if (ZUFALL == 3) {
digitalWrite (BL3, HIGH);
tone(9,NOTE_C3,500);
}
if (ZUFALL == 4) {
digitalWrite (BL4, HIGH);
tone(9,NOTE_D3,500);
}
ZEIT = 1000;
while (ZEIT > 0) //SCHLEIFE WAEHREND LED LEUTCHTET
{
buttonReader(); //TASTERSTELLUNGEN ABFRAGEN
if (ZUFALL==1)
{
if (ROT1STATE==true) {PUNKTE++; break;}
if (GELB2STATE==true) {FALSCH(); break;}
if (GRUEN3STATE==true) {FALSCH(); break;}
if (BLAU4STATE==true) {FALSCH(); break;}
}
if (ZUFALL==2)
{
if (ROT1STATE==true) {FALSCH(); break;}
if (GELB2STATE==true) {PUNKTE++; break;}
if (GRUEN3STATE==true) {FALSCH(); break;}
if (BLAU4STATE==true) {FALSCH(); break;}
}
if (ZUFALL==3)
{
if (ROT1STATE==true) {FALSCH(); break;}
if (GELB2STATE==true) {FALSCH(); break;}
if (GRUEN3STATE==true){PUNKTE++; break;}
if (BLAU4STATE==true) {FALSCH(); break;}
}
if (ZUFALL==4)
{
if (ROT1STATE==true) {FALSCH(); break;}
if (GELB2STATE==true) {FALSCH(); break;}
if (GRUEN3STATE==true) {FALSCH(); break;}
if (BLAU4STATE==true) {PUNKTE++; break;}
}
delay(1);
}
digitalWrite(BL1, LOW);
digitalWrite(BL2, LOW);
digitalWrite(BL3, LOW);
digitalWrite(BL4, LOW);
delay(150); //PRELLSCHUTZ
//_________________________________________________________________________________________________________
while (ZEIT > 1) // WARTESCHLEIFE BIS LED WIEDER LEUCHTEN DARF
{
buttonReader(); //TASTERABFRAGE
delay(1);
ZEIT--;
}
//_________________________________________________________________________________________________________
// SETZE EIN FÜR AL 1-4 (PUNKTE 10-40)
if (PUNKTE == 10) {digitalWrite(AL1, HIGH);}
if (PUNKTE == 20) {digitalWrite(AL2, HIGH);}
if (PUNKTE == 30) {digitalWrite(AL3, HIGH);}
if (PUNKTE == 40) {digitalWrite(AL4, HIGH);}
}
// ABBRUCH // FALSCHER TASTENDRUCK // FALSCHE TASTE
void FALSCH()
{
tone(9, NOTE_C4, viertel); delay(viertel*1.30);
tone(9, NOTE_G3, achtel); delay(achtel*1.30);
tone(9, NOTE_G3, achtel); delay(achtel*1.30);
tone(9, NOTE_A3, viertel); delay(viertel*1.30);
tone(9, NOTE_G3, viertel); delay(viertel*1.30);
noTone(9); delay(viertel*1.30);
tone(9, NOTE_B3, viertel); delay(viertel*1.30);
tone(9, NOTE_C4, viertel);delay(viertel*1.30);
//LAUFLICHT
digitalWrite(AL1, HIGH);
delay(200);
digitalWrite(AL1, LOW);
digitalWrite(AL2, HIGH);
delay(200);
digitalWrite(AL2, LOW);
digitalWrite(AL3, HIGH);
delay(200);
digitalWrite(AL3, LOW);
digitalWrite(AL4, HIGH);
delay(200);
digitalWrite(AL4, LOW);
digitalWrite(AL3, HIGH);
delay(200);
digitalWrite(AL3, LOW);
digitalWrite(AL2, HIGH);
delay(200);
digitalWrite(AL2, LOW);
digitalWrite(AL1, HIGH);
delay(200);
digitalWrite(AL4, LOW);
//RESET DRUECKEN BITTE.
digitalWrite(AL1, HIGH);
digitalWrite(AL4, HIGH);
delay(1500000);
}
// FUNKTION BUTTONREADER (AUSGABE STATUS TASTER)
void buttonReader()
{
ROT1STATE = digitalRead(ROT1);
GELB2STATE = digitalRead(GELB2);
GRUEN3STATE = digitalRead(GRUEN3);
BLAU4STATE = digitalRead(BLAU4);
}