Brauche HILFE

Erstmals HALLO an alle.

Bräuchte dringend hilfe bei einen Sketch (er ist nicht von mir). Des weiteren ist dies eines meiner ersten Projekte mit einen Arduino.
Ich bekomme beim überprüfen und Kompilieren die fehlermeldung:

sketch_jan16d:46: error: ‘do_befehl1’ was not declared in this scope

do_befehl1=false;

^

sketch_jan16d:47: error: ‘checksummeok’ was not declared in this scope

checksummeok = false;

^

sketch_jan16d:74: error: ‘do_befehl3’ was not declared in this scope

do_befehl3=false;

^

sketch_jan16d:75: error: ‘checksummeok’ was not declared in this scope

checksummeok=false;

^

sketch_jan16d:76: error: ‘send_off’ was not declared in this scope

send_off=true;

^

exit status 1
‘do_befehl1’ was not declared in this scope

Was ist hier der Fehler und wie behebt man ihn.
Danke schonmal für alle hilfreichen Antworten.

Sketch:

const int zuendung_relay = 4; //Zündungs-Relay-PIN
const int starten_relay = 5; //Start-Relay-PIN
const int led_pwm = 6; //Taster-LED per PWM
int count = 0;
int scount = 0;
const int taster = 7;
boolean zuendung = false; //TRUE=EIN / FALSE=AUS
boolean starten = false; //TRUE=Startet gerade / FALSE=wurde gestartet oder ist aus
boolean gestartet = false; //TRUE=Motor läuft / FALSE=MOTOR AUS
boolean ladespannung = false; //TRRUE=größergleich 13,5V / FALSE=unter 13,5V
boolean halten = false; //
boolean countreset = false;
boolean startprozess = false;
#include <elapsedMillis.h>
elapsedMillis tasterdruck = 0;
elapsedMillis startwait = 0;
elapsedMillis serialsend = 0;
elapsedMillis blinker_standby = 0;
elapsedMillis fader_starten = 0;
elapsedMillis warten_befehl = 0;
void setup() {
pinMode(zuendung_relay, OUTPUT);
pinMode(starten_relay, OUTPUT);

pinMode(taster, INPUT_PULLUP); //WICHTIG
Serial.begin(9600);
}
void loop() {
//Taster-halten-Zeit messen
if (digitalRead(taster)==LOW && halten==false) {
tasterdruck=0;
halten = true;
} 
//Taster-halten zurücksetzen
if (digitalRead(taster)==HIGH && halten==true && tasterdruck > 10) { //&& tasterdruck < 500  halten = false;  tasterdruck=0;  count = count + 1;  }    //Zähler Zurücksetzen & Schieben  if (tasterdruck > 2000) { //zeit seit letzten tasterdruck > 2s
if (count!=0) { //wenn da ist eine zahl...
scount = count; //schieben & nullen
}
count = 0; //sonst 0 bleiben 
} 
//Zündung
if ((scount==1 && zuendung==false)/* || (do_befehl1==true && zuendung==false)*/ ) {
zuendung = true;
Serial.println("Zuendung AN");
scount=0;
do_befehl1=false;
checksummeok = false;
}
//Zündung und Start
if (scount==2 && zuendung == false) {
zuendung = true;
startwait = 0;
startprozess = true;
scount=0;
Serial.println("Zuendung AN");
}
if (scount==2 && zuendung == true) {
startwait = 0;
startprozess = true;
scount=0;
Serial.println("Zuendung AN");
}
if (startwait > 1000 && startprozess < 2000 && startprozess == true) {  starten = true;  Serial.println("Starten AN");  }  if (startwait > 2000 && startprozess == true) {
startprozess = false;
starten = false;
Serial.println("Starten AUS");
}
//Ausschalten
if ((scount==3 && zuendung == true) /*|| (do_befehl3==true && zuendung == true)*/) {
zuendung = false;
Serial.println("Zuendung AUS");
scount=0;
analogWrite(led_pwm, 0);
do_befehl3=false;
checksummeok=false;
send_off=true;
} 
/* RELAY-BEREICH */
//Zündungs-Relay-Einschalten
if (zuendung==true) {
digitalWrite(zuendung_relay, LOW);
}
//Zündungs-Relay-Ausschalten
if (zuendung==false) {
digitalWrite(zuendung_relay, HIGH);
}
//Start-Relay-Einschalten
if (starten==true) {
digitalWrite(starten_relay, LOW);
}
//Start-Relay-Ausschaten
if (starten==false) {
digitalWrite(starten_relay, HIGH);
} 
/* DIAGNOSE-BEREICH */
if (serialsend > 1000) {
Serial.print(count);Serial.print(" ");Serial.println(scount);
serialsend = 0;
}
/* LED-BEREICH */
if (blinker_standby > 9800 && blinker_standby < 10000 && zuendung == false) {  analogWrite(led_pwm, 10);  }  if (blinker_standby > 10000 && zuendung == false) {
analogWrite(led_pwm, 0);
blinker_standby = 0;
}
if (zuendung == true && starten == false) {
analogWrite(led_pwm, 255);
}
if (starten == true) {
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { 
analogWrite(led_pwm, fadeValue); 
delay(10); 
}
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=10) { 
analogWrite(led_pwm, fadeValue); 
delay(10); 
} 
}
}

Wenn das noch nicht alle deine Fragen beantwortet, sollte dir bewusst sein, dass du geheim hältst,
was  <elapsedMillis.h>  genau ist.

Bei mir ( IDE 1.8.3 ) bleibt jedenfalls noch

fatal error: elapsedMillis.h: No such file or directory

übrig.

Außerdem sind die Einrückungen verbesserungsfähig, um das ganze lesbar zu machen.

Was von diesem auskommentierten Teil zu halten ist, würde ich auch gern jemand fragen.

if (digitalRead(taster)==HIGH && halten==true && tasterdruck > 10) { //&& tasterdruck < 500  halten = false;  tasterdruck=0;  count = count + 1;  }    //Zähler Zurücksetzen & Schieben  if (tasterdruck > 2000) { //zeit seit letzten tasterdruck > 2s

Ein // macht alles bis zum Zeilenende zum Kommentar. Damit werden evtl. fehlende (verloren gegangene) Zeilentrenner extrem wichtig !

(er ist nicht von mir)

Für uns schon. Sorry.

Danke schonmal für alle hilfreichen Antworten.

Mal sehen ob wir gleicher Meinung sind, was eine hilfreiche Antwort ist. :wink:

P.S. Das Thema dieses Topics widerspricht allen Regeln, ist aber genaugenommen Super

Hallo,

die fehlende Lib ist mir auch unbekannt. Ich empfehle die Latte von if Abfrage durch switch case zu ersetzen, dann bekommste eine saubere Ablaufsteuerung wo jeder besser durchblickt.

Hallo,

aha, damit möchte jemand die Benutzung von millis verstecken. Ich würde es nicht verstecken. Ansonsten gute Idee.