image/svg+xml
Logo Tom's Hardware
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Tom's Hardware Logo
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Forum
  • Sconti & Coupon
Offerte & Coupon
Accedi a Xenforo
Immagine di Pampling: le migliori magliette nerd a soli 20€ (promo 2x20€) Pampling: le migliori magliette nerd a soli 20€ (promo 2x2...
Immagine di Amore tech: Tineco taglia i prezzi su Amazon per un San Valentino a prova di sporco Amore tech: Tineco taglia i prezzi su Amazon per un San Vale...

Corso base di Arduino: pulsanti e bottoni

Arduino non sa solo attivare e disattivare piccoli carichi, come abbiamo visto nella precedente puntata. Le sue abilità gli consentono anche di "percepire" eventi esterni e di comportarsi di conseguenza. Vediamo come fare.

Advertisement

Avatar di Elettronica Open Source

a cura di Elettronica Open Source

Pubblicato il 28/07/2017 alle 17:52
Quando acquisti tramite i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Scopri di più

banner prova1

Oltre alle porte di output, esaminate nella quarta puntata del corso base su Arduino, la scheda può gestire anche le porte di input. Si tratta di normali pin che possono essere predisposti alla ricezione di un segnale (digitale o analogico che sia). In questa puntata ci occuperemo solo dei segnali digitali (+5V oppure 0V).

Solitamente, a queste tipologie di porte vanno collegati i sensori, che forniscono un segnale, in dipendenza a un particolare episodio che avviene esternamente alla scheda. Contempliamo tra essi i pulsanti, gli interruttori, le fotoresistenze, i sensori di temperatura, ecc.

Gli esempi che seguono sono di una semplicità straordinaria ma sufficienti a far comprendere, fin da subito, il concetto ai principianti, che si accingono a iniziare la programmazione di Arduino.

Primo esempio: Luci scala di un palazzo

Al solito, prima d'intraprendere qualsiasi azione di programmazione, occorre impostare un algoritmo che regoli la procedura prescelta. Analizziamo, dunque, cosa succede quando si gestisce un impianto di luci per una scala di un condominio, tramite passi numerati:

     1.  In stato di riposo:

a)      Tutte le luci d'illuminazione della scala sono spente

b)     Resta accesa solo una piccola luce di cortesia posta sul pulsante

2.  Se si preme il pulsante

a)     Si accendono tutte le lampade del vano scala (il contatore comincia a girare)

b)     Si spengono le luci di cortesia

c)     Lo stato perdura per 30 secondi (o altra temporizzazione utile)

     3.  Ritorno al punto 1

L'algoritmo è abbastanza semplice, occorre sempre pensare in funzione a tutte le casistiche che possono accadere. L'esempio è stato preparato per gestire solo due piani, ma il ragionamento è lo stesso per qualunque numero di luci. Nella funzione setup vengono configurati i pin di uscita (1, 2, 3 e 4) e il pin d'ingresso per il pulsante (7). Quindi, è attuato subito lo stato del riposo (luci spente e lucette accese). La clausola condizionale if è processata ogni 10 ms. Se il valore booleano proveniente dalla lettura della porta d'ingresso è "vero", si accendono le luci della scala e si spengono quelle di cortesia, il tutto per 30 secondi. Dopo il ripristino della situazione, l'intero processo si ripete all'infinito. Si consiglia, soprattutto ai principianti, di studiare a fondo sia il listato che lo schema del cablaggio elettrico.

L'ingresso 7 è tenuto "basso" dalla resistenza di pull-down da 10k. Una pressione del pulsante causa il passaggio di corrente che commuta immediatamente ad alto il livello della stessa porta. Il firmware fa il resto.

figura 1 cablaggio luci scala

figura 1 cablaggio luci scala

figura 2 listato luci scala
figura 2 listato luci scala

Secondo esempio: pulsanti contemporanei

Il miglior modo per imparare la programmazione con Arduino è quello di provare diversi esempi, anche sbagliando. Il prossimo esempio è interessante: si hanno due pulsanti e un diodo LED. Quest'ultimo si accende se, e solo se, si premono contemporaneamente i due pulsanti in dotazione. Il LED utilizzato, questa volta, si trova direttamente su Arduino, assieme alla sua resistenza di limitazione. È connesso alla porta 13. Non è necessario, quindi, collegarne un altro.

figura 3 cablaggio doppio pulsante
figura 3 cablaggio doppio pulsante

Si noti che la condizione if processa e controlla due valori logici (booleani) contemporaneamente, grazie all'operatore logico "&&" (AND). Pertanto, nel controllo, si potrebbe evitare l'uso dell'operatore di uguaglianza e organizzare l'istruzione nel seguente modo:

if (pressione1 && pressione2)

Il diodo LED si accenderà quando entrambi i pulsanti saranno premuti. Gli utilizzi dell'esempio sono molteplici, dal settore automobilistico a quello casalingo.

figura 4 listato doppio pulsante
figura 4 listato doppio pulsante

Tom's Consiglia

Per chi inizia ora e voglia dotarsi di tutto l'occorrente, Arduino Uno si trova facilmente a un prezzo abbordabile.

Le notizie più lette

#1
Mi sto stancando di un settore che vive copiando Apple

EDITORIALE

Mi sto stancando di un settore che vive copiando Apple

#2
Quali lavori spariranno nei prossimi 5 anni a causa dell'IA?
3

Business

Quali lavori spariranno nei prossimi 5 anni a causa dell'IA?

#3
Le aziende stanno perdendo il controllo dei propri PC
4

Business

Le aziende stanno perdendo il controllo dei propri PC

#4
Finalmente diremo addio ai cavi 16 pin che bruciano?
5

Hardware

Finalmente diremo addio ai cavi 16 pin che bruciano?

#5
Giocare non ci piace più, preferiamo comprare a caso

Editoriale

Giocare non ci piace più, preferiamo comprare a caso

👋 Partecipa alla discussione!

0 Commenti

⚠️ Stai commentando come Ospite . Vuoi accedere?

Invia

Per commentare come utente ospite, clicca quadrati

Cliccati: 0 /

Reset

Questa funzionalità è attualmente in beta, se trovi qualche errore segnalacelo.

Segui questa discussione

Advertisement

Ti potrebbe interessare anche

Amore tech: Tineco taglia i prezzi su Amazon per un San Valentino a prova di sporco

Altri temi

Amore tech: Tineco taglia i prezzi su Amazon per un San Valentino a prova di sporco

Di Dario De Vita
Pampling: le migliori magliette nerd a soli 20€ (promo 2x20€)

Altri temi

Pampling: le migliori magliette nerd a soli 20€ (promo 2x20€)

Di Dario De Vita
San Valentino, ma smart: la promo Unieuro che mette d’accordo cuore e tech

Altri temi

San Valentino, ma smart: la promo Unieuro che mette d’accordo cuore e tech

Di Dario De Vita
ECOVACS presenta la nuova generazione di robot per la casa
2

Altri temi

ECOVACS presenta la nuova generazione di robot per la casa

Di Giulia Serena
2 LEGO, 2 super sconti Amazon per il regalo perfetto di San Valentino

Altri temi

2 LEGO, 2 super sconti Amazon per il regalo perfetto di San Valentino

Di Dario De Vita

Advertisement

Advertisement

Footer
Tom's Hardware Logo

 
Contatti
  • Contattaci
  • Feed RSS
Legale
  • Chi siamo
  • Privacy
  • Cookie
  • Affiliazione Commerciale
Altri link
  • Forum
Il Network 3Labs Network Logo
  • Tom's Hardware
  • SpazioGames
  • CulturaPop
  • Data4Biz
  • TechRadar
  • SosHomeGarden
  • Aibay

Tom's Hardware - Testata giornalistica associata all'USPI Unione Stampa Periodica Italiana, registrata presso il Tribunale di Milano, nr. 285 del 9/9/2013 - Direttore: Andrea Ferrario

3LABS S.R.L. • Via Pietro Paleocapa 1 - Milano (MI) 20121
CF/P.IVA: 04146420965 - REA: MI - 1729249 - Capitale Sociale: 10.000 euro

© 2026 3Labs Srl. Tutti i diritti riservati.