I Contraves o Thumbwheel o BCD binary Switch, sono componenti utilizzati in elettronica, per impostare un valore numerico prestabilito mediante l’esposizione, sulla finestrella anteriore, di un numero, compreso tra 0 e 9 , posizionato su di una ruota che può essere fatta girare premendo due pulsanti meccanici.
sul connettore posteriore, oltre al collegamento comune, ci sono quattro uscite A,B,C e D, che presentano il codice binario da 0 a 9.; lo schema seguente mostra l’applicazione tipica.
Variabili di progetto
per gestire il codice binario ABCD, è necessario associare una variabile a ciascun interruttore del BCD Binary Switch.
chiamo le variabili di tipo Bool, dip0, dip1, dip2 e dip3
definisco la variabile “set” che utilizzerò per stabilire la combinazione del BCD Binary Switch
creo la variabile bidimensionale BCD_1, che utilizzerò per costruire l’array che contiene il valore decimale da inviare al display.
oggetti, inseriti nel 3D System, necessari per il progetto
collego 4 “switch_array_slide”, ai bit 0,1,2,3 alla porta C
collego i segmenti del “LED_7seg” alla porta B, e il catodo comune al bit 0 della porta A
Diagramma di flusso
Inserisco il ciclo principale con l’accortezza di impostare “While” a 10, in modo che quando il ciclo è stato ripetuto 10 volte, rincomincia dall’inizio.
questa impostazione è necessaria per limitare a 10 la raccolta dei valori contenuti nella variabile BCD_1.
I valori decimale contenuti nella variabile BCD_1[10], vanno da zero a 9, che corrispondono ai valori impostabili sui “Contraves/ThumbWhell/BCD Binary Switch”.
Le prime funzioni che inserisco nel ciclo principale, sono i 4 “Inputs”, corrispondenti ai 4 contatti presenti all’interno dei Contraves.
A ciascun Input, è associata una variabile di tipo Bool, che rappresenta lo stato logico zero o 1.
le 4 variabili sino: dip0,dip1,dip2 e dip3
Subito dopo aver inserito le 4 funzioni “Input”, inserisco la funzione “Calcolo” che contiene l’array impostato con la variabile BCB_1, seguito dalla funzione “Switch case”.
imposto la funzione “Switch case” in modo da avere 10 uscite differenti, controllate dalla formula:
dip0 + 2*dip1 + 4*dip2 + 8*dip3
di seguito sono rappresentate le 10 opzioni derivanti dalla impostazione dello “Switch case”
In ogni ramo dello “Switch case”, inserisco la funzione “Calcolo”, che utilizzo per impostare il valore della variabile “set”
I valore decimale, selezionato dalla combinazione dei 4 “Input”, sarà inviato alla uscita e rapresentato sul display.
Il valore della variabile “set”, è inviata al digit del “LED_7seg1”.
Concludo il programma inserendo un “delay” di 500 milisecondi.
Diagramma di flusso completo
C code
Riccardo Monti