Il codice del convertitore è scritto nel linguaggio di programmazione della piattaforma Arduino, la cui sintassi è compatibile con quella di C / C++.
La struttura standard di un programma per arduino si basa sulla definizioni delle funzioni
void setup()
e void loop()
.
La funzione setup() viene chiamata una sola volta ad ogni accensione o reset della scheda Arduino
mentre, la funzione loop(), come il nome stesso suggerisce, esegue ciclicamente i blocchi di codice
definiti al suo interno fino allo spegnimento della scheda.
Durante il setup() del convertitore vengono chiamate le funzioni pinMode()
e
Serial.begin()
. La prima serve ad inizializzare i pin della scheda come output.
Questa funzione è necessaria poiché il microcontrollore della scheda è dotato di pin GPIO
(General Purpose Input/Output), ovvero pin di utilizzo generico che possono fungere sia da input
sia da output. Sarà compito dell'utente definirne la funzione di output attraverso la chiamata
pinMode(PIN, OUTPUT)
.
La seconda funzione, ovvero Serial.begin(9600)
serve ad avviare la comunicazione
seriale tra il microcontrollore e il computer a cui esso viene collegato tramite USB.
L'avvio di questa comunicazione è necessario per inoltrare successivamente al microcontrollore gli interi
di cui dovrà effettuare la conversione.
Le successive Serial.println()
nel codice di setup servono solamente a stampare a video sul
Monitor Seriale le informazioni della schermata di avvio del dispositivo.
Nella funzione loop() il convertitore attende di ricevere dati sulla comunicazione seriale, attraverso
il costrutto if(Serial.available())
.
Alla ricezione di un numero, viene verificato che questo sia compreso nell'intervallo [0, 255] ovvero l'intervallo dei numeri rappresentabili con 8 bit. Qualora ciò non fosse vero, si avvierebbe la procedura di segnalazione di errore.
Nel caso in cui il numero rientrasse nell'intervallo, verrebbe effettuata la conversione, attraverso il ciclo:
for(i=0; i<8; i++){
array[i]=(((num) >> (i)) & 0x01);
}
In questo modo si ottiene un array contenente in ciascuno dei suoi 8 elementi il bit corrispondente del numero
num
ricevuto sulla seriale.
A questo punto, utilizzando le funzioni digitalWrite()
, i PIN del microcontrollore vengono
posti a stato HIGH (+5v) o LOW (0v) in accordo con i rispettivi valori dell'array di bit.
Alla fine di questa operazione, il display collegato all'Arduino mostrerà il risultato della conversione. Il ciclo della funzione loop ricomincia rimettendo il microcontrollore in attesa di un nuovo numero intero.
Per maggiori informazioni sulle funzioni utilizzate è possibile controllore i seguenti link o l'intera documentazione ufficiale del progetto Arduino all'indirizzo https://www.arduino.cc/en/Reference/HomePage