Hashtag più usati
1 | #include |
2 | #drone |
3 | #eurotrucksimulator2 |
4 | #dlcitalia |
5 | #ets2 |
6 | #arduino |
7 | #xiaomi |
8 | #aukey |
9 | #farmingsimulator |
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT ControlDa Admin Mar Mag 10, 2022 12:55 pm
» Robot aspirapolvere per Alexa: Dreame D9
Da Admin Mar Feb 09, 2021 9:42 am
» Come costruire un robot smart con Arduino
Da Admin Mar Nov 17, 2020 12:15 pm
» TOPPS Trading Cards Match Attax Champsion League/Europa League 2020/21
Da Admin Mar Nov 10, 2020 3:21 pm
» Guida per utilizzare Arduino BT Control v1.2
Da Admin Gio Lug 09, 2020 12:01 pm
» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm
» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am
» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am
» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm
I postatori più attivi del mese
Nessun utente |
Terminare un lampeggio on/off al click del pulsante con Arduino
2 partecipanti
Pagina 1 di 1
Terminare un lampeggio on/off al click del pulsante con Arduino
Ciao a tutti,
sono ancora qui,il progetto che vorrei sottoporvi è semplice ma non riesco a venirne a capo. Si tratta di questo: all'accensione il led blu si accende,premo il pulsante una prima volta il led si spegne e un led verde inizia a lampeggiare e fino a qui tutto bene ma quando premo il pulsante una seconda volta vorrei che il lampeggio terminasse e che si accendesse il led blu,purtroppo questo non accade. Scusate per questo sketch banale ma sono all'inizio. Vi ringrazio anticipatamente.
sono ancora qui,il progetto che vorrei sottoporvi è semplice ma non riesco a venirne a capo. Si tratta di questo: all'accensione il led blu si accende,premo il pulsante una prima volta il led si spegne e un led verde inizia a lampeggiare e fino a qui tutto bene ma quando premo il pulsante una seconda volta vorrei che il lampeggio terminasse e che si accendesse il led blu,purtroppo questo non accade. Scusate per questo sketch banale ma sono all'inizio. Vi ringrazio anticipatamente.
- Codice:
int semaforo_verde = 2; // led verde collegato al pin digitale 2
int semaforo_blu = 3; // led blu collegato al pin digitale 3
int puls = 4; // pulsante collegato al pin digitale 4
int val =0; // si userà val per conservare lo stato del pin di input
int stato =0; // ricorda lo stato in cui si trova il led, stato = 0 led spento, stato = 1 led acceso
void setup() {
pinMode(semaforo_verde,OUTPUT); // imposta pin 2 come outpu
pinMode(semaforo_blu,OUTPUT); // imposta pin 3 come outpu
pinMode(puls,INPUT); // imposta il pin 5 come input
}
void loop() {
val=digitalRead(puls); // legge il valore dell'input e lo conserva nella variabile VAL
if (val==1) { // controlla che l'input sia HIGH (pulsante premuto)
stato = 1 - stato; // variazione variabile stato
delay(30); // attendere che questi rimbalzi spuri si concludano
}
if (stato == 1) {
digitalWrite(semaforo_blu,LOW); // spengo semaforo blu
digitalWrite(semaforo_verde,HIGH); // accendo semaforo verde
delay(1000); // attesa
digitalWrite(semaforo_verde,LOW); // spengo semaforo verde
delay(1000); // attesa
}
else {
digitalWrite(semaforo_blu,HIGH); // accendo semaforo blu
digitalWrite(semaforo_verde,LOW); // spengo semaforo verde
}
}
Guido Laferrari- Livello due
- Messaggi : 34
Crediti : 54
Reputazione : 2
Data d'iscrizione : 30.04.16
Re: Terminare un lampeggio on/off al click del pulsante con Arduino
Ciao Guido,
Cliccando nuovamente il pulsante non ti cambia perché deve prima eseguire il blocco di istruzioni.
Una volta che ha finito il blocco di istruzioni di un determinato IF, successivamente fa un controllo per vedere se il pulsante sia premuto o meno. Questo accade perché con i delay blocchi praticamente l'Arduino e quindi non può fare altre operazioni come controllare se il pulsante è premuto o meno.
Per risolvere, potresti utilizzare Millis ma è piuttosto complicato comprenderlo per chi inizia con Arduino. Un consiglio che ti posso dare è quello di premere il pulsante quando sai che il blocco di istruzione sta per finire o quando appunto giunge al termine.
Una volta che ha finito il blocco di istruzioni di un determinato IF, successivamente fa un controllo per vedere se il pulsante sia premuto o meno. Questo accade perché con i delay blocchi praticamente l'Arduino e quindi non può fare altre operazioni come controllare se il pulsante è premuto o meno.
Per risolvere, potresti utilizzare Millis ma è piuttosto complicato comprenderlo per chi inizia con Arduino. Un consiglio che ti posso dare è quello di premere il pulsante quando sai che il blocco di istruzione sta per finire o quando appunto giunge al termine.
Re: Terminare un lampeggio on/off al click del pulsante con Arduino
Ciao, innanzitutto ti ringrazio per la correzione del titolo così è più appropriato, ho letto la tua risposta e quindi mi dici che con i delay che ho inserito , blocco Arduino e di conseguenza non posso fare altre operazioni come controllare lo stato del pulsante. Domanda : ma al termine dell’ultimo delay non si può non si può scrivere “ un qualcosa ” che permette poi di leggere lo stato del pulsante ? Magari è una stupidata , ma è quello che mi è venuto in mente. Ti ringrazio anticipatamente.
Guido
Guido
Guido Laferrari- Livello due
- Messaggi : 34
Crediti : 54
Reputazione : 2
Data d'iscrizione : 30.04.16
Re: Terminare un lampeggio on/off al click del pulsante con Arduino
Potresti provare ad aggiungere prima di ciascun delay la lettura del pulsante, anche se è una soluzione un po' "bizzarra".
Argomenti simili
» Guida & Codice - Tutorial Arduino Base #3: Lampeggio LED
» Codice - Tutorial Arduino Base #5: Lampeggio alternato di due LED
» Codice - Tutorial Arduino Base #7: Il pulsante
» Codice - Tutorial Arduino Base #9 Accendere une LED con pulsante
» Come creare due semafori azionati da un pulsante (circuito e codice) con Arduino
» Codice - Tutorial Arduino Base #5: Lampeggio alternato di due LED
» Codice - Tutorial Arduino Base #7: Il pulsante
» Codice - Tutorial Arduino Base #9 Accendere une LED con pulsante
» Come creare due semafori azionati da un pulsante (circuito e codice) con Arduino
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.