Concetti Chiave
- Il progetto consiste nella creazione di un convertitore da decimale a binario a 8 bit utilizzando solo una scheda Arduino UNO.
- Il programma prende input dal monitor seriale, esegue divisioni successive per ottenere il resto e converte il numero decimale in binario.
- La comunicazione con il monitor seriale è impostata alla velocità di 9600 baud per ricevere e inviare dati.
- Il codice esegue una serie di operazioni matematiche per calcolare i resti necessari per la conversione binaria e li stampa in sequenza.
- Il programma è progettato per funzionare solo con numeri decimali inferiori a 256, restituendo un messaggio di errore per numeri più grandi.
Arduino - Convertitore Decimale Binario 8 bit
Oggi avremo a che fare con un progetto un po' particolare: realizzare un convertitore di numeri decimale in numeri binari a 8 bit con il solo ausilio della scheda Arduino, senza altri strumenti. Quindi assicurati di avere a portata di mano:
-Una scheda Arduino UNO;
-Il software di programmazione Arduino.
Questo progetto consiste nel collegamento al monitor seriale, al quale forniremo dei numeri decimali che il nostro convertitore trasformerà in binario.
Sappiamo benissimo che per convertire un numero decimale in binario è necessario eseguire una divisione a catena per 2 e successivamente considerarne i resti.
È ciò che faremo fare al nostro Arduino, eseguire una serie di divisioni, considerarne il resto, e stampare il risultato sul monitor seriale.
Programmazione
void setup(){
Serial.begin(9600); //Impostiamo la comunicazione col monitor seriale alla velocità di 9600 baud
}
void loop(){
int val = Serial.parseInt(); //Chiamiamo val il valore che immetteremo nel monitor seriale
if(val > 0){ //se il valore immesso è maggiore di 0, ovvero se inseriamo qualcosa,
if(val
int restouno = val%2; //chiamiamo restouno il resto del numero diviso per 2.
int restodue = ((val-restouno)/2)%2; //chiamiamo restodue il resto del numero meno il resto diviso per due, e così via, a catena.
int restoquattro = ((((val-restouno)/2)-restodue)/2)%2;
int restootto = ((((((val-restouno)/2)-restodue)/2)-restoquattro)/2)%2;
int restosedici = ((((((((val-restouno)/2)-restodue)/2)-restoquattro)/2)-restootto)/2)%2;
int restotrentadue = ((((((((((val-restouno)/2)-restodue)/2)-restoquattro)/2)-restootto)/2)-restosedici)/2)%2;
int restosessantaquattro = ((((((((((((val-restouno)/2)-restodue)/2)-restoquattro)/2)-restootto)/2)-restosedici)/2)-restotrentadue)/2)%2;
int restocentoventotto = ((((((((((((((val-restouno)/2)-restodue)/2)-restoquattro)/2)-restootto)/2)-restosedici)/2)-restotrentadue)/2)-restosessantaquattro)/2)%2;
Serial.print(restocentoventotto); //stampa il resto del bit corrispondente a 128
Serial.print(restosessantaquattro); //stampa il resto del bit corrispondente a 64
Serial.print(restotrentadue); //stampa il resto del bit corrispondente a 32
Serial.print(restosedici); //stampa il resto del bit corrispondente a 16
Serial.print(restootto); //stampa il resto del bit corrispondente a 8
Serial.print(restoquattro); //stampa il resto del bit corrispondente a 4
Serial.print(restodue); //stampa il resto del bit corrispondente a 2
Serial.println(restouno); //stampa il resto del bit corrispondente a 1
}else{
Serial.println("Numero troppo grande!"); //se la condizione è falsa, ovvero il numero è maggiore o uguale di 256, il monitor restituirà la frase tra gli apici.
}
}
}
Il gioco è fatto. Basta aprire il monitor seriale ed inserire un numero minore di 256 per avere la sua conversione in binario!
Domande da interrogazione
- Qual è l'obiettivo principale del progetto descritto nel testo?
- Come funziona il processo di conversione da decimale a binario nel progetto?
- Quali sono i requisiti per eseguire il progetto di conversione?
L'obiettivo principale del progetto è realizzare un convertitore di numeri decimali in numeri binari a 8 bit utilizzando solo una scheda Arduino UNO e il software di programmazione Arduino.
Il processo di conversione da decimale a binario avviene eseguendo una serie di divisioni a catena per 2, considerando i resti, e stampando il risultato sul monitor seriale.
I requisiti per eseguire il progetto includono una scheda Arduino UNO e il software di programmazione Arduino. Inoltre, il numero inserito nel monitor seriale deve essere minore di 256 per ottenere la conversione in binario.