/* Premre il pulsante per qualche attimo. Il relè rimarra acceso per 10 secondi */ # define TASTO1 7 # define LED1 8 int Stato1 = 0; void setup() { pinMode(LED1, OUTPUT); pinMode(TASTO1, INPUT);} void loop(){ Stato1 = digitalRead(TASTO1); if (Stato1 == HIGH) { digitalWrite(LED1, HIGH); delay(10000);} else {digitalWrite(LED1, LOW);} }
buongiorno
RispondiEliminaa me servirebbe con due pulsanti e due uscite indipendenti ho provato a modificare il suo sketch però alla fine mi da un errore.
Mi saprebbe dire dove ho sbagliato.
grazie in anticipo.
/* Premre il pulsante per qualche attimo.
Il relè rimarra acceso per 10 secondi */
# define TASTO1 2
# define TASTO2 3
# define LED1 8
# define LED2 7
int Stato1 = 0;
int Stato2 = 0;
void setup()
{ pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(TASTO1, INPUT);
pinMode(TASTO2, INPUT);}
void loop(){
Stato1 = digitalRead(TASTO1);
Stato2 = digitalRead(TASTO2);
if (Stato1 == HIGH);
{ digitalWrite(LED1, HIGH);
delay(3000);}
else {digitalWrite(LED1, LOW);}
if (Stato2 == HIGH);
{ digitalWrite(LED2, HIGH);
delay(3000);}
else {digitalWrite(LED2, LOW);}
Non può usare questo programma. Il comando delay non si dovrebbe usare mai perchè blocca tutto il processore. In pratica: quando il yP ricevel'istruzione delay(3000) esso si "spegne" completamente non eseguendo nessun altra operazione.
RispondiEliminahttps://arduinomicro.blogspot.it/2014/12/pausa.html
RispondiEliminaDeve lavorare sullo sketch PAUSA, fa lo stesso lavoro ma senza "spegnere" il yp.
http://arduinomicro.blogspot.it/2014/11/temporizzatore-ad-impulso_24.html
RispondiEliminaQuesto fa lo stesso lavoro senza usare l'istruzione delay.
# define BUTTON1 2
RispondiElimina# define LED1 8
int buttonState1 = 0;
unsigned long iMillis1 = 0;
byte acceso1 = LOW;
int TempoON1 = 3000;
# define BUTTON2 3
# define LED2 9
int buttonState2 = 0;
unsigned long iMillis2 = 0;
byte acceso2 = LOW;
int TempoON2 = 6000;
void setup()
{ pinMode(LED1, OUTPUT);
pinMode(BUTTON1, INPUT);
pinMode(LED2, OUTPUT);
pinMode(BUTTON2, INPUT); }
void loop() {
/* TEMPORIZZATORE
Alla pressione di BUTTON1
LED1 si accende per
spegnersi dopo TempoON
*/
int buttonState1 = digitalRead(BUTTON1);
if ( buttonState1 == HIGH && acceso1 == LOW)
{ digitalWrite(LED1, HIGH);
acceso1 = HIGH;
iMillis1 = millis(); }
if ( acceso1 == HIGH && (millis()-iMillis1)> TempoON1)
{ digitalWrite(LED1, LOW);
acceso1 = LOW; }
/* TEMPORIZZATORE
Alla pressione di BUTTON2
LED2 si accende per
spegnersi dopo TempoON2
*/
int buttonState2 = digitalRead(BUTTON2);
if ( buttonState2 == HIGH && acceso2 == LOW)
{ digitalWrite(LED2, HIGH);
acceso2 = HIGH;
iMillis2 = millis(); }
if ( acceso2 == HIGH && (millis()-iMillis2)> TempoON2)
{ digitalWrite(LED2, LOW);
acceso2 = LOW; }
}//-------------Fine LOOP-------------
//provi questo
Ciao
RispondiEliminaCome posso fare per impostare un orario di accensione e spegnimento impostabile da menu?