ultimo aggiornamento 4 giugno 2009 |
La scheda di controllo di
RoboZak denominata
MR-C3024
è dotata di un'apposita porta per il collegamento di un display LCD.
Questa porta utilizza il comando PRINT del
Robobasic per mostrare
dei testi rappresentati da stringhe.
Il display può inoltre essere utilizzato per verificare i valori letti
dai sensori quali:
luce,
prossimità,
suono,
accelerometro e altri.
La Hitec, produttrice del robot, fornisce un display dedicato con 2 linee
per 16 caratteri.
Ma come vedrete si può anche utilizzare un display che potrete
autocostruire.
La posizione della porta LCD è visibile nella figura sotto riportata.
In pratica è
rappresentata da una porta seriale il cui accesso è effettuato tramite
RoboBasic.
La porta è pre configurata con questi parametri di collegamento: 4800
baud, 8 databits, 1 stopbit, nessuna parità.
I segnali sono TTL con 5 volt di livello logico.
Segnalazione come argomento caldo del forum
LCD seriale per Robozak
Per questo motivo occorre utilizzare un circuito di comando del display
LCD compatibile con questo livello di tensione.
Quando si vorrà utilizzare il display occorrerà inserire nel programma
RoboBasic l'istruzione LCDINIT che aprirà la porta LCD.
Per scrivere sul display si utilizzerà l'istruzione PRINT, si potrà
inoltre utilizzare il comando PRINT FORMAT ().
A fine pagina sono riportati alcuni esempi di programmi.
'====================================== ' LCD.bas ' Esempio utilizzo LCD seriale ' 4800 baud, 8 databits, 1 stopbit, no parity ' di Adriano Gandolfo ' www.adrirobot.it '====================================== DELAY 3000 'Pausa iniziale LCDINIT 'inizializzazione porta LCD PRINT "&$" 'Cancellazione LCD DELAY 100 'Pausa PRINT "1 Adrirobot.it #$" 'Scrittura prima linea DELAY 100 'Pausa PRINT "2 ROBOZAK #$" 'Scrittura seconda linea DELAY 100 'Pausa END 'Fne programma |
Versione realizzata da landyandy
Il modulo è basato su un
progetto
presente sul sito francese
http://kudelsko.free.fr/.
e permette la gestione di un comune modulo LCD
del tipo HD44780 compatibile.
La comunicazione avviene tramite una linea seriale, la
decodifica e il pilotaggio del display LCD avviene tramite un
PIC 16F628
opportunamente programmato.
LCD può essere pilotato tramite un flusso di dati con una velocità di:2400,
4800, 9600, 19200 baud 8 bit, no parity, 1 bit stop.
La velocità si varia modificando la
posizione dei DIP.
Il collegamento con la scheda avviene tramite un connettore analogo a quello
dei servo (+5V, GND, Sig).
La sintassi per l'invio dei comandi è molto semplice.
PRINT "&$"
PRINT "1XXXXXXXXXXXXXXXX#$"
PRINT "2XXXXXXXXXXXXXXXX#$"
dove:
"&$" cancella il display
"1XXXXXXXXXXXXXXXX#$" scrive sulla prima riga del display
"2XXXXXXXXXXXXXXXX#$" scrive sulla seconda riga del display
Display LCD - fasi di montaggio
|
---|
Circuito stampato e disposizione componenti
Per la costruzione si procederà iniziando dalla realizzazione del circuito stampato il cui
disegno lato rame è visibile sopra
Per la sua realizzazione si utilizzerà una basetta in vetronite
(monofaccia) di dimensioni di circa 41x44 mm, il metodo potrà essere quello della
fotoincisione o del trasferimento termico utilizzando i cosiddetti fogli
blu (PRESS-N-PELL)
Una volta inciso il rame, si verificherà in controluce o mediante
l’utilizzo di un multimetro che non vi siano cortocircuiti soprattutto
tra le piste più vicine.
Si passerà quindi alla foratura della stessa, utilizzando principalmente
una punta da 0,8 mm, mentre si utilizzeranno una dal diametro di 1 mm
per i connettori.
In seguito si potrà passare al posizionamento e alla saldatura dei
componenti seguendo lo schema disposizioe componenti visiobile sopra.
Per la saldatura si utilizzerà un piccolo saldatore a punta fine, della
potenza di circa 25 – 30 W.
S’inizierà dai ponticelli, proseguendo con le resistenze, si passerà poi
allo zoccolo dell'integrato, i
condensatori, e il quarzo.
Si concluderà con i pin-strip e infine con l'interruttore DIL.
Terminato la saldatura si potrà inserire l'integrato IC1 (che deve
essere programmato) nell'apposito
zoccolo facendo attenzione alla tacca di riferimento che andrà rivolta
verso i ponticelli.
Per la programmazione del microcontrollore occorre un apposito programmatore con il suo programma di gestione come ICPROG creato da Bonny GIJZEN.
Configurazione dei microswitchs
La comunicazione con il microcontrollore può
avvenire a quattro diverse velocità (2400, 4800, 9600, 19200 baud).
Per modificare la velocità occorre modificare la configurazione
|
PIC16F628 - FLASH-Based 8-Bit CMOS Microcontrollers | ||
|
||
Piedinatura | Datasheet | Foto dell'integrato |
LCD 16x2 tipo C216L01YBW00 | ||
Piedinatura | Datasheet display C216L01YBW00 | Foto |
Descrizione
Il display a cristalli liquidi o LCD (dall'inglese Liquid Crystal
Display) utilizzato in questo modulo è dotato di 2 linee di 16 caratteri
ciascuna. I display LCD più comuni reperibili in commercio, hanno
un'interfaccia ideata da Hitachi che, nel tempo, è diventata uno
standard industriale utilizzato anche da altre case produttrici.
Funzione dei vari pin del display |
||
PIN |
Nome |
Funzione |
1 |
GND |
Ground – Pin che deve essere collegato al negativo d’alimentazione. |
2 |
VDD |
Power Supply – Pin da collegare a +5V d’alimentazione. |
3 |
Vo |
A questo Pin si deve applicare una tensione variabile da 0 a +5V tramite un trimmer per regolare il contrasto del display. |
4 |
RS |
Register Select – Questo pin è una linea di controllo con cui si comunica al display se si sta inviando sul bus dati (linee da DB0 a DB7) un comando (RS=0) oppure un dato (RS=1). |
5 |
R/W |
Read, Write – Questo pin è un’altra linea di controllo con cui si comunica al display se s’intende inviare un dato al display (R/W=0) oppure leggere un dato dal display (R/W=1). |
6 |
E |
Enable – Questo pin è una linea di controllo con cui si può abilitare il display ed accettare dati ed istruzioni dal bus dati (E=1). |
7 |
DB0 |
Data Bus line 0 – Le linee su cui transitano i dati tra processore e display. |
8 |
DB1 |
Data Bus line 1 |
9 |
DB2 |
Data Bus line 2 |
10 |
DB3 |
Data Bus line 3 |
11 |
DB4 |
Data Bus line 4 |
12 |
DB5 |
Data Bus line 5 |
13 |
DB6 |
Data Bus line 6 |
14 |
DB7 |
Data Bus line 7 |
15 |
A |
Pin per il collegamento della retroilluminazione se presente. |
16 |
K |
Pin per il collegamento della retroilluminazione se presente. |
Dei 16 pin presenti se ne utilizzano
però solamente 7
RS
Register select signal
E
Enable signal
R/W
read/wrwite selection
DB4
Data bit 4
DB5
Data bit 5
DB6
Data bit 6
DB7
Data bit 7
Le linee dati, RS ed E, sono dotati di una resistenza pull-down
per forzare a massa la linea quando non utilizzate.
Il trimmer R6 connesso al pin Vo permette di regolare il
contrasto del LCD.
Programma di prova del display per lettura sensore
'====================================== ' Lettura_accelerometro.bas ' di Adriano Gandolfo ' www.adrirobot.it '====================================== 'Definizione variabili DIM asse_x AS INTEGER DIM asse_y AS INTEGER 'Inizializzazione LCD e 'messaggio iniziale LCDINIT PRINT "&$" DELAY 500 lettura: asse_x=AD(0) 'Il valore letto dalla porta 0 è salvato nella variabile Asse_x asse_y=AD(1) 'Il valore letto dalla porta 1 è salvato nella variabile Asse_Y PRINT "1Asse X=" PRINT FORMAT(Asse_x,DEC,2) ' Viene mostrato il valore letto PRINT "#$" DELAY 100 PRINT "2Asse Y=" PRINT FORMAT(Asse_y,DEC,2) ' Viene mostrato il valore letto PRINT "#$" DELAY 100 GOTO lettura |
'====================================== ' Lettura_sensore.bas ' di Adriano Gandolfo ' www.adrirobot.it '====================================== 'Definizione variabili DIM sensore AS INTEGER 'Inizializzazione LCD e LCDINIT PRINT "&$" DELAY 500 lettura: sensore=AD(0) 'Il valore letto dalla porta 0 è salvato nella variabile PRINT "1Lettura sensore#$" DELAY 100 PRINT "2Valore=" PRINT FORMAT(sensore,DEC,2) ' Viene mostrato il valore letto PRINT "#$" DELAY 100 GOTO lettura |
Elenco revisioni | |
04/06/2009 | Inserito segnalazione di argomento caldo del forum. |
17/03/2009 | Emissione preliminare |