- Syv segment display:
- Nødvendige komponenter:
- Kredsløb og arbejdsforklaring:
- Programmeringsforklaring:
Raspberry Pi er et ARM-arkitekturbaseret kort designet til elektroniske ingeniører og hobbyister. PI er en af de mest pålidelige projektudviklingsplatforme derude nu. Med højere processorhastighed og 1 GB RAM kan PI bruges til mange højprofilerede projekter som billedbehandling og IoT.
For at udføre nogle af højt profilerede projekter skal man forstå de grundlæggende funktioner i PI. Vi vil dække alle de grundlæggende funktioner i Raspberry Pi i disse vejledninger. I hver tutorial vil vi diskutere en af funktionerne i PI. Ved afslutningen af denne Raspberry Pi Tutorials-serie vil du være i stand til at lære Raspberry Pi og lave gode projekter selv. Gå igennem nedenstående vejledninger:
- Kom godt i gang med Raspberry Pi
- Raspberry Pi-konfiguration
- LED Blinkende
- Knapgrænseflade
- Raspberry Pi PWM generation
- LCD-grænseflade med Raspberry Pi
- Styring af jævnstrømsmotor
- Stepper Motor Control
- Interfacing Shift Register
- Raspberry Pi ADC vejledning
- Servomotor kontrol
- Kapacitiv pegefelt
I denne vejledning skal vi lave Raspberry Pi 7-segment-displaygrænseflade. Seven Segment-skærme er de billigste for en displayenhed. Et par af disse segmenter stablet sammen kan bruges til at vise temperatur, modværdi osv. Vi forbinder 7-segmentets displayenhed til GPIO af PI og styrer dem til at vise cifre i overensstemmelse hermed. Derefter skriver vi et program i PYTHON til syv segmentvisning til tæller fra 0-9 og nulstiller sig selv til nul.
Syv segment display:
Der findes forskellige typer og størrelser af 7 segmentskærme. Vi har dækket Seven Segment, der arbejder i detaljer her. Dybest set er der to typer af 7 segmenter, Common Anode type (Common Positive eller Common VCC) og Common Cathode type (Common Negative eller Common Ground).
Fælles anode (CA): I dette er alle de negative terminaler (katode) på alle de 8 lysdioder forbundet (se nedenstående diagram), navngivet som COM. Og alle de positive terminaler er alene.
Fælles katode (CC): I dette er alle de positive terminaler (anoder) på alle de 8 lysdioder forbundet sammen, navngivet som COM. Og alle de negative termikere er alene.
Disse CC- og CA-syv-segmentskærme er meget nyttige, mens de multiplekser flere celler sammen. I vores tutorial bruger vi CC eller Common Cathode Seven Segment Display.
Vi har allerede interfaced 7 segment med 8051, med Arduino og med AVR. Vi har også brugt 7-segmentvisning i mange af vores projekter.
Vi vil diskutere lidt om Raspberry Pi GPIO inden vi går videre, Der er 40 GPIO output pins i Raspberry Pi 2. Men ud af 40 kan kun 26 GPIO-ben (GPIO2 til GPIO27) programmeres, se figuren nedenfor. Nogle af disse ben udfører nogle specielle funktioner. Med særlig GPIO afsat har vi 17 GPIO tilbage.
GPIO'erne (pin 1 eller 17) + 3.3V signal er nok til at drive 7-segment displayet. For at give strømgrænse bruger vi 1KΩ modstand for hvert segment som vist i kredsløbsdiagrammet.
Hvis du vil vide mere om GPIO-ben og deres nuværende output, skal du gå igennem: LED blinker med Raspberry Pi
Nødvendige komponenter:
Her bruger vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion, bortset fra hvad vi har brug for:
- Tilslutningsstifter
- Fælles katode 7 segment display (LT543)
- 1KΩ modstand (8 stykker)
- Brødbræt
Kredsløb og arbejdsforklaring:
Forbindelserne, som er udført til Interfacing 7-segmentvisning til Raspberry Pi, er angivet nedenfor. Vi har brugt Common Cathode 7 Segment her:
PIN1 eller e ------------------ GPIO21
PIN2 eller d ------------------ GPIO20
PIN4 eller c ------------------ GPIO16
PIN5 eller h eller DP ---------- GPIO 12 // ikke obligatorisk, da vi ikke bruger decimaltegn
PIN6 eller b ------------------ GPIO6
PIN7 eller en ------------------ GPIO13
PIN9 eller f ------------------ GPIO19
PIN10 eller g ---------------- GPIO26
PIN3 eller PIN8 ------------- tilsluttet jorden
Så vi bruger 8 GPIO-ben på PI som en 8bit-PORT. Her er GPIO13 at være LSB (mindst signifikant bit) og GPIO 12 at være MSB (mest signifikant bit).
Nu, hvis vi ønsker at vise nummer ”1”, er vi nødt til magten segmenter B og C. For at drive segment B og C er vi nødt til at drive GPIO6 og GPIO16. Så byte for 'PORT' -funktionen vil være 0b00000110, og den hex-værdi af 'PORT' vil være 0x06. Med begge stifter høje får vi “1” på displayet.
Vi har skrevet værdierne for hvert ciffer, der skal vises, og gemt disse værdier i en streng af tegn med navnet 'DISPLAY' (Tjek afsnittet Kode nedenfor). Så har vi kaldt disse værdier en efter en for at vise det tilsvarende ciffer på displayet ved hjælp af funktionen 'PORT'.
Programmeringsforklaring:
Når alt er tilsluttet i henhold til kredsløbsdiagrammet, kan vi tænde PI for at skrive programmet i PYHTON.
Vi vil tale om få kommandoer, som vi skal bruge i PYHTON-programmet, Vi skal importere GPIO-filer fra biblioteket, nedenstående funktion giver os mulighed for at programmere GPIO-ben på PI. Vi omdøber også "GPIO" til "IO", så når vi vil henvise til GPIO-ben i programmet, bruger vi ordet 'IO'.
importer RPi.GPIO som IO
Nogle gange, når GPIO-stifterne, som vi prøver at bruge, udfører måske nogle andre funktioner. I så fald modtager vi advarsler, mens vi udfører programmet. Kommandoen nedenfor fortæller PI at ignorere advarslerne og fortsætte med programmet.
IO.setwarnings (Falsk)
Vi kan henvise GPIO-benene på PI, enten ved pin-nummer om bord eller ved deres funktionsnummer. Ligesom 'PIN 29' på tavlen er 'GPIO5'. Så vi fortæller her, enten skal vi repræsentere stiften her med '29' eller '5'.
IO.setmode (IO.BCM)
Vi indstiller 8 GPIO-stifter som outputstifter til data- og kontrolstifter på LCD.
IO.opsætning (13, IO.OUT) IO.opsætning (6, IO.OUT) IO.opsætning (16, IO.OUT) IO.opsætning (20, IO.OUT) IO.opsætning (21, IO.OUT) IO.opsætning (19, IO.OUT) IO.opsætning (26, IO.OUT) IO.opsætning (12, IO.OUT)
Hvis betingelsen i selerne er sand, vil udsagnene i sløjfen blive udført en gang. Så hvis bit0 af 8bit 'pin' er sand, vil PIN13 være HØJ, ellers vil PIN13 være LAV. Vi har otte 'hvis ellers' betingelser for bit0 til bit7, så passende lysdiode inde i displayet med 7 segmenter kan gøres høj eller lav for at vise det tilsvarende nummer.
hvis (pin & 0x01 == 0x01): IO.output (13,1) ellers: IO.output (13,0)
Denne kommando udfører sløjfen 10 gange, hvor x øges fra 0 til 9.
for x inden for rækkevidde (10):
Nedenstående kommando bruges som evigt løkke, med denne kommando udføres udsagnene inde i denne løb kontinuerligt.
Mens 1:
Alle de andre funktioner og kommandoer er forklaret i afsnittet "Kode" nedenfor ved hjælp af "Kommentarer".
Efter at have skrevet programmet og udført det, udløser Raspberry Pi de tilsvarende GPIO'er for at vise cifret på 7 Segment Display. Programmet er skrevet, så displayet tæller kontinuerligt fra 0-9.