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

Novità!

Prova la nuova modalità di navigazione con le storie!

Accedi a Xenforo
Immagine di Dove vedere Roma - Inter in TV e streaming Dove vedere Roma - Inter in TV e streaming...
Immagine di GeForce NOW rivoluziona il cloud gaming con le ricompense GeForce NOW rivoluziona il cloud gaming con le ricompense...

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?

Invia

Per commentare come utente ospite, clicca cerchi

Cliccati: 0 /

Reset

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
    Nasce il neurone artificiale più efficiente al mondo
  • #2
    Mentre Windows 10 si prepara all'addio, ReactOS si rinnova
  • #3
    Dell reinventa l’AI locale con il compatto Pro Max Mini
  • #4
    Hacker rubano codici 2FA da telefoni Android: basta un'app
  • #5
    Commodore sfida Windows 11 con un OS retrò e ribelle
  • #6
    Afferralo prima che sparisca: monitor Asus ROG in offerta sotto i 300€
Articolo 1 di 5
GeForce NOW rivoluziona il cloud gaming con le ricompense
I GeForce NOW Membership Rewards introducono 10 nuovi titoli cloud, una reward Golden Key esclusiva per Borderlands 4 e altri ancora.
Immagine di GeForce NOW rivoluziona il cloud gaming con le ricompense
Leggi questo articolo
Articolo 2 di 5
Dove vedere Roma - Inter in TV e streaming
Roma e Inter saranno tra i protagonisti della 7° giornata di Serie A 2025/2026. Ecco quando inizia la partita e come vederla in streaming.
Immagine di Dove vedere Roma - Inter in TV e streaming
Leggi questo articolo
Articolo 3 di 5
Scopri tutta la nuova linea smart home di Amazon che ti porta nel futuro
Basta affidarsi alle soluzioni Amazon per creare una smart home completa e con prodotti di alto livello, partendo da un semplice Echo fino ad arrivare alla TV.
Immagine di Scopri tutta la nuova linea smart home di Amazon che ti porta nel futuro
Leggi questo articolo
Articolo 4 di 5
Dì addio ai panni umidi: l’asciugatrice giusta ora costa meno!
Offerta imperdibile: asciugatrice Bosch Serie 4 WTH85218II a pompa di calore da 8 kg a 479,90€ invece di 929,00€, con uno sconto del 48%.
Immagine di Dì addio ai panni umidi: l’asciugatrice giusta ora costa meno!
Leggi questo articolo
Articolo 5 di 5
Scarpe Skechers che ispirano: modelli trendy e sconti imperdibili su Amazon
Se ti serve un po di stile, segnaliamo che in queste ore ci sono un sacco di scarpe Skechers in sconto su Amazon. Ecco quelle con lo sconto più alto!
Immagine di Scarpe Skechers che ispirano: modelli trendy e sconti imperdibili su Amazon
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.