Guten Abend
ich habe eine frage ist es möglich mit Arduino
wenn ich über einen switch über eine taste
in meinen fall Taster1 auf Zb. case1: binn
einen Zeit laufen lassen unter 10000ms soll
er auf LOW bleiben danach auf HIGH und nach
30000ms wieder auf LOW Gehen und sol danach
da auch bleiben und wen ich mit der taste auf case2:
wiederzurückkomme soll das ganze wiede passieren
danke ich habe einen kleinen exsperiment gemacht
mi diesem sketch unten haber wen ich auf case1: binn
nach 10000ms geht er auf LOW
#include <Arduino.h>
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#define S1 41
#define S2 42
int Taster1=0 ;
int Pulsante2=0 ;
int counterP1=0;
int counterP2=0;
unsigned long Timer1 = 0;
unsigned long Timer2 = 0;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
Serial.begin(9600);
Serial.read();
pinMode (Pulsante1,INPUT);
pinMode (Pulsante2,INPUT);
}
void funzione_scambio()
{
Taster1=digitalRead (S1);
if (Taster1 ==HIGH)
{
counterP1++;
if( counterP1>2)
counterP1 = 0;
}
switch (counterP1)
{
case 0:
lcd.begin(16, 2);
lcd.print (" case 0");
break;
case 1:
lcd.begin(16, 2);
lcd.print (" case 1");
if (Timer1 == 0) { // timer1 non attivo
Timer1 = millis(); // parte ritardo accensione
break; // esci
}
if (Timer2 == 0) { // timer2 non attivo
if (millis() - Timer1 > 10000) { // ritardo accensione scaduto
Serial.println("HIGH");
// digitalWrite(pin, HIGH);
}
Timer2 = millis();
// accensione LED
}
else { // timer2 attivo
if (millis() - Timer2 > 30000) { // spegnimento LED
Serial.println("LOW");
//digitalWrite(pin, LOW);
Timer1 = 0;
Timer2 = 0;
}
}
break;
case 2:
lcd.begin(16, 2);
lcd.print (" case 2");
break;
}
}
void loop()
{
funzione_scambio();
}