Hallo,
als Neuling in der ARDUINO-Programmierung versuche ich mich an einem
kleinen Projekt -und scheitere trotz zeitraubender Forum-Studie.
Ich bitte um fachkundige Hilfe ...
Habe das ganze Programm bis auf eine LED zu schalten abgespeckt - esgeht
um den Grundsatz.
Die Erklärung steht im Programm
/*
TEST
... für
wenn diese SchalterKombination, dann LED A
wenn diese SchalterKombination, dann LED B
ansonsten LED C
Der Aufbau:
* LED`s mit Pin`s und GND verbinden
* Die Taste an Pin 24 und +5V
10K Widerstand an Pin 24 und GND
Die Mehrfachverzweigung wird mit einer mehr oder weniger
komplizierten Schachtelung von if-Anweisungen realisiert.
So lautete eine Toturial-Beschreibung....
.....
if(Bedingung 1){
//Anweisungsteil für die Option 1
}
else {
if (Bedingung 2){
//Anweisungsteil für die Option 2
}
else {
if (Bedingung 3){
//Anweisungsteil für Option 3
}
else {
//Anweisungsteil für die Option 4
}
}
}
....
*/
const int ledA = 40; // LED/gn = Pin 40
const int ledB = 41; // LED/bl = Pin 41
const int ledC = 42; // LED/rt = Pin 42
const int Taste = 24; // Taste = Pin 24
const int Zeit1 = 32; // Dipp-Schalter 1 Minute = Pin 32
const int Zeit2 = 33; // Dipp-Schalter 2 Minute = Pin 33
const int Zeit4 = 34; // Dipp-Schalter 4 Minute = Pin 34
// Durch die Kombinationen der Schalter lassen sich Zeiten von
1-8 Minuten realisieren
// 8 Minuten = wenn alle Schalter LOW
int buttonState = 0; // variable for reading the pushbutton
status
void setup() {
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
pinMode(Taste, INPUT);
pinMode(Zeit1, INPUT);
pinMode(Zeit2, INPUT);
pinMode(Zeit4, INPUT);
}
void loop() {
if (digitalRead(Zeit1 == HIGH) && (Zeit2 == LOW) && (Zeit4 == LOW)); {
// Taster-Bedingung für 1 Minute
buttonState = digitalRead(Taste); // read the state of the
pushbutton value:
if (buttonState == HIGH) { // Prüfung, ob StartTaster gedrückt
wurde
digitalWrite(ledA, HIGH); // grüne LED wird eingeschaltet
delay(1500); // 1,5s warten
digitalWrite(ledA, LOW); // grüne LED wird ausgeschaltet
delay(300);
}
else { // wenn Taste NICHT betätigt wurde,
werden alle Ausgänge auf LOW geschaltet
digitalWrite(ledA, LOW);
}
else {
// wenn vorherige Bedingungen nicht erfüllt wurden, dann ...
if (digitalRead(Zeit1 == LOW) && (Zeit2 == HIGH) && (Zeit4 ==
LOW)) { // Taster-Bedingung für 2 Minute
buttonState = digitalRead(Taste); // read the state of the
pushbutton value:
if (buttonState == HIGH) { // Prüfung, ob StartTaster gedrückt
wurde
digitalWrite(ledB, HIGH); // blaue LED wird eingeschaltet
delay(1500); // wartet 1,5 s
digitalWrite(ledB, LOW); // blaue LED wird ausgeschaltet
delay(300);
}
else { // wenn Taste NICHT betätigt wurde,
werden alle Ausgänge auf LOW geschaltet
digitalWrite(ledB, LOW);
}
}
else {
// wenn vorherige Bedingungen nicht erfüllt wurden, dann ...
if (buttonState == HIGH) { // Prüfung, ob StartTaster gedrückt
wurde
digitalWrite(ledC, HIGH); // rote LED wird eingeschaltet
delay(1500); // 1,5s vor Ablauf warten
digitalWrite(ledC, LOW); // rote LED wird ausgeschaltet
delay(300);
}
else { // wenn Taste NICHT betätigt wurde,
werden alle Ausgänge auf LOW geschaltet
digitalWrite(ledC, LOW);
} // Ende für Zeile 88
}
}
}
} // Ende für Zeile 34 (void setupü)
Beim Kompillieren erhalte ich trotz diverser Versuche immer bei der
zweiten bzw. dritten else-Verzweigung den Fehler:
error: 'else' without a previous 'if'
Wer kann mir und meinem kleinen Scetch helfen ?
Möglich wäre dies ja auch mit switch - case. Hier scheitere ich aber an
der Definition der Variablen ...