Contatore decimale a 4 cifre

contatore singolo display
Sostituire  Macro component
Led_7seg1 con led_7seg_quad

dal pannello “properties”,configurare il display quadruplo, selezionando le porte e i Pin, disponibili in Arduino UNO.

Dovendo gestire 4 cifre, che rappresentano, rispettivamente: unità, decine, centinaia e migliaia, da “project explorer”, creo 4 variabili,  che chiamerò, per facilitare la lettura del programma, con il nome che rappresenta:

in Project explorer, definisco la variabile  “unità” .

dal pannello “Properties Macro”, seleziono “ShowDigit” e imposto i Parametri.

    • Digit  -  tipo BYTE expression:il numero “3”, indica la prima cifra a destra.
    • Value - tipo BYTE unita; rappresenta l’unità.
    • DecimalPoint - tipo BYTE : 0, il punto decimale è spento.

 senza accento sulla “a” finale, perché il carattere accentato non è valido in Flowcode.

contatore numerico quad Macrocomponent

allo stesso modo :

  • il valore della espressione =  2 per la variabile “decine”; seconda cifra da  destra.
  • il valore della espressione =  1 per la variabile “centinaia”; terza cifra da destra.
  • il valore della espressione =  0 per la variabile “migliaia”; quarta cifra da destra.
contatore numerico quad var decine1
contatore numerico quad var migliaia
contatore numerico quad var centinaia

Variabile migliaia”

Variabile “centinaia”

Variabile “decine”

contatore numerico quad var unità
contatore numerico quad digit centinaio
contatore numerico quad digit migliaia
contatore numerico quad digit decine

Digit  “decine”

Digit  “centinaia”

Digit  “migliaia”

A ogni ciclo del programma, l’espressione [unita = unita + 1], aumenta il valore rappresentato sul primo Digit a destra,

partendo dal valore 0 (zero) fino al valore 9,

qui, la funzione “decisione”, devia il percorso del programma, in modo da azzerare il Digit,e continuare il conteggio ripartendo da zero.

sul secondo Digit, rappresento il valore che ottengo intercettando l’azzeramento del primo Digit.

La funzione “Calcolo”,  con l’espressione [decine = decine + 1], incrementa il valore da 0 a 9,

qui, la funzione “decisione” [decine > 9], azzera la variabile Decine;

pertanto sul display vedremo un conteggio che va da 0 a 99.

 

sul terzo Digit, rappresento il valore che ottengo intercettando l’azzeramento del secondo Digit.

La funzione “Calcolo” , con l’espressione [centinaia = centinaia + 1], incrementa il valore da 0 a 9.

Qui, la funzione “decisione”, [centinaia > 9], azzera la variabile centinaia;

pertanto sul display vedremo un conteggio che va da 0 a 999.

contatore numerico quad ciclo decine centinaia
contatore numerico quad ciclo unita decine

sul quarto Digit, rappresento il valore che ottengo intercettando l’azzeramento del terzo Digit.

La funzione “Calcolo”  con l’espressione [migliaia = migliaia + 1], incrementa il valore da 0 a 9.

Qui la funzione “decisione” [migliaia > 9], azzera la variabile migliaia;

pertanto sul display vedremo un conteggio che va da 0 a 9999.

contatore numerico quad ciclo  migliaia

Proseguendo in questo modo, è possibile gestire anche un numero maggiore di Digit.

ciclo di passaggio del contaggio da un digit al successivo

Visualizzazione del programma in codice C

contatore numerico quad aRDUINO

Partendo dal programma contatore decimale a 1 digit (una singola cifra).

Elimino da 3d system panel il display singolo, sostituendolo con il display quadruplo.

Elimino la macro di gestione led_7seg1 sostituendola con led_7seg_quad.

filmato del programma contatore con 4 digit

Aggiungo il Macro Component, ”led_7seg_quad”, per ogni digit (numero visualizzato sul display).

Creo le variabili unità, decine, centinaia e migliaia, che assegno come valore (Value) in ShowDigit, a ciascun delle 4 cifre del display quadruplo.

Per ogni Digit, assegno al punto decimale (decimalpoint) il valore 0: punto decimale spento.

contatore numerico quad digit unita

VARIABILI

contatore numerico quad pin display
contatore numerico quad block

rappresentazione in Block Mode

La rappresentazione “Block Mode” permette una lettura facilitata del programma.

In giallo, è rappresentata la parte “multiplexata” del display, con i valori di Showdigit per ciascun digit del quadruplo display.

ShowDigit (3, unita, 0): indica che il primo digit di destra, rappresenta le “Unità” senza il punto decimale.

 

In azzurro, è rappresentato il ciclo “Unità”, che incrementa le “decine”, al superamento di nove conteggi.

codice sorgente in C

contatore numerico quad alternativo

Programma alternativo

La funzione “Decisione”, che controlla se la variabile è azzerata, può essere sostituita con un ciclo di “Delay”.

 Counter Quad Display Flowcode

Riccardo Monti