Video introduttivo Arduino Nudo
Scopri come Arduino funziona davvero, senza scorciatoie, librerie o astrazioni.
Arduino come un armadio
Immagina Arduino non come una scatola magica, ma come un armadio. Ogni fila ha 8 caselle, e in ciascuna può esserci una pallina o no. Pallina sì = 1, pallina no = 0, come interruttori. Ogni fila ha un numero identificativo che trovi nel PDF del produttore, con tutte le funzioni dei pin.
Registri (PDF del produttore pagina 280)
Nella foto sopra vediamo lo schema di Arduino Nano. Sotto ci sono alcuni registri, dal numero 3 al 12.
I registri e i pin sono collegati in modo logico. A prima vista può sembrare complicato, ma non lo è davvero. La difficoltà nasce perché spesso si usano nomi astratti invece dei numeri reali.
Nomi astratti 12, PB0 o D8
Ad esempio, invece di usare i numeri dei pin e dei registri, si usano nomi come 12, PB0 o D8. Questi nomi astratti aiutano nei programmi generici, ma qui è più semplice usare i numeri veri dei registri.
Ho evidenziato con colori diversi i pin e i registri collegati. Ci concentriamo su quelli verdi. Prendiamo il pin D8: corrisponde a tre locazioni diverse, chiamate PINB0, DDB0 e PORTB0.
Per mettere 5V su questo pin, prima dobbiamo dichiararlo come uscita. Con astrazioni, si usa il comando sbi DDRB, DDB0, ma funziona solo se DDRB è dichiarato come .equ DDRB=4 e DDB0 come .equ DDB0=0.
Senza astrazioni possiamo scrivere semplicemente sbi 4,0. Questo comando dice ad Arduino di attivare il pin come uscita.
In pratica, il pin D8 puo avere molti nomi, ma se usiamo il numero del registro e la posizione, possiamo controllarlo direttamente. Scrivere 1 nella posizione 0 del registro 4 lo attiva come uscita. Scrivere 1 nella posizione 0 del registro 5 mette 5V sul pin.