Note di rilascio

Convertitore Decimale/Binario con Arduino

Download

Architettura del software

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.

Setup

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.

Loop

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