- Afișaj cu șapte segmente:
- Componente necesare:
- Circuit și explicație de lucru:
- Explicație de programare:
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 învăța Raspberry Pi și puteți face proiecte bune de unul singur. Parcurgeți tutorialele de mai jos:
- Noțiuni introductive despre Raspberry Pi
- Configurare Raspberry Pi
- LED intermitent
- Interfața butoanelor
- Generație Raspberry Pi PWM
- Interfață LCD cu Raspberry Pi
- 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 face interfața de afișare a segmentului Raspberry Pi 7. Ecranele cu șapte segmente sunt cele mai ieftine pentru o unitate de afișare. Câteva dintre aceste segmente aranjate împreună ar putea fi utilizate pentru a afișa temperatura, valoarea contorului etc. Vom conecta unitatea de afișare pe 7 segmente la GPIO de PI și le vom controla pentru a afișa cifrele în consecință. După aceea, vom scrie un program în PYTHON pentru afișarea a șapte segmente la numărări de la 0 la 9 și se resetează la zero.
Afișaj cu șapte segmente:
Există diferite tipuri și dimensiuni de afișaje pe 7 segmente. Am acoperit Seven Segment lucrând în detaliu aici. Practic există două tipuri de 7 segmente, tip anod comun (pozitiv comun sau VCC comun) și tip catod comun (negativ comun sau teren comun).
Anod comun (CA): În aceasta toate terminalele negative (catodul) tuturor celor 8 LED-uri sunt conectate împreună (a se vedea diagrama de mai jos), denumite COM. Și toate terminalele pozitive sunt lăsate în pace.
Catod comun (CC): în aceasta toate terminalele pozitive (anodii) ale tuturor celor 8 LED-uri sunt conectate împreună, denumite COM. Și toate termicele negative sunt lăsate în pace.
Aceste afișaje cu șapte segmente CC și CA sunt foarte utile, în timp ce multiplexează mai multe celule împreună. În tutorialul nostru vom utiliza afișajul CC sau Common Catode Seven Segment.
Am interfațat deja segmentul 7 cu 8051, cu Arduino și cu AVR. Am folosit, de asemenea, afișaj pe 7 segmente în multe dintre proiectele noastre.
Vom discuta puțin despre Raspberry Pi GPIO înainte de a merge mai departe, Există 40 de pini de ieșire GPIO în Raspberry Pi 2. Dar din 40, doar 26 de pini GPIO (GPIO2 până la GPIO27) pot fi programați, vezi figura de mai jos. Unele dintre aceste pini îndeplinesc unele funcții speciale. Cu GPIO special pus deoparte, mai avem 17 GPIO.
Semnalul GPIO (pin 1 sau 17) + 3,3V este suficient pentru a conduce afișajul cu 7 segmente. Pentru a furniza limita de curent, vom folosi rezistență de 1KΩ pentru fiecare segment așa cum se arată în schema de circuite.
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
- Afișaj comun al segmentului catodic 7 (LT543)
- Rezistor 1KΩ (8 bucăți)
- Breadboard
Circuit și explicație de lucru:
Conexiunile, care se fac pentru afișarea segmentului Interfacing 7 la Raspberry Pi, sunt date mai jos. Am folosit segmentul Common Cathode 7 aici:
PIN1 sau e ------------------ GPIO21
PIN2 sau d ------------------ GPIO20
PIN4 sau c ------------------ GPIO16
PIN5 sau h sau DP ---------- GPIO 12 // nu este obligatoriu deoarece nu folosim punct zecimal
PIN6 sau b ------------------ GPIO6
PIN7 sau un ------------------ GPIO13
PIN9 sau f ------------------ GPIO19
PIN10 sau g ---------------- GPIO26
PIN3 sau PIN8 ------------- conectat la masă
Deci vom folosi 8 pini GPIO de PI ca PORT pe 8 biți. Aici GPIO13 este LSB (cel mai puțin semnificativ bit) și GPIO 12 este MSB (cel mai semnificativ bit).
Acum, dacă dorim pentru a afișa numărul „1“, avem nevoie de segmente de putere B și C. Pentru a alimenta segmentele B și C, trebuie să alimentăm GPIO6 și GPIO16. Deci octetul pentru funcția „PORT” va fi 0b00000110, iar valoarea hexagonală a „PORT” va fi 0x06. Cu ambii știfturi înalți, afișăm „1”.
Am scris valorile pentru fiecare cifră care trebuie afișată și stocate acele valori într-un șir de caractere numit „DISPLAY” (Verificați secțiunea Cod de mai jos). Apoi am apelat acele valori una câte una pentru a afișa cifra corespunzătoare pe afișaj, folosind funcția „PORT”.
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 8 pini GPIO ca pini de ieșire, pentru pini de date și de control de pe LCD.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
În cazul în care condiția din paranteze este adevărată, instrucțiunile din buclă vor fi executate o singură dată. Deci, dacă bitul de „pin” pe 8 biți este adevărat, PIN13 va fi ÎNALT, altfel PIN13 va fi scăzut. Avem opt condiții „dacă altceva” pentru bit0 la bit7, astfel încât LED-ul adecvat, în interiorul afișajului pe 7 segmente, să poată fi făcut High sau Low, pentru a afișa numărul corespunzător.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Această comandă execută bucla de 10 ori, x fiind incrementat de la 0 la 9.
pentru x în intervalul (10):
Comanda de mai jos este utilizată ca buclă pentru totdeauna, cu această comandă instrucțiunile din această buclă vor fi executate continuu.
În timp ce 1:
Toate celelalte funcții și comenzi au fost explicate în secțiunea „Cod” de mai jos cu ajutorul „Comentarii”.
După scrierea și executarea programului, Raspberry Pi declanșează GPIO-urile corespunzătoare pentru a afișa cifra pe afișajul pe 7 segmente. Programul este scris pentru ca afișajul să conteze de la 0 la 9 continuu.