Raspberry Pi este o placă bazată pe procesor de arhitectură ARM, concepută pentru ingineri electronici și pasionați. PI este una dintre cele mai de încredere platforme de dezvoltare a proiectelor de acum. Cu o viteză mai mare a procesorului și 1 GB RAM, PI poate fi utilizat pentru multe proiecte de profil înalt, cum ar fi procesarea imaginilor și IoT.
Pentru realizarea oricăror proiecte de profil, trebuie să înțelegeți funcțiile de bază ale PI. Vom acoperi toate funcționalitățile de bază ale Raspberry Pi în aceste tutoriale. În fiecare tutorial vom discuta una dintre funcțiile PI. Până la sfârșitul acestei serii de tutoriale Raspberry Pi, veți putea face singuri proiecte de profil înalt. Parcurgeți tutorialele de mai jos:
- Noțiuni introductive despre Raspberry Pi
- Configurare Raspberry Pi
- LED intermitent
- Interfața butoanelor
- Generația PWM
- Controlul motorului DC
- Control motor pas cu pas
- Registrul schimbării interfețelor
- Tutorial ADC Raspberry Pi
- Control servomotor
- Touchpad capacitiv
În acest tutorial, vom controla un afișaj LCD de 16x2 folosind Raspberry Pi. Vom conecta LCD-ul la pinii GPIO (General Purpose Input Output) ai PI pentru a afișa caractere pe el. Vom scrie un program în PYTHON pentru a trimite comenzile corespunzătoare pe ecranul LCD prin GPIO și pentru a afișa caracterele necesare pe ecranul acestuia. Acest ecran va fi util pentru a afișa valorile senzorilor, starea întreruperii și, de asemenea, pentru afișarea timpului.
Există diferite tipuri de LCD-uri pe piață. LCD grafic este mai complex decât LCD 16x2. Deci, aici ne propunem pentru afișajul LCD de 16x2, chiar dacă puteți dori să utilizați LCD de 16x1. 16x2 LCD are 32 de caractere în total, 16 în prima linie și alte 16 în a doua linie. JHD162 este LCD LCD de 16x2 caractere. Am interfațat deja 16x2 LCD cu 8051, AVR, Arduino etc. Puteți găsi toate proiectele noastre legate de 16x2 LCD urmând acest link.
Vom discuta puțin despre PI GPIO înainte de a merge mai departe.
Există 40 de pini de ieșire GPIO în Raspberry Pi 2. Dar din 40, pot fi programate doar 26 de pini GPIO (GPIO2 până la GPIO27). Unele dintre aceste pini îndeplinesc unele funcții speciale. Cu GPIO special pus deoparte, mai avem 17 GPIO.
Există pinuri de ieșire de putere + 5V (Pin 2 sau 4) și + 3,3V (Pin 1 sau 17), acestea sunt pentru conectarea altor module și senzori. Vom alimenta LCD-ul de 16 * 2 prin șina + 5V. Putem trimite semnal de control de + 3.3v la LCD, dar pentru funcționarea LCD trebuie să-l alimentăm cu + 5V. Ecranul LCD nu va funcționa cu + 3.3V.
Pentru a afla mai multe despre pinii GPIO și ieșirile lor actuale, accesați: LED-ul intermitent cu Raspberry Pi
Componente necesare:
Aici folosim Raspberry Pi 2 Model B cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducerea Raspberry Pi, altele decât cele de care avem nevoie:
- Pinii de conectare
- Modul LCD 16 * 2
- Rezistor 1KΩ (2 bucăți)
- Ghiveci de 10K
- Condensator 1000µF
- Breadboard
Circuit și explicație de lucru:
Așa cum se arată în schema de circuite, avem Raspberry Pi interfațat cu afișaj LCD prin conectarea a 10 pini GPIO de PI la pini de control și transfer de date 16 * 2 LCD. Am folosit Pinul GPIO 21, 20, 16, 12, 25, 24, 23 și 18 ca BYTE și am creat funcția „PORT” pentru a trimite date la LCD. Aici GPIO 21 este LSB (cel mai puțin semnificativ bit) și GPIO18 este MSB (cel mai semnificativ bit).
Modulul LCD 16x2 are 16 pini, care pot fi împărțiți în cinci categorii, pini de alimentare, pini de contrast, pini de control, pini de date și pini de iluminare din spate. Iată o scurtă descriere despre acestea:
Categorie |
PIN nr. |
Nume PIN |
Funcţie |
Pinii de alimentare |
1 |
VSS |
Pinul de masă, conectat la masă |
2 |
VDD sau Vcc |
Pin de tensiune + 5V |
|
Pin de contrast |
3 |
V0 sau VEE |
Setarea contrastului, conectat la Vcc completează un rezistor variabil. |
Pinii de control |
4 |
RS |
Înregistrare Selectare Pin, RS = 0 Mod comandă, RS = 1 Mod date |
5 |
RW |
Citire / Scriere pin, RW = 0 Mod scriere, RW = 1 Mod citire |
|
6 |
E |
Activați, pentru a activa ecranul LCD este nevoie de un impuls de la mare la mic |
|
Pinii de date |
7-14 |
D0-D7 |
Pinii de date, stochează datele care trebuie afișate pe ecranul LCD sau instrucțiunile de comandă |
Pinii de iluminare din spate |
15 |
LED + sau A |
Pentru a alimenta iluminarea din spate + 5V |
16 |
LED- sau K |
Teren de iluminare din spate |
Vă recomandăm cu tărie să parcurgeți acest articol pentru a înțelege ecranul LCD care funcționează cu comenzile sale Pin și Hex.
Vom discuta pe scurt procesul de trimitere a datelor către LCD:
1. E este setat ridicat (activarea modulului) și RS este setat scăzut (indicând ecranului LCD că dăm comanda)
2. Oferind valoarea 0x01 portului de date ca o comandă pentru a șterge ecranul.
3. E este setat ridicat (activarea modulului) și RS este setat ridicat (indicând pe LCD că dăm date)
4. Trebuie afișat codul ASCII pentru caractere.
5. E este setat scăzut (indicând ecranului LCD că am terminat de trimis date)
6. Odată ce acest pin E scade, ecranul LCD prelucrează datele primite și arată rezultatul corespunzător. Deci, acest pin este setat la mare înainte de trimiterea datelor și tras în jos după trimiterea datelor.
După cum am spus, vom trimite personajele unul după altul. Cele Caracterele sunt date LCD de coduri ASCII (Codul standard american pentru schimbul de informații). Tabelul codurilor ASCII este prezentat mai jos. De exemplu, pentru a afișa un caracter „@”, trebuie să trimitem un cod hexazecimal „40”. Dacă acordăm valoare 0x73 LCD-ului, acesta va afișa „s”. Astfel vom trimite codurile corespunzătoare pe ecranul LCD pentru a afișa șirul „ CIRCUITDIGEST ”.
Explicație de programare:
Odată ce totul este conectat conform schemei circuitului, putem porni PI pentru a scrie programul în PYHTON.
Vom vorbi despre câteva comenzi pe care le vom folosi în programul PYHTON, Vom importa fișierul GPIO din bibliotecă, funcția de mai jos ne permite să programăm pinii GPIO ai PI. De asemenea, redenumim „GPIO” în „IO”, așa că în program ori de câte ori dorim să ne referim la pinii GPIO vom folosi cuvântul „IO”.
import RPi.GPIO ca IO
Uneori, când pinii GPIO, pe care încercăm să îi folosim, ar putea să îndeplinească alte funcții. În acest caz, vom primi avertismente în timpul executării programului. Comanda de mai jos îi spune PI să ignore avertismentele și să continue programul.
IO.setwarnings (Fals)
Putem consulta pinii GPIO ai PI, fie prin numărul pinului la bord, fie prin numărul funcției lor. La fel ca „PIN 29” de pe tablă este „GPIO5”. Deci, spunem aici fie că vom reprezenta pinul aici cu „29” sau „5”.
IO.setmode (IO.BCM)
Setăm 10 pini GPIO ca pini de ieșire, pentru pini de date și de control de pe 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)
în timp ce comanda 1: este utilizată ca buclă pentru totdeauna, cu această comandă instrucțiunile din această buclă vor fi executate continuu.
Toate celelalte funcții și comenzi au fost explicate în secțiunea „Cod” de mai jos cu ajutorul „Comentarii”.
După ce ați scris programul și l-ați executat, Raspberry Pi trimite caractere pe LCD unul câte unul, iar LCD-ul afișează caracterele pe ecran.