Contatore binario

AA contatori contapezzi

Alcuni contenitori su un nastro trasportatore, attraversano il flusso luminoso di una fotocellula; l’interruzione del collegamento ottico, incrementa un contatore, il display mostra il conteggio dei pezzi.

Contatore binario

Il conteggio dei pezzi è visualizzato da un LED array composto da 8 LED; al passaggio del pezzo, lo stato dei LED avrà un comportamento di tipo binario; trattandosi di 8 bit, si avrà la rappresentazione massima di 256 conteggi.

Raggiunto il conteggio di 255 (2x2x2x2x2x2x2x2 =256), tutti i LED saranno accesi, per spegnersi, tutti, all’impulso successivo, iniziando nuovamente il conteggio.

cablaggio contatore binario

Il pulsante che simula la fotocellula è collegato al pin quattro del chip ATMega328 che corrisponde a PD2 (digital due) di Arduino UNO.

Per comodità di cablaggio, il LED array, composto dagli 8 LED, è collegato a sei bit della porta B, da B0 a B5 e a due bit della porta D, D6 e D7.

seleziono il LED array e dal pannello Proprietà, collego 6 degli 8 LED alla porta B, assegnando ogni LED a un bit (bit 0,1,2,3,4 e 5) corrispondenti alle uscite 8,9,10,11,12,e 13 di Arduino.

Collego i rimanenti LED, ai bit 6 e 7 della porta D, corrispondenti alle uscite 6 e 7 di Arduino.

La variabile contatore, è di tipo Byte con un valore compreso tra 0 e 255, e con il valore iniziale posto a 0; questa variabile serve per contare il numero di pezzi che interrompono la fotocellula.

Impostazione delle Variabili

La Variabile push, associata al basic_Switch1, indica lo stato che può assumere: 0 (zero) se il flusso luminoso non è interrotto, oppure 1, se un oggetto  interrompe il flusso luminoso, pertanto sarà una Variabile di tipo Bool, con il valore iniziale impostato a 0.

Seleziono il Basic Switch e dal pannello Proprietà e lo collego al bit 2 della porta D ( pin digital 2 di Arduino).

AA contatori 3d system

Collegamento dei componenti

AA contatori configurazione LED array
AA contatori configurazione pulsante

Per questo progetto, utilizzo un pulsante, che seleziono dal menù componenti Imput, con la funzione di simulare la fotocellula, e un LED_array, che seleziono dal menù componenti Output.

componenti

inserisco i componenti in 3D System panel.

La scelta, del basic_switch, anziché il pulsante di tipo Push, che dovrebbe essere premuto ogni volta per simulare il passaggio dell’oggetto che attraversa la fotocellula, ha il vantaggio che una volta premuto, lo stato del pulsante rimane attivo (livello logico 1) finché non è nuovamente premuto, pertanto il conteggio prosegue senza doverlo premere continuamente.

Per questo progetto, è necessario utilizzare due variabili: una variabile associata al pulsante, che chiamo push, che può avere lo stato logico 0 (zero) oppure 1, pertanto sarà di tipo Bool, con il valore iniziale impostato a 0 (zero) e una variabile che chiamo contatore, che contiene il numero di volte che il pulsante è premuto.

AA contatori diagramma di flusso

Nel disegno, due oggetti variano il loro stato: la fotocellula e il contatore; a questi oggetti attribuisco le variabili “push” e “contatore”.

Al pulsante attribuisco la variabile di tipo Bool che chiamo “push”.

Al contatore attribuisco la variabile di tipo byte che chiamo “contatore”.

Utilizzo un pulsante normalmente aperto che, quando è premuto, simula il passaggio dell’oggetto che interrompe il flusso luminoso.

Per visualizzare il numero di oggetti che attraversano il contatore, utilizzo 8 LED (LED array) che si accendono in progressione binaria; partendo dalla situazione 00000000 (zero pezzi) alla situazione 11111111 (255 pezzi).

    • 0 0 0 0 0 0 0 0      0
    • 0 0 0 0 0 0 0 1      1
    • 0 0 0 0 0 0 1 0      2
    • 0 0 0 0 0 0 1 1
    • 0 0 0 0 0 1 0 0      4
    • 0 0 0 0 0 1 0 1
    • 0 0 0 0 0 1 1 0
    • 0 0 0 0 0 1 1 1
    • 0 0 0 0 1 0 0 0      8
    • 0 0 0 1 0 0 0 0     16
    • 0 0 1 0 0 0 0 0     32
    • 0 1 0 0 0 0 0 0     64
    • 1 0 0 0 0 0 0 0     128
    • 1 1 1 1 1 1 1 1       255
AA contatori aggiunta variabili

aggiungo le variabili

AA contatori variabili1

Variabile contatore e Variabile push

Pannello Proprietà LED_Array

Pannello Proprietà  basic_switch

Diagramma di Flusso

Riccardo Monti