Raspberry Pi è una scheda basata su processore con architettura ARM progettata per ingegneri elettronici e hobbisti. Il PI è una delle piattaforme di sviluppo di progetti più affidabili attualmente disponibili. Con una maggiore velocità del processore e 1 GB di RAM, il PI può essere utilizzato per molti progetti di alto profilo come l'elaborazione delle immagini e l'IoT.
Per fare uno qualsiasi dei progetti di alto profilo, è necessario comprendere le funzioni di base di PI. Tratteremo tutte le funzionalità di base di Raspberry Pi in questi tutorial. In ogni tutorial discuteremo una delle funzioni di PI. Alla fine di questa serie di tutorial su Raspberry Pi, sarai in grado di realizzare progetti di alto profilo da solo. Segui i tutorial seguenti:
- Guida introduttiva a Raspberry Pi
- Configurazione Raspberry Pi
- LED lampeggiante
- Interfacciamento dei pulsanti
- Generazione PWM
- Controllo del motore CC
- Controllo motore passo-passo
- Registro a scorrimento interfacciato
- Tutorial ADC Raspberry Pi
- Controllo servomotore
- Touch pad capacitivo
In questo tutorial, controlleremo un display LCD 16x2 utilizzando Raspberry Pi. Collegheremo l'LCD ai pin GPIO (General Purpose Input Output) di PI per visualizzare i caratteri su di esso. Scriveremo un programma in PYTHON per inviare i comandi appropriati all'LCD tramite GPIO e visualizzare i caratteri necessari sul suo schermo. Questa schermata tornerà utile per visualizzare i valori del sensore, lo stato di interruzione e anche per visualizzare l'ora.
Esistono diversi tipi di LCD sul mercato. L'LCD grafico è più complesso dell'LCD 16x2. Quindi qui stiamo andando per il display LCD 16x2, puoi anche usare LCD 16x1 se vuoi. LCD 16x2 ha 32 caratteri in totale, 16 in 1 ° linea e un altro 16 in 2 ° linea. JHD162 è un LCD con caratteri del modulo 16x2. Abbiamo già interfacciato LCD 16x2 con 8051, AVR, Arduino ecc. Puoi trovare tutti i nostri progetti relativi a LCD 16x2 seguendo questo link.
Discuteremo un po 'di PI GPIO prima di andare oltre.
Ci sono 40 pin di uscita GPIO in Raspberry Pi 2. Ma su 40, è possibile programmare solo 26 pin GPIO (da GPIO2 a GPIO27). Alcuni di questi pin svolgono alcune funzioni speciali. Con GPIO speciale messo da parte, abbiamo 17 GPIO rimanenti.
Sulla scheda sono presenti pin di uscita di alimentazione + 5V (Pin 2 o 4) e + 3.3V (Pin 1 o 17), per il collegamento di altri moduli e sensori. Alimenteremo l'LCD 16 * 2 tramite la guida + 5V. Possiamo inviare un segnale di controllo di + 3,3 V all'LCD ma per il funzionamento dell'LCD dobbiamo alimentarlo di + 5V. Il display LCD non funzionerà con + 3,3 V.
Per saperne di più sui pin GPIO e sulle loro uscite correnti, passare a: LED lampeggiante con Raspberry Pi
Componenti richiesti:
Qui stiamo usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi, oltre a quello di cui abbiamo bisogno:
- Perni di collegamento
- Modulo LCD 16 * 2
- Resistenza da 1KΩ (2 pezzi)
- Pentola da 10K
- Condensatore da 1000µF
- Breadboard
Circuito e spiegazione di lavoro:
Come mostrato nello schema del circuito, abbiamo interfacciato Raspberry Pi con display LCD collegando 10 pin GPIO di PI ai pin di controllo e trasferimento dati dell'LCD 16 * 2. Abbiamo usato GPIO Pin 21, 20, 16, 12, 25, 24, 23 e 18 come BYTE e abbiamo creato la funzione 'PORT' per inviare dati a LCD. Qui GPIO 21 è LSB (Least Significant Bit) e GPIO18 è MSB (Most Significant Bit).
Il modulo LCD 16x2 ha 16 pin, che possono essere suddivisi in cinque categorie, pin di alimentazione, pin di contrasto, pin di controllo, pin dati e pin retroilluminazione. Ecco la breve descrizione su di loro:
Categoria |
Pin NO. |
Nome pin |
Funzione |
Pin di alimentazione |
1 |
VSS |
Pin di terra, collegato a terra |
2 |
VDD o Vcc |
Pin di tensione + 5V |
|
Perno di contrasto |
3 |
V0 o VEE |
Regolazione del contrasto, collegata a Vcc tramite una resistenza variabile. |
Pin di controllo |
4 |
RS |
Registro Seleziona Pin, RS = 0 Modalità comando, RS = 1 Modalità dati |
5 |
RW |
Pin di lettura / scrittura, RW = 0 Modalità di scrittura, RW = 1 Modalità di lettura |
|
6 |
E |
Abilita, un impulso da alto a basso deve abilitare l'LCD |
|
Pin dati |
7-14 |
D0-D7 |
Pin dati, memorizza i dati da visualizzare sul display LCD o le istruzioni di comando |
Perni di retroilluminazione |
15 |
LED + o A |
Per alimentare la retroilluminazione + 5V |
16 |
LED o K |
Retroilluminazione a terra |
Si consiglia vivamente di leggere questo articolo per comprendere il funzionamento dell'LCD con i suoi pin e comandi esadecimali.
Discuteremo brevemente il processo di invio dei dati a LCD:
1. E è impostato alto (abilita il modulo) e RS è impostato basso (indica a LCD che stiamo dando il comando)
2. Assegnare il valore 0x01 alla porta dati come comando per cancellare lo schermo.
3. E è impostato alto (abilita il modulo) e RS è impostato alto (indica a LCD che stiamo fornendo dati)
4. È necessario visualizzare il codice ASCII per i caratteri.
5. E è impostato su un valore basso (indica a LCD che abbiamo finito di inviare i dati)
6. Una volta che questo pin E diventa basso, il display LCD elabora i dati ricevuti e mostra il risultato corrispondente. Quindi questo pin è impostato su alto prima di inviare i dati e abbassato a terra dopo l'invio dei dati.
Come detto invieremo i personaggi uno dopo l'altro. I caratteri sono forniti all'LCD da codici ASCII (codice standard americano per l'interscambio di informazioni). La tabella dei codici ASCII è mostrata di seguito. Ad esempio, per mostrare un carattere "@", dobbiamo inviare un codice esadecimale "40". Se diamo valore 0x73 al display LCD, verrà visualizzato "s". In questo modo invieremo i codici appropriati al display LCD per visualizzare la stringa " CIRCUITDIGEST ".
Spiegazione della programmazione:
Una volta che tutto è collegato come da schema elettrico, possiamo accendere il PI per scrivere il programma in PYHTON.
Parleremo di alcuni comandi che useremo nel programma PYHTON, Stiamo per importare il file GPIO dalla libreria, la funzione sottostante ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO".
importa RPi.GPIO come IO
A volte, quando i pin GPIO, che stiamo cercando di utilizzare, potrebbero svolgere altre funzioni. In tal caso, riceveremo avvisi durante l'esecuzione del programma. Il comando seguente indica al PI di ignorare gli avvisi e procedere con il programma.
IO.setwarnings (False)
Possiamo fare riferimento ai pin GPIO di PI, sia per numero di pin a bordo che per numero di funzione. Come il "PIN 29" sulla scheda è "GPIO5". Quindi diciamo qui o rappresenteremo il pin qui con "29" o "5".
IO.setmode (IO.BCM)
Stiamo impostando 10 pin GPIO come pin di uscita, per i pin dati e di controllo dell'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 1: comando è usato come ciclo per sempre, con questo comando le istruzioni all'interno di questo ciclo verranno eseguite continuamente.
Tutte le altre funzioni e comandi sono stati spiegati nella sezione "Codice" di seguito con l'aiuto di "Commenti".
Dopo aver scritto il programma e averlo eseguito, il Raspberry Pi invia i caratteri all'LCD uno per uno e l'LCD visualizza i caratteri sullo schermo.