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
Sconti & Coupon
Accedi a Xenforo
Immagine di TV OLED a prezzo giusto? Hisense dice la sua (e lo sconto è reale) TV OLED a prezzo giusto? Hisense dice la sua (e lo sconto è...
Immagine di Non solo polvere: questo aspirapolvere rimuove anche i liquidi mentre pulisci Non solo polvere: questo aspirapolvere rimuove anche i liqui...

Corso base di Arduino: manipolazione delle porte di I/O

Un approccio differente di programmazione consente di utilizzare le varie porte di I/O attraverso dei registri. Tale metodo consente di ottimizzare il codice, sia in termini di velocità di esecuzione che in lunghezza.

Advertisement

Quando acquisti tramite i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Scopri di più
Avatar di Elettronica Open Source

a cura di Elettronica Open Source

Pubblicato il 17/11/2017 alle 09:08

banner prova1

Per comprendere l'uso dei registri legati alle porte di comunicazione di Arduino, è opportuno esaminare anche alcuni esempi che prevedono il metodo tradizionale.

Lampeggio di otto diodi LED con il metodo tradizionale

Immaginiamo di dover fare lampeggiare ben otto diodi LED, collegati ad altrettante porte di uscita di Arduino, come mostrato nello schema di cui in figura 1. Per il lampeggio all'unisono di otto diodi LED, in realtà, basterebbe una porta sola, ma potrebbe sorgere, in futuro, l'esigenza di rendere tali dispositivi di segnalazione indipendenti tra loro. A noi, tuttavia, interessa comprendere la filosofia generale di funzionamento. Bene, con il metodo tradizionale occorre configurare le otto porte (siglate dalla numero 0 alla numero 7) come uscite digitali e alternare l'accensione e lo spegnimento concretizzando, di fatto, il lampeggio dei LED, alla cadenza di un secondo. Il listato di cui alla figura 2 mostra tale metodo, utilizzato sicuramente da tutti quando si comincia a muovere i primi passi con Arduino.

figura 1 schema 8 led
Figura 1: schema con 8 led

figura 2 listato lampeggio tradizionale
Figura 2: listato con lampeggio tradizionale

Lampeggio di otto diodi LED con l'uso dei registri

I registri legati alle porte di I/O consentono un accesso a basso livello e una gestione più veloce e ottimizzata. Inoltre permettono di accedere a più pin con un'unica istruzione. Relativamente ad Arduino Uno vi sono le seguenti porte multiple digitali trattate, a tutti gli effetti, come un normale byte:

  • La porta multipla D, che comprende le porte 0, 1, 2, 3, 4, 5, 6 e 7
  • La porta multipla B, che comprende le porte 8, 9, 10, 11, 12 e 13

L'insieme delle porte è controllato da tre registri:

  • Il registro DDR (e precisamente DDRD e DDRB) che configura la direzione delle singole porte, bit per bit
  • Il registro PORT (e precisamente PORTD e PORTB) che accede fisicamente alla singola porta
  • Il registro PIN (e precisamente PIND e PINB) che legge lo stato logico di una singola porta

Per effettuare il lampeggio di otto diodi LED in un'unica soluzione, occorre seguire le seguenti fasi:

  • Configurare le otto porte (0, 1, 2, 3, 4, 5, 6, 7) come output, con l'istruzione DDRD=B11111111. Per settare, invece, la porta 0 e 1 come input e le altre sei come output si deve inoltrare l'istruzione DDRD=B11111100
  • Comandare, a livello di bit, le singole porte con l'istruzione PORTD=Bxxxxxxxx. Ad esempio, per accendere tutti i Led si inoltri l'istruzione PORTD=B11111111 oppure PORTD=255. Per accendere i LED in posizione pari si usi, invece, il comando PORTD=B10101010 oppure l'equivalente PORTD=170

La figura 3 riporta, pertanto, il brevissimo listato equivalente, per funzionamento, a quello della figura 2.

figura 3 listato lampeggio registri
Figura 3: listato con lampeggio a registri

Con questa filosofia, si può facilmente realizzare un prototipo di generatore di segnale multiplo che eroghi, da ogni uscita, le seguenti frequenze:

  • Dalla porta 0: segnale quadro di 128 Hz
  • Dalla porta 1: segnale quadro di 64 Hz
  • Dalla porta 2: segnale quadro di 32 Hz
  • Dalla porta 3: segnale quadro di 16 Hz
  • Dalla porta 4: segnale quadro di 8 Hz
  • Dalla porta 5: segnale quadro di 4 Hz
  • Dalla porta 6: segnale quadro di 2 Hz
  • Dalla porta 7: segnale quadro di 1 Hz

Lo schema è il medesimo del precedente ma senza l'ausilio dei diodi LED. La figura 4 mostra il semplicissimo sketch.

figura 4 sketch generatore multiplo
Figura 4: sketch per generatore multiplo di segnale

L'esecuzione del prototipo genera otto diversi segnali quadri, con frequenza doppia della precedente, come quelli visualizzati in figura 5.

figura 5 grafico
Figura 5: grafico degli otto segnale generati

Tom's Consiglia

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

Leggi altri articoli

👋 Partecipa alla discussione! Scopri le ultime novità che abbiamo riservato per te!

0 Commenti

⚠️ Stai commentando come Ospite . Vuoi accedere?


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

Segui questa discussione
Advertisement

Non perdere gli ultimi aggiornamenti

Newsletter Telegram

I più letti di oggi


  • #1
    Questo nuovo materiale "vive" e ricostruisce gli edifici
  • #2
    Uso della VRAM ridotto all'osso con la nuova versione del DLSS
  • #3
    Anche Amazon nella rete del “NO IVA”: ecco gli affari nascosti
  • #4
    Uno YouTuber ha acquistato uno dei marchi più famosi del retrogaming
  • #5
    Milioni di stampanti in tutto il mondo a rischio sicurezza
  • #6
    Questa è la tech che salverà le schede video da 8GB
Articolo 1 di 5
Non solo polvere: questo aspirapolvere rimuove anche i liquidi mentre pulisci
Proscenic F20A è un aspirapolvere senza fili 3 in 1 con coupon da 50€ di sconto da selezionare su Amazon, che lo porta a soli 219€.
Immagine di Non solo polvere: questo aspirapolvere rimuove anche i liquidi mentre pulisci
Leggi questo articolo
Articolo 2 di 5
TV OLED a prezzo giusto? Hisense dice la sua (e lo sconto è reale)
Offerta imperdibile per la smart TV Hisense 55A8DN OLED 4K 55 pollici con tecnologia Dolby Vision IQ e 120Hz. Su Amazon sotto gli 800€!
Immagine di TV OLED a prezzo giusto? Hisense dice la sua (e lo sconto è reale)
Leggi questo articolo
Articolo 3 di 5
Il colore conta: lo smart speaker Sonos bianco ha oltre 40€ di sconto
A volte il colore fa la differenza: questo smart speaker Sonos bianco è scontato di oltre 40€ al momento del pagamento, permettendovi di prenderlo a 187€.
Immagine di Il colore conta: lo smart speaker Sonos bianco ha oltre 40€ di sconto
Leggi questo articolo
Articolo 4 di 5
Passerai l’estate a giocare? Fallo con le cuffie HyperX, oggi in offerta
Buona offerta da Amazon sulle HyperX Cloud III Wireless, in sconto da 179,99€ a 119,99€, cuffie gaming con 120 ore di autonomia e audio DTS Spatial.
Immagine di Passerai l’estate a giocare? Fallo con le cuffie HyperX, oggi in offerta
Leggi questo articolo
Articolo 5 di 5
Shelly Gen4 e Plus: piccoli dispositivi ma grandi alleati per una casa smart
Sono arrivati i nuovi Shelly Gen4: soluzioni smart con controllo dei consumi per una casa intelligente come mai prima d’ora.
Immagine di Shelly Gen4 e Plus: piccoli dispositivi ma grandi alleati per una casa smart
Leggi questo articolo
Advertisement
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

© 2025 3Labs Srl. Tutti i diritti riservati.