Raspberry Pi és una placa basada en processadors d'arquitectura ARM dissenyada per a enginyers electrònics i aficionats. El PI és ara una de les plataformes de desenvolupament de projectes amb més confiança. Amb una velocitat de processador superior i 1 GB de RAM, el PI es pot utilitzar per a molts projectes de gran perfil com el processament d’imatges i l’IoT.
Per fer qualsevol projecte de gran perfil, cal entendre les funcions bàsiques de PI. Cobrirem totes les funcionalitats bàsiques de Raspberry Pi en aquests tutorials. A cada tutorial parlarem d'una de les funcions de PI. Al final d'aquesta sèrie de tutorials de Raspberry Pi, podreu fer projectes de gran perfil vosaltres mateixos. Consulteu els tutorials següents:
- Introducció a Raspberry Pi
- Configuració de Raspberry Pi
- LED intermitent
- Interfície de botons
- Generació PWM
- Control del motor de CC
- Control del motor pas a pas
- Registre de torns d'interfície
- Tutorial ADC de Raspberry Pi
- Control Servomotor
- Teclat capacitiu
En aquest tutorial, controlarem una pantalla LCD de 16x2 mitjançant Raspberry Pi. Connectarem la pantalla LCD als pins GPIO (General Purpose Input Output) de PI per mostrar-hi els caràcters. Escriurem un programa en PYTHON per enviar les ordres adequades a la pantalla LCD mitjançant GPIO i mostrar els caràcters necessaris a la pantalla. Aquesta pantalla serà útil per mostrar els valors del sensor, l'estat de la interrupció i també per mostrar el temps.
Hi ha diferents tipus de pantalles LCD al mercat. La pantalla LCD gràfica és més complexa que la pantalla LCD de 16 x 2. Així doncs, anem a la pantalla LCD de 16x2, fins i tot podeu utilitzar LCD de 16x1 si voleu. El LCD 16x2 té 32 caràcters en total, 16 en la primera línia i altres 16 en la segona línia. JHD162 és un mòdul LCD de 16x2 caràcters LCD. Ja hem interfície LCD 16x2 amb 8051, AVR, Arduino, etc. Podeu trobar tot el nostre projecte relacionat amb LCD 16x2 seguint aquest enllaç.
Discutirem una mica sobre PI GPIO abans d’anar més enllà.
Hi ha 40 pins de sortida GPIO al Raspberry Pi 2. Però de 40, només es poden programar 26 pins GPIO (GPIO2 a GPIO27). Alguns d’aquests pins realitzen algunes funcions especials. Amb GPIO especial deixat de banda, ens queden 17 GPIO.

Hi ha pins de sortida de potència de + 5 V (pin 2 o 4) i + 3,3 V (pin 1 o 17), que serveixen per connectar altres mòduls i sensors. Anem a poder de l'LCD de 16 * 2 a través del rail de +5 V. Podem enviar un senyal de control de + 3,3 V a la pantalla LCD, però per treballar amb la pantalla LCD necessitem alimentar-la + 5 V. La pantalla LCD no funcionarà amb + 3,3 V.
Per obtenir més informació sobre els pins GPIO i les seves sortides actuals, consulteu: LED parpellejant amb Raspberry Pi
Components necessaris:
Aquí fem servir Raspberry Pi 2 Model B amb Raspbian Jessie OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la introducció de Raspberry Pi, a part d’això que necessitem:
- Pins de connexió
- Mòdul LCD de 16 * 2
- Resistència de 1 KΩ (2 peces)
- Olla de 10K
- Condensador de 1000µF
- Taula de pa
Circuit i explicació de treball:

Com es mostra al diagrama de circuits, tenim Raspberry Pi interfície amb pantalla LCD connectant 10 pins GPIO de PI als pins de control i transferència de dades de la pantalla LCD de 16 * 2. Hem utilitzat el pin 21, 20, 16, 12, 25, 24, 23 i 18 de GPIO com a BYTE i hem creat la funció "PORT" per enviar dades a la pantalla LCD. Aquí GPIO 21 és LSB (bit mínim significatiu) i GPIO18 és MSB (bit més significatiu).
El mòdul LCD de 16x2 té 16 pins, que es poden dividir en cinc categories: pins d’alimentació, pins de contrast, pins de control, pins de dades i pins de retroiluminació. Aquí teniu la breu descripció sobre ells:
|
Categoria |
Pin NO. |
Nom del pin |
Funció |
|
Pins d'alimentació |
1 |
VSS |
Pin de terra, connectat a terra |
|
2 |
VDD o Vcc |
Pin de tensió + 5V |
|
|
Pin de contrast |
3 |
V0 o VEE |
Configuració del contrast, connectat a Vcc mitjançant una resistència variable. |
|
Pins de control |
4 |
RS |
Registre Seleccioneu Pin, RS = 0 Mode d'ordres, RS = 1 Mode de dades |
|
5 |
RW |
Pin de lectura / escriptura, RW = 0 mode d'escriptura, RW = 1 mode de lectura |
|
|
6 |
E |
Activa, un pols d’alç a baix ha d’habilitar la pantalla LCD |
|
|
Pins de dades |
7-14 |
D0-D7 |
Pins de dades, emmagatzema les dades que es mostraran a la pantalla LCD o les instruccions d’ordre |
|
Pins de llum de fons |
15 |
LED + o A |
Per alimentar la llum de fons + 5V |
|
16 |
LED- o K |
Terra de llum de fons |
Us recomanem que consulteu aquest article per entendre la pantalla LCD que funciona amb els seus comandaments de pins i hexadecimal.
Analitzarem breument el procés d'enviament de dades a LCD:
1. E es defineix com a alt (activant el mòdul) i RS es defineix com a baix (indicant a la pantalla LCD que estem donant ordres)
2. Donar valor 0x01 al port de dades com a ordre per esborrar la pantalla.
3. E es defineix com a alt (activant el mòdul) i RS es defineix com a alt (indicant a la pantalla LCD que donem dades)
4. Cal mostrar el codi ASCII per als caràcters.
5. E es posa baix (indicant a la pantalla LCD que hem acabat d'enviar dades)
6. Un cop aquest pin E baixa, la pantalla LCD processa les dades rebudes i mostra el resultat corresponent. Per tant, aquest pin està configurat com a alt abans d’enviar dades i es tira cap a terra després d’enviar-les.
Com s'ha dit, enviarem els personatges un darrere l'altre. Els caràcters es donen a LCD mitjançant codis ASCII (American Standard Code for Information Interchange). A continuació es mostra la taula de codis ASCII. Per exemple, per mostrar un caràcter "@", hem d'enviar un codi hexadecimal "40". Si donem valor 0x73 a la pantalla LCD mostrarà "s". Així, enviarem els codis adequats a la pantalla LCD per mostrar la cadena " CIRCUITDIGEST ".

Explicació de la programació:
Un cop tot estigui connectat segons el diagrama del circuit, podem activar el PI per escriure el programa en PYHTON.
Parlarem de poques ordres que farem servir al programa PYHTON, Importarem un fitxer GPIO de la biblioteca, la funció següent ens permet programar pins GPIO de PI. També estem canviant el nom de "GPIO" per "IO", de manera que al programa sempre que vulguem referir-nos als pins GPIO utilitzarem la paraula "IO".
importar RPi.GPIO com a IO
De vegades, quan els pins GPIO, que estem intentant utilitzar, poden estar fent algunes altres funcions. En aquest cas, rebrem avisos mentre executem el programa. L'ordre següent indica al PI que ignori les advertències i que continuï amb el programa.
IO.setwarnings (fals)
Podem referir els pins GPIO de PI, ja sigui pel número de pin a bord o pel seu número de funció. Igual que el "PIN 29" al tauler és "GPIO5". Així doncs, aquí expliquem que aquí representarem el passador per "29" o "5".
IO.setmode (IO.BCM)
Estem configurant 10 pins GPIO com a pins de sortida per als pins de dades i control de LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
mentre que 1: l' ordre s'utilitza com a bucle per sempre, amb aquesta ordre les instruccions dins d'aquest bucle s'executaran contínuament.
Totes les altres funcions i ordres s'han explicat a la secció "Codi" següent amb l'ajut de "Comentaris".
Després d’escriure el programa i executar-lo, el Raspberry Pi envia caràcters a LCD un per un i el LCD mostra els caràcters a la pantalla.
