Realizzazione di grafici sui display LCD 1602 e 2004 - FLProg.

Chi ha detto che i display LCD servono solo per i simboli? Se così fosse, questi display non sarebbero così diffusi nell'ambiente Arduino. Questi display hanno 8 celle per memorizzare i simboli "personalizzati", cioè simboli che puoi disegnare tu stesso, ad esempio, utilizzando vari servizi online come questo: https://maxpromer.github.io/LCD-Character-Creator/. L'array di byte risultante viene inserito nello sketch, inviato al display, e quindi può essere utilizzato utilizzando il comando write().

Nel programma FLProg ho creato due blocchi personalizzati, che ho adattato per funzionare con i blocchi integrati "Display on the chip HD44780". Vediamo come funzionano questi blocchi:

1. FillColumn - riempire colonna. Questo blocco è realizzato in base a due funzioni:

  1. initColumn - per inizializzare i simboli personalizzati. Nota: se si utilizzano simboli personalizzati, prima di visualizzare il riempimento della colonna è necessario chiamare la funzione initColumn(); per caricare i simboli nella memoria del display.
  2. fillColumn - per visualizzare il simbolo desiderato con le relative impostazioni di dimensione e posizione sul display.
fillColumn(<COLUMN>, <ROW>, <HEIGHT>, <MIN_VAL>, <MAX_VAL>, <Input value>);
Argomenti accettati:
  1. <COLUMN> - la numerazione va da sinistra a destra partendo da zero (per il display 2004 sono le colonne da 0 a 19 per il 1602 sono le colonne da 0 a 15). Il valore per l'argomento verrà fornito tramite il parametro COLUMN.
  2. <ROW> - la numerazione va dall'alto verso il basso, partendo da zero (per il display 2004 sono le righe 0, 1, 2, 3 per 1602 sono le righe 0, 1). Il valore per l'argomento verrà fornito tramite il parametro ROW.
  3. <HEIGHT> - altezza verticale della colona. Ovviamente l'altezza + la posizione verticale di partenza non deve superare l'altezza verticale in caratteri del display. Cioè per il 2004 l'altezza massima è 4, per il 1602 la massima è 2. Il valore per l'argomento verrà fornito tramite il parametro HEIGHT.
  4. <MIN_VAL> - valore minimo per riempire la colonna, non verrà riempita al di sotto del valore impostato (tipo di dati da int -32768 a 32767). Il valore per l'argomento verrà fornito tramite il parametro MIN_VAL.
  5. <MAX_VAL> - valore massimo per riempire la colonna, non verrà riempita oltre il valore impostato (tipo di dati int da -32768 a 32767). Il valore per l'argomento verrà fornito tramite il parametro MAX_VAL.
  6. <Input value> - valore per riempire la colonna. Il valore per l'argomento verrà fornito tramite l'input InVal.

2. FillRow - riempire la riga. Anche questo blocco e creato in base a due funzioni:

  1. initRow -  per inizializzare i simboli personalizzati. Nota: se si utilizzano simboli personalizzati, prima di visualizzare il riempimento della riga è necessario chiamare la funzione initRow(); per caricare i simboli nella memoria del display.
  2. fillRow - per visualizzare il simbolo desiderato con le relative impostazioni di dimensione e posizione sul display.
fillRow(<COLUMN_1>, <ROW_1>, <LENGTH>, <Input value>);
Argomenti accettati:
  1. <COLUMN_1> - è responsabile della posizione del punto sinistro della riga, la numerazione va da sinistra a destra partendo da zero (per il display 2004 sono le colonne da 0 a 19 per il 1602 sono le colonne da 0 a 15). Il valore per l'argomento verrà fornito tramite il parametro COLUMN_1.
  2. <ROW_1> -  è responsabile della posizione del punto sinistro della riga, la numerazione va dall'alto verso il basso partendo da zero (per il display 2004 sono le righe 0, 1, 2, 3 per 1602 sono le righe 0, 1). Il valore per l'argomento verrà fornito tramite il parametro ROW_1.
  3. <LENGTH> -  tutta la larghezza della riga in orizzontale. Ovviamente la larghezza + posizione orizzontale di partenza (colonna) non deve superare la larghezza orizzontale del display in caratteri. Il valore per l'argomento verrà fornito tramite il parametro LENGTH.
  4. <Input value> -  un numero da 0 a 100 – percentuale della riga. Qualsiasi valore viene portato nell'intervallo 0-100 utilizzando il blocco integrato "Scala". Il valore per l'argomento verrà fornito tramite l'input InVal.
File FLProg.
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia