Und ich habe hier noch meine HP, inder ich noch viele Probleme und deren Lösung erkläre.
Franz

Forum zur gegenseitigen Hilfe für Hobby´s, Spass und Technik, im Raum Penzberg, Garmisch, Bad Tölz, Seeshaupt
Code: Alles auswählen
const byte led01 = 13;
const byte Taster01 = 11; // Pin 11 wird Constant als Taster01 bezeichnet
byte Tasterstatus01 = 0; // Zum Abfragen des Tatsenpins
byte Tastenmerker01 = 0; // Zum Merken des aktuellen Tatsenstatus
unsigned long Sekundenablauf01 = 0; // Zeit wenn Taster gedrückt 5000ms
unsigned long Pausezeit01 = 5000;
byte funktion01 = 0;
unsigned long Sekundenablauf02 = 0; // leuchtzeit led01 300ms aussetzen
unsigned long Pausezeit02 = 1000;
byte funktion02 = 0;
unsigned long Sekundenablauf03 = 0; // Serialprint Ausgabe auf 3000ms aussetzen
unsigned long Pausezeit03 = 100;
byte funktion03 = 0;
int startzeit = 0;
int endzeit = 0;
void setup() {
pinMode(led01, OUTPUT);
pinMode(Taster01, INPUT_PULLUP);
}
void loop() {
startzeit = micros();
// Block 01 >>>>>>>>>>>>>>>
// Ist Taste gedrückt?------------------------------------------------------------------------
if (millis() - Sekundenablauf01 >= Pausezeit01)
{
Tasterstatus01 = digitalRead(Taster01); // Pin von Taster01 abfragen
if (Tasterstatus01 == LOW)
{
funktion01 = 1;
Sekundenablauf01 = millis(); // Der 5000ms Timer01 wird gestartet
digitalWrite (led01, funktion01);
}
else {
funktion01 = 0;
}
}
// Block 01 Ende <<<<<<<<<<<<
// Wenn die Taste gedrückt wurde, bleibt die LED 5 Sekunden an, -------------------------------
// weil die nächsten Blocks 2+3 5Sek. lang übersprungen werden -------------------------------
if (funktion01 == 0)
{ // Taste wurde gedrückt
// Block 02 >>>>>>>>>>>>>>
// Alle 1000ms LED13 an / aus--------------------------------------------------------------
if (millis() - Sekundenablauf02 >= Pausezeit02)
{
funktion02 = !funktion02;
digitalWrite (led01, funktion02);
Sekundenablauf02 = millis(); // Der 1000ms Time02 wird gestartet
}
// Block 02 Ende <<<<<<<<<<<<
// Block 03 >>>>>>>>>>>>>>>>>
// Wenn LED13 für 1000ms aus ist, dann LED13 im 100ms Tackt an / aus----------------------
if ((millis() - Sekundenablauf03 >= Pausezeit03) && (funktion02 == 0))
{
funktion03 = !funktion03;
digitalWrite (led01, funktion03);
Sekundenablauf03 = millis(); // Der 100ms Time03 wird gestartet
}
// Block 03 Ende <<<<<<<<<<<<
} // Tastensteuerung Ende
endzeit = micros();
Serial.println(endzeit-startzeit);
}
// Loop Ende ----------------------------------------------------------------------------------
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast