Wiki Info
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT Control
Da 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

Andare in basso

arduino - Terminare un lampeggio on/off al click del pulsante con Arduino Empty Terminare un lampeggio on/off al click del pulsante con Arduino

Messaggio Da Guido Laferrari Dom Giu 12, 2016 4:50 pm

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.

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
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

arduino - Terminare un lampeggio on/off al click del pulsante con Arduino Empty Re: Terminare un lampeggio on/off al click del pulsante con Arduino

Messaggio Da Admin Dom Giu 12, 2016 6:58 pm

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. Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 26

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

arduino - Terminare un lampeggio on/off al click del pulsante con Arduino Empty Re: Terminare un lampeggio on/off al click del pulsante con Arduino

Messaggio Da Guido Laferrari Lun Giu 13, 2016 5:52 pm

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 Laferrari
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Torna in alto Andare in basso

arduino - Terminare un lampeggio on/off al click del pulsante con Arduino Empty Re: Terminare un lampeggio on/off al click del pulsante con Arduino

Messaggio Da Admin Lun Giu 13, 2016 6:59 pm

Potresti provare ad aggiungere prima di ciascun delay la lettura del pulsante, anche se è una soluzione un po' "bizzarra". Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 26

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

arduino - Terminare un lampeggio on/off al click del pulsante con Arduino Empty Re: Terminare un lampeggio on/off al click del pulsante con Arduino

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.