Keypad/Tastierino, inserimento codici ASCII

L’utilizzo del tastierino e di un display LCD, permette di inserire e visualizzare un determinato numero di caratteri ASCII, che convertiti in un numero intero o in una stringa, può essere utilizzato per impostare un temporizzatore o il codice di apertura di un sistema di allarme.

tastierino + LCD

Componenti da inserire nel 3D System o nella DashBoard

 

  • Seleziono il display LCDI2C dal menu “Display” e lo collego ai pins 4 e 5 della porta C.
  • Seleziono il Keypad_3x4 da menu “Inputs”.e lo collego alla porta B.

 

 

tastierino inserimento 1

Variabili

  • Keypremuto:variabile di tipo byte, memorizza il tasto premuto.
  • totale: variabile di tipo UInt; contiene il totale dei numeri inseriti.
  • totstr[4:variabile di tipo stringa; contiene  4 caratteri inseriti con keypremuto
  • Count:variabile di tipo byte; incrementa Switch case.
  • A,B,C,D: variabili di tipo byte; contengono il valore numerico di Keypremuto.
  • LCDI2C1:: Start
  • iniziallizzazione LCD
  • LCDI2C1:: Cursor 0,0
  • punto inserimento testo

PrintString ”Set”

la libreria ComponentMacro, “Keypremuto = keypad_3x4:GetNumber” in funzione di keypremuto

inserisce il carattere ASCII corrispondente al tasto premuto

tastierino inserimento 2

keypremuto<>255: controlla se è stato inserito un numero compreso tra zero e 255.

Count = Count + 1

il valore di “count”, incrementa la posizione in Switch Case

Il carattere associato alla variabile “Keypremuto”, è visualizzato sul display LCD nell’ordine stabilito con Switch Case.

tastierino inserimento 3

la condizione “Switch Case”, ha quattro differenti rami.

ciascun ramo contiene le condizioni per acquisire “keypremuto” e visualizzarlo , in sequenza, sul display LCD.

LCDI2C1:: Cursor 10,0

PrintNumber(keypremuto)

A = keypremuto

Delay = 200 ms

tastierino inserimento 4

Cursor 11,0

Cursor 12,0

Cursor 13,0

B

C

D

i quattro rami di “Switch Case”, contengono il valore di “ Keypremuto” nell’ordine in cui tasti sono premuti

tastierino inserimento 5

La condizione, “if Count = 5”,  controlla se il tasto premuto è il numero 35, corrispondente al carattere “#” presente sul tastierino; se la condizione è verificata, il display si resetta.

 [ A]: A

ConnectionPoint

Count = 5

GetAscii()

Keypremuto

if Keypremuto = 35

LCDI2C - Clear

GoTo:  A

La condizione “if Keypremuto = 35”, conduce all’istruzione “LCDI2C: Clear()” che pulisce il display LCD, seguito dalla istruzione “GoTo: A”, che invia il programma all’inizio, scrivendo nuovamente il testo “Set” e incominciando il ciclo principale dall’inizio.

tastierino inserimento 6

Se il tasto premuto non è il 35 (#), il programma prosegue con l’istruzione Calcolo:

Totale = A*1000 + D*100 + D*10 + D*1

Sommando i quattro numeri inseriti con “Keypremuto”, ottenendo un numero intero di quattro cifre.

Il programma prosegue ripulendo il display con l’istruzione  “LCDI2C :: Clear()”, seguita da “Cursor (0,0) “, che posiziona il testo “Conteggio” all’inizio della riga zero del display, con l’istruzione “PrintString(“Conteggio”)".

Il programma continua con l’istruzione “Cursor (0,1) ” visualizzando la stringa ottenuta con la funzione Calcolo:

 “ totstr = Tostring$ (totale) ”

 che converte il numero “totale” in una stringa di quattro caratteri.

Infine l’istruzione “LCDI2C::PrintString(totstr)”, visualizza la stringa sulla posizione iniziale della riga 1.

tastierino inserimento 7

Clear

Cursor 0,0

Cursor 0,1

Per uscire dal programma e consegnare il risultato a un programma successivo, inserisco la funzione “GoTo Connection Point”; B che porta il programma al “ConnectioPoint [B]: B” terminando il ciclo principale.

tastierino inserimento 8

GoTo : B

[B]:B

C Code

rick 3Riccardo Monti