la mia necessità e di far aprire il relè alla pressione del interruttore per 2 secondi.
#define Relay 10 // LED collegato al pin digitale 10
#define BUTTON 11 // pin di input dove è collegato il pulsante
int count=0;
void setup() {
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
pinMode(Relay, OUTPUT); //imposta il pin digitale RELè
Serial.begin(9600);
}
void loop() {
delay(100);
// controlla che l'input sia HIGH (pulsante premuto)
if (digitalRead(BUTTON) == HIGH) {
Serial.print(" tasto premuto apro rele - contatore : ");
count=count+1;
Serial.println(count);
digitalWrite(Relay, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay, LOW); //Turn on relay
}
else {
digitalWrite(Relay, LOW); //spegne il led
Serial.println(" tasto non premuto");
}
}
il mio quesito è se dovessi aggiungere un secondo interruttore con un secondo relè il funzionamento è indipendente ? nel senso seguendo il codice quando attivo il pulsante 1 e quindi il relè le istruzioni vengono sospese per 2 secondi e le istruzioni riguardanti il secondo interruttore sono sospese.. in definitiva non sono indipendenti o sbaglio?
Ciao, edita il tuo post mettendo il codice nell'apposito tag code (</>) che poi arriva un amministratore e ti cazzia
Per rispondere alla tua domanda, si se usi il delay blocchi tutto e quindi non puoi "sentire" la pressione dell'altro pulante ecc., devi usare millis()
Ciatando svariati post sul forum...
... per studiarti come si usa la millis(), guarda prima QUI, poi QUI ed infine leggi anche QUI e QUI ... vedrai che ti sarà tutto più chiaro
Grazie mille per la risposta ho analizzato diverse guide adesso ho la certezza.. è possibile evitare questo problema ? quindi utilizzare l'apertura di due relè in modo distinto ? la mia necessità è premo tasto avvio motore per due secondi. premo tasto 2 avvio motore 2 per due secondi. i 2 modori possono trovarsi a lavorare contemporaneamente.
grazie ancora è che dal cellulare non leggevo tutta la risposta.. grazie mille ora so come fare in pratica controllo il contatore millis in base all intervallo se nell intervallo apro contatto altrimenti chiudo.. giusto ? essendo in loop si ripete ciclicamente quindi tombola.. grazie l'automazione non supererà x giorni limite ma per sicurezza attraverso le guide che mi avete fornito imposto l'eccezione.. giusto o ho scritto una cavolata ?