28
(http://www.mauroalfieri.it) Arduino, led e pulsante By Mauro Alfieri (http://www.mauroalfieri.it/author/mauro) in Elettronica (http://www.mauroalfieri.it/category/elettronica), Robotica e Domotica (http://www.mauroalfieri.it/category/robotica-domotica) 9 marzo 2012 Danilo, un appassionato arduino come te, mi ha scritto in questi giorni per sottopormi il suo progetto ed ha trovato numerosi spunti nel blog per realizzarlo. Ad un tratto mi ha scritto: “… Vorrei aggiungerci appunto un interuttore,per i led ...” (http://www.mauroalfieri.it/wp- content/uploads/2012/03/led_pulsante.png) Puoi leggere la nostra conversazione come commento all’articolo Tutotorial Arduino e i servo II (http://www.mauroalfieri.it/elettronica/tutotorial-arduino-servo-2.html) in cui Danilo ha postato il suo sketch. E’ probabilmente un problema in cui ti sei trovato anche tu, sembra il più banale dei casi di esempio eppure nasconde qualche insidia. L’idea di Danilo è di accendere uno o più led con un pulsante e lasciarli accessi fino alla successiva pressione dello stesso pulsante. Lo sketch che può aiutarti a farlo è più o meno il seguente:

Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Embed Size (px)

Citation preview

Page 1: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

(http://www.mauroalfieri.it)

Arduino, led e pulsanteBy Mauro Alfieri (http://www.mauroalfieri.it/author/mauro) in Elettronica(http://www.mauroalfieri.it/category/elettronica), Robotica e Domotica(http://www.mauroalfieri.it/category/robotica-domotica)9 marzo 2012

Danilo, un appassionato arduino come te, mi ha scritto in questi giorni per sottopormi il suoprogetto ed ha trovato numerosi spunti nel blog per realizzarlo. Ad un tratto mi ha scritto: “… Vorreiaggiungerci appunto un interuttore,per i led ...”

(http://www.mauroalfieri.it/wp-

content/uploads/2012/03/led_pulsante.png)

Puoi leggere la nostra conversazione come commento all’articolo Tutotorial Arduino e i servo II(http://www.mauroalfieri.it/elettronica/tutotorial-arduino-servo-2.html) in cui Danilo ha postato il suosketch.

E’ probabilmente un problema in cui ti sei trovato anche tu, sembra il più banale dei casi diesempio eppure nasconde qualche insidia.

L’idea di Danilo è di accendere uno o più led con un pulsante e lasciarli accessi fino allasuccessiva pressione dello stesso pulsante.

Lo sketch che può aiutarti a farlo è più o meno il seguente:

Page 2: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Ecco come funziona:

inizia dalle linee 10-12: in cui definisci tre variabili, la prima pinLed indica a quale pin vuoicollegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda bottoneindica a quale pin colleghi il bottone o pulsante e l’ultima statoLed è la variabile più importante,quella in cui memorizzerai lo stato del led e che cambierà ad ogni pressione del pulsante (LOWspento, HIGH acceso);

linee 15-16: definisci la modalità di funzionamento dei pin pinLed e bottone il primo in OUTPUTperchè deve comandare il led, il secondo in INPUT perchè deve leggere il valore inviato dalpulsante;

linea 20: leggi il valore del pulsante con la funzione digitalRead() e memorizza questainformazione in una variabile definita integer: leggiBottone mi sembra parlante

linea 22: definisci un controllo sul valore della variabile leggiBottone, nel tipo di collegamentomostrato nella figura in alto il pulsante assume valore 0 a riposo e 1 quando premuto, se colleghidifferentemente il pulsante dovrai cambiare questa condizione;

linea 24: verifica il valore della variabile di stato: statoLed, allo start questa variabile vale LOWcome definito alla linea 12, per cui se sei a questo punto dello sketch vuol dire che hai premuto ilpulsante ( leggiBottone == 1) ed il led è spento (statoLed == LOW);

linea 27: cambia lo stato del led da LOW, in cui sei in questo momento, a HIGH che ti permette diaccendere il led;

010203040506070809101112131415161718192021222324252627282930313233343536373839

/* * Sketch Led e bottone * * @author: Alfieri Mauro * @see: http://www.mauroalfieri.it * * @licenze: Creative common */ int pinLed=13;int bottone=2;int statoLed=LOW; void setup() { pinMode(pinLed, OUTPUT); pinMode(bottone, INPUT);} void loop() { int leggiBottone=digitalRead(bottone); if (leggiBottone == 1) { if (statoLed == LOW) { statoLed=HIGH; digitalWrite(pinLed, statoLed); delay(1000); } else { statoLed=LOW; digitalWrite(pinLed, statoLed); delay(1000); } }}

Page 3: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

linea 28: usa la funzione digitalWrite(pin,mode) dove pin è il valore del pin a cui è collegato il led emode è lo statoLed, in questo momento impostato a HIGH;

linea 29: attendi un tempo di 1000 millisecondi = 1 secondo, più o meno è il tempo dei tuoi riflessi,è il tempo che impieghi a premere e rilasciare il pulsante senza dover fare toccata e fuga,premendolo e rilasciandolo come faresti con un comune interruttore, diciamo che rende più umanolo sketch;

linea 31: definisci la funzione di else, ossia quello che accade se alla pressione del pulsanteverificata alla linea 22, lo stato del led non è LOW come si aspetta la linea 24; in pratica lacondizione in cui ti trovi adesso, hai premuto e rilasciato il pulsante ed il led è acceso, l’else ticonsente di poterlo spegnere con una nuova pressione del pulsante;

linee 33-35: sono come la sequenza 27-29 con la differenza che in questa condizione ti trovi solose il led è acceso ed hai premuto nuovamente il pulsante, quindi vuoi spegnerlo per cui impostistatoLed a LOW;

Lo sketch è abbastanza semplice se ti è chiaro il concetto di stato, e quindi di variazione di statoutilizzato per comandare il led, se qualcosa non ti è chiara scrivimo commentando questo articolo.

Buon divertimento.

Cortesemente, prima di inserire i commenti leggi il regolamento(http://www.mauroalfieri.it/regolamento.html)

You may also like:

Ricetta pesto dibasilico bimby -Mauro Alfieri CucinaAppunti CIbo(http://www.mauroalfiepesto-di-basilico-bimby.html)

Sensore PIR: primoprogetto e test -Mauro AlfieriElettronica(http://www.mauroalfiepir-primo-progetto-e-test.html)

ESP8266 arduinocomandi AT MauroAlfieri ElettronicaDomotica(http://www.mauroalfiearduino-comandi-at.html)

Tinkercad LCD FirstTest(http://www.mauroalfielcd-first-test.html)

Halloween Pumpkin3D - Mauro AlfieriElettronica DomoticaRobotica Elettronica(http://www.mauroalfiepumpkin-3d.html)

Halloween Pumpkin- Mauro AlfieriElettronica DomoticaRobotica Elettronica(http://www.mauroalfiepumpkin.html)

The Tactigon arduinoide(http://www.mauroalfietactigon-arduino-ide.html)

Formaggio fatto incasa - Mauro AlfieriElettronica DomoticaRobotica Cucina(http://www.mauroalfiefatto-in-casa.html)

Page 4: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Permanent link to this article: http://www.mauroalfieri.it/elettronica/arduino-led-pulsante.html

91 comments

Skip to comment form

(http://www.mauroalfieri.it/author/mauro)

Mauro Alfieri (mailto:[email protected])

danilog on 10 marzo 2012

grazie! lo sketch è molto chiaro,soprattutto grazie alla tua particolare spiegazione.Hoimparato una nuova cosa

Mauro Alfieri (http://www.mauroalfieri.it) on 11 marzo 2012 Author

Sono contento, diciamo che è un articolo dedicato alla tua esigenza, ma chetornerà utile a tanti appassionati. Quando lo avrai finito mi invii delle foto del tuo progetto, così le condividiamo contutti gli amici del blog.

Mauro

danilog on 10 marzo 2012

una domanda..per aggiungere più led basta inserirli come variabili Int e nel setup. il restorimane invariato?

Mauro Alfieri (http://www.mauroalfieri.it) on 11 marzo 2012 Author

Puoi aggiungere più led in 3 modi: 1. collegandoli in serie o parallelo, scegli tu in funzione del tipo di led e dellacorrente da erofìgare, ed usare un solo pin di arduino come in questo sketch;

Page 5: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

2.1 collegare ciascun led ad una uscita e quindi definire pinLedA, pinLedB,pinLedC … poi inizializarli nel setup con pinMode, ed infine scrivere tante voltedigitalWrite quanti sono i led; 2.2 versine elegante della precedente definite int pinLed[] = {2,3,4,5,…} e quindidei cicli for sia per inizializzarli che per accenderli, trovi degli spunti nei mieiarticoli “Giochi di luce” scritti in occasione del natale.

Mauro

mauro on 6 giugno 2012

e per accendere e spegnere due led separatamente con due pulsanti??

Mauro Alfieri (http://www.mauroalfieri.it) on 6 giugno 2012 Author

Hai provato a cercare nel Blog? ci sono tanti esempi, se proprio non ne trovinessuno che fa al caso tuo, scrivimi bene cosa vuoi realizzare e ti aiuto.

Mauro

mauro on 6 giugno 2012

in teoria è semplice! poichè devo soltanto accendere e spegnere due led con duepulsanti…che devono funzionare separatamente..un pulsante che controlla un led..e l’altropulsante che controlla l’altro led..ma quando compilo il programma non so perchè mi da unerrore…e non riesco a correggerlo

Mauro Alfieri (http://www.mauroalfieri.it) on 6 giugno 2012 Author

Mi posti lo sketch che stai utilizzando?

Mauro

mauro on 6 giugno 2012

sto tentando di modificare l’esempio presente nel compilatore di arduino chiamato ”button”per adattarlo a due pulsanti..

Page 6: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Mauro Alfieri (http://www.mauroalfieri.it) on 7 giugno 2012 Author

Nel Blog ci sono tanti articoli che possono essere adattati al tuo caso, adesempio: http://www.mauroalfieri.it/elettronica/tutorial-shield-domotica.html(http://www.mauroalfieri.it/elettronica/tutorial-shield-domotica.html) Puoi omettere di utilizare la shield relè e collegare direttamente i pulsanti alleentrate 2-7 e i led alle uscite 8-13 con delle resistenze, la 13 ha già una suaresistenza di base. In questo tutorial i led e i pulsanti sono 6 ma puoi usarne anche solo 1,2,3,4 o 5.

Dimmi se fa al caso tuo.

Mauro

mauro on 7 giugno 2012

siii Questo funziona benissimoo! grazie! e se invece volessi spegnere dei led???utilizzando allo stesso modo un pulsante per led???

Mauro Alfieri (http://www.mauroalfieri.it) on 7 giugno 2012 Author

Devi sono cambiare il valore del secondo parametro della funzione digitalWrite daHIGH a LOW ad ogni pressione del pulsante.

Mauro

mauro on 7 giugno 2012

si lo soo! però nn riesco a farlo! perchè usando come esempio quello che mi hai detto ilprogramma funziona! però nn riesco a modificarlo per far spegnere dei led già accesi…

Mauro Alfieri (http://www.mauroalfieri.it) on 8 giugno 2012 Author

Ciao, prova a leggere questo tutorial http://www.mauroalfieri.it/elettronica/tutorial-accendere-3-led-con-3-pulsanti.html(http://www.mauroalfieri.it/elettronica/tutorial-accendere-3-led-con-3-pulsanti.html)

Forse fa al caso tuo.

Page 7: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Mauro

mauro on 8 giugno 2012

siiii questo va benissimooo finalmente funziona correttamente! grazie mille!!

mauro on 11 giugno 2012

ciaooo scusami se ti disturbo ancora… ma volevo chiederti un altra cosa…se volessiusare arduino con uno schermo lcd e un sensore di temperatura, per misurarla evisualizzarla sullo schermo…quindi con la libreria “liquidcrystal” caricata…posso usare gliingressi liberi per un altro programma totalmente diverso?? e se si come devo scriverlo?? di seguito, in un altra scheda oppure contemporaneamenteall’altro programma??

Matteo on 13 aprile 2013

Ciao. Ho un piccolo robot che si attiva alla pressione di un pulsante. Vorrei spegnerlo premendo di nuovo il pulsante ma non ci riesco. Come devo fare? Grazie.

Mauro Alfieri (http://www.mauroalfieri.it) on 15 aprile 2013 Author

Ciao Matteo, devi usare una variabile di stato, di solito boolean, cheti dica se il robot é accesoo spento. La pessione del pulsante fa variare lo stato di questa variabile ed il robot si attivao si spegne in funzione di questo stato.

Leggi gli articoli del corso arduino on-line per capire come fare.

Mauro

alberto on 13 maggio 2013

ciao, ho un piccolo problema con il mio programma, il mio intento è quello di accendere espegnere un led con un pulsante, il problema è che non tutte le volte che premo il pulsanteil led si spegne o si accende, alcune volte il led rimane nel suo stato, hai qualche

Page 8: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

soluzione?? ti allego il mio programma ps questo programma accende e spegne 4 led con 4 pulsanti

// Led 1-2-3-4 on-off tramite Pulsante 1-2-3-4 //by Alberto Zotta-Tommaso Lo Verde-Andrea Basilico #define LED_1 13 #define LED_2 12 #define LED_3 11 #define LED_4 10// LED collegato al pin digitale 13 #define BUTTON_1 7 #define BUTTON_2 6 #define BUTTON_3 5 #define BUTTON_4 4 // pin di input dove è collegato il pulsante int val1 = 0; int val2 = 0; int val3 = 0; int val4 = 0;// si userà val per conservare lo stato di pin di input int stato = 0; // ricorda lo stato in cui si trova il led, stato = 0 led spento, stato = 1 ledacceso int in1 = 0; int in2 = 0; int mela = 0; void setup() { pinMode(LED_1, OUTPUT); pinMode(LED_2, OUTPUT); pinMode(LED_3, OUTPUT); pinMode(LED_4, OUTPUT);// imposta il pin digitale come output pinMode(BUTTON_1, INPUT); pinMode(BUTTON_2, INPUT); pinMode(BUTTON_3, INPUT); pinMode(BUTTON_4, INPUT);// imposta il pin digitale come input }

void loop() { val1 = digitalRead(BUTTON_1); val2 = digitalRead(BUTTON_2); val3 = digitalRead(BUTTON_3); val4 = digitalRead(BUTTON_4);//legge il valore dell’imput e lo conserva

// controlla che l’input sia HIGH (pulsante premuto) // e cambia lo stato del led if (val1== HIGH) { stato = 1 – stato; }

if (stato == 1) { digitalWrite(LED_1, HIGH); // accende il led } else {

Page 9: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

digitalWrite(LED_1, LOW); // spegne il led } if (val2== HIGH) { in1 = 1 – in1; }

if (in1 == 1) { digitalWrite(LED_2, HIGH); // accende il led } else { digitalWrite(LED_2, LOW); // spegne il led } if (val3== HIGH) { in2 = 1 – in2; }

if (in2 == 1) { digitalWrite(LED_3, HIGH); // accende il led } else { digitalWrite(LED_3, LOW); // spegne il led } if (val4== HIGH) { mela = 1 – mela; }

if (mela == 1) { digitalWrite(LED_4, HIGH); // accende il led } else { digitalWrite(LED_4, LOW); // spegne il led } }

Mauro Alfieri (http://www.mauroalfieri.it) on 14 maggio 2013 Author

Ciao Alberto, ad occhio ti manca un delay() sulla pressione del tasto, serve ad evitare che lamedesima pressione sia interpretata come spengo-accendo-spengo-accendo-ecc.

Io di solito negli sketch uso 200 o più dipende da che reazione vuoi che abbia iltuo tasto.

Mauro

alberto on 14 maggio 2013

Page 10: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

grazie io voglio simulare l’accensione di un led con un pulsante, comese questo avvenga tramite un interruttore, ok quindi provo con un delay 200 grazie

Mauro Alfieri (http://www.mauroalfieri.it) on 15 maggio2013

Author

Ciao Alberto, ciò che vuoi ottenere é:

premo-lascio = accendo premo-lascio = spengo premo-lascio = accendo premo-lascio = spengo

giusto? Io metterei un delay 200 come minimo dopo l’assegnazionedello stato On od Off

Mauro

Beppe on 14 settembre 2013

Ciao Mauro, seguo spesso le tue lezioni/spiegazioni, per me molto importanti, perche novizio in questocampo.

Io vorrei poter controllare un motore di una finestra privo di fine corsa, per un certo periododi tempo fino alla sua completa apertura, dovrei poterlo comandare con due pulsanti unoapre e uno chiude, ma non posso sbagliare pulsante, nel senso: il motore comanda unafinestra che se e chiusa e io per sbaglio premo di nuovo il pulsante di chiusura, il motorenon deve girare, e viceversa in apertura.

Quello che mi viene in mente e di usare un controllo sull’ultimo pulsante premuto esalvarlo in una variabile.

Ma non so come fare.

Ho scritto uno schecth semplice (teorico) manca la parte del controllo stato pulsante.

// Azionare un motore per un tempo stabilito // alla pressione di un pulsante per ogni senso di marcia

#define BUTTON1 5 #define BUTTON2 7 #define APRE 8 #define CHIUDE 10

Page 11: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

int durata = 20000; //millisecondi int val1 = 0; int val2 = 0;

// void setup() { // pinMode(APRE, OUTPUT); pinMode(CHIUDE, OUTPUT); pinMode(BUTTON1, INPUT); pinMode(BUTTON2, INPUT); }

// void loop() { val1 = digitalRead(BUTTON1); // Controlla lo stato del primo pulsante if (val1 == HIGH) // Se legge che e stato premuto { delay(10); // Antirimbalzo digitalWrite(APRE, HIGH); // Aziona il motore in apertura delay(durata); // Dopo un tempo impostato digitalWrite(APRE, LOW); // Ferma il motore

val2 = digitalRead(BUTTON2); // Controlla lo stato del secondo pulsante if (val2 == HIGH) // Se legge che e stato premuto { delay(10); // Antirimbalzo digitalWrite(CHIUDE, HIGH); // Aziona il motore in chiusura delay(durata); // Dopo un tempo impostato digitalWrite(CHIUDE, LOW); // Ferma il motore

} } }

Mauro Alfieri (http://www.mauroalfieri.it) on 17 settembre 2013 Author

Ciao Beppe, Innanzitutto ti chiedo di osservare, in futuro, l’invito presente in fondo ai mieiarticoli: non incollare sketch perché io li ricevo inconsultabili.

I finecorsa o altro tipo di sensore sono fondamentali in questo tipo di progetto inquanto se per errore Arduino esegue un reset tra la chiusura ed il successivocomando di apertura rischi di distruggere o il motore o la finestra.

Mauro

Page 12: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Beppe on 5 ottobre 2013

Ciao Mauro. Grazie per aver risposto, e scusami per non aver letto di non incollare gli schetch qui.

La tua risposta mi ha fatto piacere e nello stesso tempo mi ha messo un bel po di dubbisull’affidabilita di Arduino, pensavo si potessero inserire delle sicurezze a livello software.

Tipo dichiarando alcune variabili sullo stato dell’ultimo pulsante che e stato premuto, emodificando la variabile subito dopo la variazione di stato. E anche vero che se si resettasse per cause inaspettate azzererebbe le variabili allo statoiniziale non sapendo piu se e chiusa o aperta. Ho scritto uno schetch , se tu potessi dargli un occhiata per vedere se almeno ho capitoqualcosa. Io l’ho provato e funziona , ma non ho tenuto conto dei reset improvvisi.

La finestra in questione ha un motore bidirezionale provvisto solo di frizione , con uncomando a uomo presente a due pulsanti, pulsante premuto finche non chiude o apre. Pensavo di automatizzarla con Arduino, poi leggendo altri tuoi tutorial mi è venuto inmente di aggiungere un rtc in modo che si potesse aprire e chiudere da sola ad unadeterminata ora.

Grazie per la pazienza. Ciao Beppe

Mauro Alfieri (http://www.mauroalfieri.it) on 5 ottobre 2013 Author

Ciao Beppe, se hai provato lo sketch e funziona puoi iniziare una fase di test che tengaacceso arduino per qualche giorno e verificare di tanto in tanto il suofunzionamento per assicurarti che non ci siano bug in cui potresti incorrere.

Mi piace l’idea dell’RTC se hai degli orari fissi a cui far eseguire l’operazione diapertura e chiusura.

Mauro

Pino on 15 febbraio 2014

Ciao Mauro, sto provando ad riadattare il tuo codice a quello che vorrei fare io, in prativa vorrei memorizzare il valore nSpeed = 500 presente in una funzione, e nella funzione Read cambiarlo in nSpeed = 20 solo se si verifica la condizione bJoy == true, quando bJoy == true diventa false nSpeed deve tornare a 500. Solo che non funziona.. Dopo il cambiamento di stato rimane sempre a 20.

Page 13: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Hai qualche idea?? Grazie in anticipo, ciao Pino

[codice rimosso dal sistema automatico]

Mauro Alfieri (http://www.mauroalfieri.it) on 15 febbraio 2014 Author

Ciao Pino, il codice è stato rimosso da un sistema automatico, perchè come avrai letto nonpuoi incollare del codice nei commenti, è scritto negli avvisi in fondo ad ogniarticolo.

Per il problema con le variabili ti consiglio di controllare bene che esistano lecondizioni di if ed else posizionate nel punto corretto del tuo sketch e vedrai chefunzionerà.

Mauro

Luca on 19 febbraio 2014

Ciao Mauro, vorrei sapere se hai mai pensato a questa alternativa:

Se nell’arco di 2 secondi il bottone viene premuto 1 volta, fai questo. Se nell’arco di 2 secondi il bottone viene premuto 2 volte, fai quest’altro. Se nell’arco di 2 secondi il bottone viene premuto 3 volte, fai quest’altro ancora. …

È un comportamento che ho visto fare a casa di un amico che ha implementato ladomotica con il sistema homeplc e mi è sembrato veramente interessante: lui premendouna volta l’interruttore della cucina accende/spegne la luce_cucina, se preme lo stessointerruttore due volte accende/spegne la luce_cucina e spegne/accende la luce_corridoio.

Ovviamente i suoi interruttori sono in realtà pulsanti che vanno sulle porte IN degli slavedel sistema homeplc.

Sono “nuovo” in Arduino quindi non riesco ad immaginare ancora il codice.

Per evitare quello che mi sembra si chiami effetto bouncing, il delay di 0,2 secondi ho vistoche funziona direi perfettamente per un bottone “human-pressed”.

Grazie, Luca

Mauro Alfieri (http://www.mauroalfieri.it) on 19 febbraio 2014 Author

Page 14: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Ciao Luca, suggerimento interessante. Comprendi che di evoluzioni possibili a ciascuno dei miei progetti ce ne sonotante e non riesco a presentarle tutte. Lo scopo del Blog è condividere conoscenza ed esperienze per cui se realizziquesta evoluzione e vorrai condividerla io sono a disposizione.

Mauro

Luca on 26 febbraio 2014

Buongiorno Mauro.

Ho fatto una prova con un Serial write invece di un bottone fisicocollegato a un pin di entrata, sembra che mi riconosca bene i due o piùeventi nei 2 secondi.

Condividerei con piacere ma se non posso fare l’attach di codice, mi èun po’ scomodo scrivere tutto a parole.

Un saluto, Luca

Mauro Alfieri (http://www.mauroalfieri.it) on 26 febbraio2014

Author

Ciao Luca, sono contento che tu ci sia riuscito. Non serve condividere il codice, anche se apprezzo la tuadisponibilità, quando avrai terminato il tuo progetto apportandotutte le modifiche e le innovazioni rispetto allo sketchpresentato se vorrai potrai scrivere un articolo in cui lo raccontie spieghi il codice da condividere ed io sarò lieto di pubblicarlo.

Mauro

Edoardo on 6 marzo 2014

Ciao Mauro. Sono uno studente quattordicenne appassionato di elettronica. Tempo fa ho acquistatouna scheda Arduino UNO R3. Sto lavorando ad un piccolo progetto, una specie di “lanciamissili”. Prima di assemblarlo lo ho testato “in piccolo” sulla breadboard, ed ho riscontratoun problema. Praticamente quando viene premuto un pulsante collegato al pin 13, un ledverde sul pin 10 comincia a lampeggiare. Successivamente, alla pressione del pulsante

Page 15: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

collegato al pin 12, un led rosso su 11 si dovrebbe accendere fisso, ma questo nonaccade. Non è un problema del led, lo ho testato a parte e funziona. Vorrei capire dove hosbagliato, perché penso di aver scritto male lo sketch, forse ho utilizzato male gli operatoribooleani “&&”.

Sketch: http://pastebin.com/stsEXpJm (http://pastebin.com/stsEXpJm) Foto breadboard: http://i57.tinypic.com/10epnd5.jpg (http://i57.tinypic.com/10epnd5.jpg) Foto progetto: http://it.tinypic.com/r/mrb5uu/8 (http://it.tinypic.com/r/mrb5uu/8) (scusa lo scotch sui led ma non ho il saldatore )

Spero tu mi possa aiutare a correggere lo sketch. Grazie mille, Edoardo

Mauro Alfieri (http://www.mauroalfieri.it) on 7 marzo 2014 Author

Ciao Edoardo, apprezzo il tuo impegno e la tua voglia di realizzare progetti con arduino. Ti anticipo che non correggo gli sketch fatti da altri e sopratutto non riesco aleggere uno sketch e capirne il significato senza ricostruire tutto il progetto ecapirai che con centinaia di richieste al giorno non posso riprodurre tutti i progetti.

Se hai il dubbio che il problema siano gli operatori booleani cambiali, non esistesolo il && ma anche altri, li trovi nella reference arduino.

Io penso che dovresti prestare attenzione a dove verifichi se il primo led sia inlampeggio e dove testi il secondo pulsante.

bita on 16 maggio 2014

ciao….sono bita….ti volevo una domanda…..? io cerco un programma solo per accendere led con veri tempi….con sensore pir? se potresti rami la risposta precisa ti ringrazzio…….

Mauro Alfieri (http://www.mauroalfieri.it) on 17 maggio 2014 Author

Ciao Bita, non ho capito la domanda Cerca nel blog ci sono molti esempi per accendere led con giochi di luce etemporizzazioni ed anche un articolo dedicato al sensore pir.

Daniele on 27 giugno 2014

Page 16: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Ciao!! Prima di tutto, COMPLIMENTI per il fantastico blog…per me il migliore in rete comechiarezza nelle spiegazioni!! Premessa che sono un neofita e quindi mi sto documentando e sto facendo piccoliprogrammi per imparare. Volevo chiederti: se io volessi realizzare la stessa logica del circuito sopra ma, invece che,quando premo il pulsante si accende e ripremo si spegne…. Vorrei che si accendessequando premo e si spegnesse al rilascio. Sono sicuro che è una stupidata per chi nemastica già di programmazione, ma per me è tutto nuovo!! Grazieee

Mauro Alfieri (http://www.mauroalfieri.it) on 27 giugno 2014 Author

Ciao Daniele, il funzionamento descritto è più complesso rispetto a quello che desiderirealizzare. In pratica ti basta eliminare tutta la parte relativa allo stato del led e lasciare unsolo if che rileva la pressione del pulsante e accende il led, ed un else che lospegnerà.

Daniele on 27 giugno 2014

Grazie per la risposta!! siimmaginavo fosse molto più semplice, ma perme è già una conquista! io ho lasciato solo [ codice rimosso in automatico ] con tutte le parentesi e struttura del caso… può andare?

Grazie ancora

Mauro Alfieri (http://www.mauroalfieri.it) on 27 giugno2014

Author

Ciao Daniele, purtroppo come hai letto in fondo agli articoli il codice non puòessere incollato nei commenti. In ogni caso se funziona o meno lo puoi provare direttamentecon l’arduino, è proprio questo il bello della scheda che se vuoisapere se funziona o meno un progetto devi solo provarlo

Page 17: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Daniele on 27 giugno 2014

Oook allora mi metto al lavoro e provo questo mio primo “progettino”. Grazie

Michele on 11 ottobre 2014

Buonasera, ho appena acquistato Arduino. Il suo sito mi sta tornando utilissimo, ed èmolto chiaro. Purtroppo mentre la parte di programmazione mi risulta facile (nei ritagli ditempo faccio il programmatore) purtroppo non è così per quella elettronica. Ho letto piùvolte il manuale fornito con Arduino ma alcune cose non riesco a capirle. Sembrerò moltoignorante, ma nonostante abbia studiato le basi di elettronica nel primo capitolo delmanuale di Arduino non sono riuscito a capire alcune cose che forse vengono date perscontate a allora non riportate: 1. come faccio a sapere quali sono le resistenze da usare per progetti che esulano dalmero copia/incolla dagli schemi sul web? Se il progetto nasce dal presupposto di potersicreare qualcosa realizzando una propria idea, come identifico quando mi sono necessariedelle resistenze, e quali? 2. un esempio pratico può essere quello dello schema di cui all’articolo in questione.Perché usare una resistenza per il collegamento a massa? E perché proprio quella? La ringrazio in anticipo per il suo tempo e mi scuso per la (forse) banalità della miarichiesta.

Mauro Alfieri (http://www.mauroalfieri.it) on 13 ottobre 2014 Author

Ciao Michele, per comprendere le regole dell’elettronica non è sufficente il primo capitolo delmanuale arduino e … forse … neppure tutto il manuale. Ti occorre studiare elettronica con manuali di uso negli istituti tecnici ouniversitari, dipende dal livello che desideri raggiungere.

Per capire, ad esempio, il perché delle resistenze a massa o a +5v puoi leggerecosa significa resistenza di pull-up o pull-down, su come calcolarle puoi partiredalla legge di Ohm.

Pietro on 23 dicembre 2014

Ciao, perchè la variabile “leggiBottone” è dichiarata nel loop? In quest modo Arduinoesegue molte più operazioni se ad ogni ciclo la deve definire. Non sarebbe stato meglio dichiararla all’inizio e poi richiamarla nel loop?

Page 18: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Mauro Alfieri (http://www.mauroalfieri.it) on 24 dicembre 2014 Author

Ciao Pietro, senza dubbio la tua osservazione è corretta, in questo esercizio ho volutoinserirla nel loop() per introdurre il concetto di variabili valide solo all’interno diuna funzione e che non impegnano la memoria totale di arduino. I tempi in questo esempio sono trascurabili in quanto hai un delay( 1000 ) cheannulla ogni risparmio di tempo computazionale che potresti avere spostando lavariabile fuori dalla funzione loop(). Ti consiglio di provare a eseguire lo spostamento della variabile e verificare ledifferenze tra l’una e l’altra situazione come esercizio sia percettivo sia effettivo

Sperimentare è sempre bello.

Marco on 21 gennaio 2015

Ciao Mauro, volevo chiederti una cosa che, se possibile, farebbe risparmiare molteistruzioni in codici di questo tipo: i valori HIGH e LOW sono negabili? O occorre sempre fare un IF e ELSE per testare i due casi? Perchè potremmo risparmiarci tutto il secondo IF.

Anche se forse potrebbe funzionare questa istruzione?? statoLed=abs(statoLed-1);

Mauro Alfieri (http://www.mauroalfieri.it) on 21 gennaio 2015 Author

Ciao Marco, nello sketch scritto per la Lemontech BlueRelay Shiled spiego proprio comeusare lo stato, definito boolean, con la negazione. Considera che la tua istruzione ha un peso computazionale elevato quindi è veroche scrivi meno righe ma fai lavorare di più il microcontrollore.

La soluzione di negazione di una boolen con ! è più semplice e facile daimplementare e funziona con digitalWrite.

luca on 10 febbraio 2015

Scusate… per favore qualcuno mi risponda che sto impazzendo…..

[[ codice rimosso in automatico ]]

Page 19: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

con questo codice perchè se premo il pulsante mi si spengne e se non lo premo mi siaccende quando dovrebbe accadere l’esatto contrario?!? (il pulsante sono sicuro che ènormalmente aperto)

Mauro Alfieri (http://www.mauroalfieri.it) on 10 febbraio 2015 Author

Ciao Luca, come avrai letto in fondo ad ogni articolo riporto la dicitura per la quale una dellepoche regole del blog è che non si può incollare codice nei commenti. Ti chiedo la cortesia di rispettarle.

Il codice è stato rimosso in automatico dal sistema. Per risolvere il tuo problema prova ad invertire i valori di digitalWrite in modo chefaccia il contrario.

Alberto on 13 febbraio 2015

Ciao Mauro Ieri sera, copiando uno sketch, alla fine mi è saltato l’errore: C:\Users\Administator\Documents\Arduino\libraries\Bounce1\Bounce.cpp:4:22: fatal error:WProgram.h: No such file or directory #include “WProgram.h” ^ compilation terminated. Praticamente avevo importato al libreria Bounce.h così come era scritto nello skechtcopiato. WProgram.h è un’altra libreria? Sembrano esserci problemi con questa. Se mi puoi essere di aiuto, grazie.

Mauro Alfieri (http://www.mauroalfieri.it) on 13 febbraio 2015 Author

Ciao Alberto, in questo sketch non si fa uso della libreria “Bounce” sei certo di aver copiatoquesto sketch ?

luca on 23 aprile 2015

Buonasera, prima di tutto ringrazio mauro alfieri per queste guide fatte benissimo che mihanno introdotto al mondo di arduino… ho un piccolo grande problema… vorrei far fare 2funzioni diverse ad un pulsante (per esempio se premuto 1 volta (500ms) fa accendere un

Page 20: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

secondo led… su internet si trova poco e quel poco non mi funziona… qualcuno mipotrebbe aiutare? metto il codice (che chiaramente non mi funziona)

[[ codice rimosso in automatico ]]

Mauro Alfieri (http://www.mauroalfieri.it) on 23 aprile 2015 Author

Ciao Luca, il tuo codice è stato rimosso in automatico come indicato da regolamento. Se vuoi un esempio che lavori sui tempi di pressione dei pulsanti puoi consultaregli articoli sul Dolly o sull’impostazione ora con arduino.

Daniele on 20 luglio 2015

Salve volevo sapere quale è la funzione della resistenza sul bottone

Mauro Alfieri (http://www.mauroalfieri.it) on 20 luglio 2015 Author

Ciao Daniele, è una resistenza di pull-down, trovi la descrizione in molti articoli del corso base enei manuali di elettronica.

Giuseppe on 27 luglio 2015

Salve, mi serve il vostro aiuto, mi sono avvicinato adesso al mondo di Arduino. Ecco il mioprogetto: Ho 4 pulsanti e 8 led (4 verdi e 4 rossi), sono 4 gruppi e ogni uno e composto daun pulsante, un Led Verde e un Led Rosso. Quello che voglio creare io è: il led verde èacceso appena premo il pulsante si spegne il led verde e si accende il rosso e cosi deverimanere definitivamente, questo per ogni gruppo. mi potete dare una mano? GRAZIE inanticipo.

Mauro Alfieri (http://www.mauroalfieri.it) on 28 luglio 2015 Author

Ciao Giuseppe, sembra la base di un gioco luminoso, quello che devi fare è semplicementememorizzare lo stato del gruppo a cui ti riferisci e accendere il led corrispondentealla pressione del pulsante.

Page 21: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Dimitri on 26 settembre 2015

Ho fatto tutto esattamente come nella Sua spiegazione (in più ho attivato il monitor permostrarmi lo stato del Pin 2) però il led continua a lampeggiare perché secondo il mioArduino l’input sul pin 2 è sempre HIGH. Ho provato anche a variare il pin di input ma il risultato non cambia. Qualche idea?

Mauro Alfieri (http://www.mauroalfieri.it) on 28 settembre 2015 Author

Ciao Dimitri, inverti la condizione alla linea 22, da == 1 a == 0 oppure inverti il collegamentodel tuo pulsante.

Maasimo on 28 ottobre 2015

Buongiorno, sto studiando molta teoria di Arduino. in passato ho fatto qualcosa con omron,che è più logica elettrica che di linguaggio, tuttavia non riesco neppure a far funzionare illed con 1 pulsantino. Mi sto esaurendo senza concludere nulla, sono già over 50, forse è anche quello cheinfluisce: come posso fare? Saluti

Mauro Alfieri (http://www.mauroalfieri.it) on 28 ottobre 2015 Author

Ciao Massimo, il mio consiglio è di iniziare per step dal corso on-line gratuito arduino. Se proprio non riesci neppure con quello puoi partecipare ad un mio corso in aulae di persona possiamo affrontare le sfide ben più complesse del singolo led

marco on 9 febbraio 2016

Buona sera Mauro,

la seguo con interesse da mesi fin da quando ho letto di Arduino sul web… Volevo realizzare un piccolo esercizio per mia figlia volevo realizzare con questo semplicesketch una funivia giocattolo, ma ho capito che non riesco ad andare oltre che l’eserciziodel semaforo! Ho provato e riprovato questo sketch ma quando premo il bottone se sono fortunato il ledsi spegne e se non tengo premuto il bottone continua a lampeggiare, ho anche inserito un

Page 22: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

delay di 250 ms ma non funziona… Pensavo di riuscire a usare questo programma anche con il controllo in pwm per fare unaccelerazione dolce e una dolce fermata ma missà che con l’orto mi trovo megli!

Grazie Marco

Mauro Alfieri (http://www.mauroalfieri.it) on 10 febbraio 2016 Author

Ciao Marco, l’accensione e successivo spegnimento del led, effetto lampeggio, è dovuto aitempi tra la pressione del pulsante ed il suo rilascio. Arduino, come hai letto, lavora per cicli continui a 16MHz ( molto rapidi ) per cui tiinvito a ragionare partendo da questo concetto. Strano che 250 millisecondi non siano sufficienti come antirimbalzo, prova adaumentare tale tempo.

In merito allo spostamento della funivia ti invito alla lettura degli articoli per ilcontrollo dei motori.

Alexnder on 1 marzo 2016

Buona sera mauro, Ma se uso un’ interruttore da pannello devo mattere anche a lui la resistenza o possofarne a me , perche’ serve la resistenza? devo usare il pulsante per escitare il rele chedeve accendere una ventola.

Mauro Alfieri (http://www.mauroalfieri.it) on 2 marzo 2016 Author

Ciao Alexander, la resistenza serve sempre, il perché è spiegato in tanti articoli del blog.

Gianni on 7 marzo 2016

Buona sera, complimenti per il blog è molto ben fatto e utile. Volevo chiedere è possibile accendere il led per un determinato periodo di tempoutilizzando il pulsante solo come impulso di accensione anche se questo rimane premuto.Perchè ho visto che il tempo del delay inizia dopo che ho rilasciato il pulsante. Grazie Gianni

Page 23: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Mauro Alfieri (http://www.mauroalfieri.it) on 8 marzo 2016 Author

Ciao Gianni, si puoi, porta il delay fuori dalla condizione di pressione del pulsante o mettilocome alternativa alla pressione del pulsante.

Gianni on 8 marzo 2016

Grazie mille, stasera provo.

DIsi on 23 marzo 2016

salve volevo sapere se era possibile far diventare deviatori i due pulsanti, per accendereda un pulsante e dall’altro spegere.

Mauro Alfieri (http://www.mauroalfieri.it) on 24 marzo 2016 Author

Ciao Dlsi, certo puoi farlo.

Giovanna on 6 aprile 2016

Salve a tutti, mi servirebbe un aiuto! Io dovrei far accendere un ed attraverso un pulsante, e alla sua accensione debba iniziarea lampeggiare, una volta che ripremo il pulsante si spegne il led… ho fatto un paio ditentativi, ma con millis è più complicato

Mauro Alfieri (http://www.mauroalfieri.it) on 8 aprile 2016 Author

Ciao Giovanna, posso consigliarti di leggerti i miei tutorial del corso base arduino/genuino gratuitoon-line. Troverai degli esempi sia di controllo led con il pulsante, come questo, sia dilampeggio e tutti descritti riga per riga.

Page 24: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Luigi on 23 maggio 2016

Ciao Mauro, volevo innanzitutto complimentarmi con te, per quello che fai e per il sito. Sto provando a riprodurre un arduino con l’atmega328, ho fatto il bootloader e riesco acaricare al suo interno gli sketch. Ho provato con lo sketch blink e tutto è andato bene,allora ho voluto provare a controllare un led con un pulsante, ma quando premo il pulsanteil led rimane spento. La cosa mi sembra un pò strana visto che con arduino lo stessoschema funziona. ps. mi baso su questo schema: Sapresti darmi una dritta? Ti ringrazio(http://cdn.instructables.com/F1P/WPB9/H337KORO/F1PWPB9H337KORO.MEDIUM.jpg)

Mauro Alfieri (http://www.mauroalfieri.it) on 23 maggio 2016 Author

Ciao Luigi, la prima cosa che mi viene in mente è che il numero di pin del led o del pulsantenon corrispondano. Prova a verificare con il monitor seriale se legge la variazione del segnale.

Luigi on 23 maggio 2016

Ho capito dove ho sbagliato e ho risolto, al posto di mettere i digital pin comenello schema mettevo i numeri delle piedinature.. mi vergogno pure a dirloahahha

Mauro Alfieri (http://www.mauroalfieri.it) on 23 maggio 2016 Author

Ciao Luigi, è ottimo che tu abbia capito l’errore e lo abbia corretto, tutticommettiamo errori negli sketch.

Antonio on 6 settembre 2016

buongiorno, sono un nuovo appassionato che si è appena affacciato sul mondo arduino,ho preso questoi esempio per fare pratica, ho compilato tutto lo sketch e collegato lascheda in immagine, solo che alla pressione del pulsante il led prima di rimanere accesofa un lampeggio, la stessa cosa quando rischiaccio per spegnere, come mai?

Page 25: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Mauro Alfieri (http://www.mauroalfieri.it) on 7 settembre 2016 Author

Ciao Antonio, potrebbe essere il classico esempio di rimbalzo elettronico che ti si verifica acausa di una non perfetta pressione del pulsante o di un contatto imperfetto diquest’ultimo. Ti consiglio di provare aumentando i tempi di delay dopo la pressione.

Cristian on 20 novembre 2016

Grazie semplice e chiaro ! Pensare che era così semplice, eppure non riuscivo adarrivarci… Complimenti per il sito !

Mauro Alfieri (http://www.mauroalfieri.it) on 23 novembre 2016 Author

Ciao Cristian, sono contento che i miei articoli ti possano essere stati utili.

Manolo on 3 febbraio 2017

Ciao Mauro, ecco il quesito. Vorrei sapere come (e se fosse possibile) pilotare l’intensità luminosa di 10/15 led ad altaluminosità G4 già premontati sulle schedine rotonde (da faretto per intenderci), tenendopresente che il faretto avrà una sua alim. esterna di 12V. Vorrei creare l’effetto luminoso daminimo a max con questo tipo di led. Utilizzo sempre la Arduino Mega.

Grazie mille!

Manolo on 3 febbraio 2017

Preciso che l’alimentazione esterna di 12V la fornisco grazie ad un battery pack. Le schedine luminose che vorrei utilizzare sono quelle semplici (5050 SMD) con idue reofori per connettere la Vin.

Mauro Alfieri (http://www.mauroalfieri.it) on 7 febbraio 2017 Author

Page 26: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Ciao Manolo, vedi risposta precedente.

Mauro Alfieri (http://www.mauroalfieri.it) on 7 febbraio 2017 Author

Ciao Manolo, perdonami ma non ho compreso che tipo di componenti stai utilizzando. Se i driver per led che possiedi supportano un pin PWM di controllo da 0 a 5vpuoi utilizzarlo. Se non lo supporta ma i faretti sono comunque dimmerabili devi trovare unashield di controllo con le caratteristiche di tensione e corrente adatte.

Manolo on 7 febbraio 2017

Ok, cerco un po in giro. Grazie Mauro!

Arteno on 2 marzo 2017

Arteno.

Scusa Mauro, ma dopo aver scritto tale e quale lo sketch “led e bottone”, dopo la verifica ecompilazione mi esce un errore. Ho pure riscritto lo sketch facendo copia/incolla da quello da te scritto ma il risultato è lostesso:

“collect2.exe: error: 1d returned 5 exit status exit status 1 Errore durante la compilazione per la scheda Arduino/Genuino” Ho verificato e riverifiacto tutto diverse volte. Sto però usando Arduino 1.8.1…… forse questo è il problema?

Grazie….sto cercando di imparare! Saluti

Mauro Alfieri (http://www.mauroalfieri.it) on 3 marzo 2017 Author

Ciao Arteno, francamente l’errore che ti restituisce è la prima volta che lo vedo, a me non èmai capitato.

Page 27: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Sembra un errore di installazione/conflitto dell’IDE, hai provato con il sempliceBlink degli esempi se riesci a compilare e trasferire lo sketch?

Marco on 24 luglio 2017

Il Progetto sul quale sto lavorando è totalmente diverso, ma il mio problema penso sipossa risolvere basandomi su questo articolo, anche se non riesco ad iniziare. L’idea eraquella di realizzare un braccio meccanico che potesse essere comandato in 3 diversimetodi premendo tre diversi pulsanti, ora mi spiego meglio. modo 1 : attraverso un comando bluetooth con smartphone modo 2 : attraverso dei potenziometri modo 3 : il braccio meccanico esegue sempre lo stesso movimento “all’infinito” (spostareun oggetto). Premetto che i tre sketch li ho già e funzionano separatamente. Il mio problema è questodunque: come fare a dire ad Arduino che se premo un pulsante deve eseguirmi un certosketch, se premo il secondo deve eseguire il secondo sketch e così anche per il terzo.Ovviamente bisognerà riassumere tutto in un solo sketch aggiungendo i pulsanti ecc. manon so come fare.

Mauro Alfieri (http://www.mauroalfieri.it) on 28 luglio 2017 Author

Ciao Marco, hai ragione, non è molto inerente questo articolo. Puoi prendere il concetto di pulsanti e lettura degli stessi, anche se, avendo turealizzato gli altri sketch dovresti avere abbastanza confidenza con laprogrammazione per fare quello che ti serve. Il modo migliore, a mio avviso è ridurre a funzioni i tre sketch che possiedi erichiamarli da una loop in funzione del pulsante premuto.

Marco on 1 agosto 2017

In che senso ridurre a funzioni?

Mauro Alfieri (http://www.mauroalfieri.it) on 2 agosto2017

Author

Ciao Marco, intendo trasformare in funzioni i tre sketch e richiamarli dalloop()

Page 28: Arduino, led e pulsante · collegare il led nel mio caso ho utilizzato il led integrato nella board Arduino; la seconda b o t t o n e indica a quale pin colleghi il bottone o pulsante

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati(https://akismet.com/privacy/).