Hallo,
ich hätte mal eine Frage zu einem kleinen Programm, dass ich geschrieben habe.
Vielleicht erst mal ein paar Infos zum Aufbau:
Am Arduino Uno hängen drei LEDs (Rot,Gelb,Grün) und zwei Taster (Taster A und B).
Wenn ich jetzt einen der beiden Taster betätige, leuchten die drei LEDs für ca. 10 Sekunden auf, und wenn ich nochmal einen der beiden Taster während dieser Zeit drücke, wird die Zeit resettet und die LEDs leuchten dann länger.
Soweit ist das alles so wie ich es wollte, aber ich scheitere jetzt daran, über einen weiteren Taster (TasterC) bzw. Schalter eine Dauerlichtfunktion zu bekommen.
Ich habe es schon mit if und while probiert und das funktioniert auch, nur funktionert der restliche Code dann nicht mehr so wie vorher.
Vielleicht kann sich mal jemand den Code ansehen und mir sagen, warum ich das nicht hinbekomme.
Schon mal vielen Dank für euere Hilfe.
int ledRot = 10;
int ledGelb = 11;
int ledGruen = 13;
int tasterAPin = 7; // Taster-A-Pin 7
int tasterBPin = 8; // Taster-B-Pin 8
int tasterCPin = 6; // Taster-C-Pin 6
int interval = 10000; // Intervallzeit (10 Sekunden)
unsigned long Zeit; // Zeit-Variable
void setup(){
pinMode(ledRot, OUTPUT);
pinMode(ledGelb, OUTPUT);
pinMode(ledGruen, OUTPUT);
pinMode(tasterAPin, INPUT);
pinMode(tasterBPin, INPUT);
pinMode(tasterCPin, INPUT);
Zeit = millis();
}
void loop()
//while (digitalRead(tasterCPin)== HIGH)
//{digitalWrite(ledRot, HIGH); // Rote LED auf High-Pegel (5V)
//digitalWrite(ledGelb, HIGH); // Gelbe LED auf High-Pegel (5V)
//digitalWrite(ledGruen, HIGH); // Grüne LED auf High-Pegel (5V)}
//if(digitalRead(tasterCPin)== LOW)
//digitalWrite(ledRot, LOW); // Rote LED auf Low-Pegel (5V)
//digitalWrite(ledGelb, LOW); // Gelbe LED auf High-Pegel (5V)
//digitalWrite(ledGruen, LOW); // Grüne LED auf High-Pegel (5V)}
{
if(digitalRead(tasterAPin)== HIGH)
{
Zeit = millis();
digitalWrite(ledRot, HIGH); // Rote LED auf High-Pegel (5V)
digitalWrite(ledGelb, HIGH); // Gelbe LED auf High-Pegel (5V)
digitalWrite(ledGruen, HIGH); // Grüne LED auf High-Pegel (5V)
Zeit = millis();
}
else if((millis() - Zeit) > interval)
{
digitalWrite(ledRot, LOW); // Rote LED auf Low-Pegel (5V)
digitalWrite(ledGelb, LOW); // Gelbe LED auf High-Pegel (5V)
digitalWrite(ledGruen, LOW); // Grüne LED auf High-Pegel (5V)
Zeit = millis();
}
if(digitalRead(tasterBPin)== HIGH){
digitalWrite(ledRot, HIGH); // Rote LED auf High-Pegel (5V)
digitalWrite(ledGelb, HIGH); // Gelbe LED auf High-Pegel (5V)
digitalWrite(ledGruen, HIGH); // Grüne LED auf High-Pegel (5V)
Zeit = millis();
}
else if((millis() - Zeit) > interval)
{
digitalWrite(ledRot, LOW); // Rote LED auf High-Pegel (5V)
digitalWrite(ledGelb, LOW); // Gelbe LED auf High-Pegel (5V)
digitalWrite(ledGruen, LOW); // Gelbe LED auf High-Pegel (5V)
Zeit = millis();
}
}