- 7 segmentu un 4 ciparu 7 segmentu displeja modulis:
- 4 ciparu 7 segmentu moduļa savienošana ar Raspberry Pi:
- Raspberry Pi programmēšana:
- Parādīšanas laiks 4 ciparu 7 segmentos, izmantojot Raspberry Pi:
Mēs visi zinām, ka Raspberry Pi ir brīnišķīga attīstības platforma, kuras pamatā ir ARM mikroprocesors. Ar savu lielo skaitļošanas jaudu tas var radīt brīnumus elektronikas hobiju vai studentu rokās. Tas viss ir iespējams tikai tad, ja mēs zinām, kā panākt, lai tas mijiedarbotos ar reālo pasauli, un analizējam datus, izmantojot kādu izvades ierīci. Ir daudz sensoru, kas var noteikt dažus reālā laika parametrus un pārsūtīt tos uz digitālo pasauli, un mēs tos analizējam, tos skatot vai nu LCD ekrānā, vai kādā citā displejā. Bet vienmēr nebūtu ekonomiski izmantot LCD ekrānu ar PI, lai parādītu nelielu datu daudzumu. Šeit mēs vēlamies izmantot 16x2 burtciparu LCD displeju vai 7 segmentu displeju. Mēs jau esam iemācījušies izmantot burtciparu LCD un viena segmenta 7 segmentu displeju ar Raspberry pi. Šodien mēs to darīsimSaskarnes četrciparu septiņu segmentu displeja modulis ar Raspberry Pi un virs tā parādīts laiks.
Lai gan 16x2 burtciparu LCD ir daudz ērtāk nekā 7 segmentu displejs, ir maz scenāriju, kur 7 segmentu displejs būtu noderīgāks nekā LCD displejs. LCD cieš no tā, ka rakstzīmju izmērs ir mazs, un tas būs pārāk liels jūsu projektam, ja jūs tikai plānojat parādīt dažas skaitliskās vērtības. 7 segmentiem ir priekšrocība arī pret sliktu apgaismojumu, un tos var apskatīt no leņķa leņķiem nekā parasts LCD ekrāns. Tātad, sāksim to zināt.
7 segmentu un 4 ciparu 7 segmentu displeja modulis:
7 segmentu displejā ir septiņi segmenti, un katra segmenta iekšpusē ir viena gaismas diode, lai parādītu skaitļus, apgaismojot atbilstošos segmentus. Tāpat kā tad, ja vēlaties, lai 7 segmenti uzrāda skaitli "5", tad jums jāspīd kvēlojošais segments a, f, g, c un d, padarot to atbilstošās tapas augstas. Ir divu veidu 7 segmentu displeji: kopējais katods un kopējais anods, šeit mēs izmantojam kopīgā katoda septiņu segmentu displeju. Uzziniet vairāk par 7 segmentu attēlojumu šeit.
Tagad mēs zinām, kā vēlamo ciparu rakstzīmi attēlot vienā 7 segmentu displejā. Bet ir diezgan skaidrs, ka mums būtu nepieciešams vairāk nekā viens 7 segmentu displejs, lai sniegtu informāciju, kas ir vairāk nekā viens cipars. Tātad šajā apmācībā mēs izmantosim četrciparu 7 segmentu displeja moduli, kā parādīts zemāk.
Kā redzam, ir savienoti četri septiņi segmentu displeji. Mēs zinām, ka katram 7 segmentu modulim būs 10 tapas un četriem septiņiem segmentu displejiem kopā būtu 40 tapas, un ikvienam būtu drudžaini tos lodēt uz punktveida dēļa, tāpēc es ļoti iesaku ikvienam iegādāties moduli vai izveidojiet pats savu PCB četrciparu 7 segmentu displeja izmantošanai. Savienojuma shēma tam pašam ir parādīta zemāk:
Lai saprastu, kā darbojas četrciparu septiņu segmentu modulis, mums ir jāizpēta iepriekš minētās shēmas, kā parādīts, visu četru displeja A tapas ir savienotas, lai savāktu kā vienu A un to pašu B, C…. līdz DP. Tātad, ja aktivizētājs A ir ieslēgts, tad visiem četriem A vajadzētu iet augstu?
Bet tas nenotiek. Mums ir papildu četras tapas no D0 līdz D3 (D0, D1, D2 un D3), kuras var izmantot, lai kontrolētu, kuram displejam no četriem vajadzētu būt augstiem. Piemēram: Ja man vajag, lai mana izeja būtu redzama tikai otrajā displejā, tad tikai D1 būtu jāpadara augsts, turot citus tapas (D0, D2 un D3) tik zemus. Vienkārši mēs varam izvēlēties, kuram displejam ir jābūt aktīvam, izmantojot tapas no D0 līdz D3, un kādu rakstzīmi attēlot, izmantojot tapas no A līdz DP.
4 ciparu 7 segmentu moduļa savienošana ar Raspberry Pi:
Apskatīsim, kā, kā mēs varam savienot šo četrciparu 7 segmentu moduli ar mūsu Raspberry Pi. 7 segmentu modulim ir 16 tapas, kā parādīts zemāk. Iespējams, ka jums ir mazāks moduļa daudzums, taču neuztraucieties, ka tam joprojām būs šādas darbības
- 7 vai 8 segmentu tapas (šeit tapas sākas no 1 līdz 8)
- Zemes tapa (šeit 11. tapa)
- 4 ciparu tapas (šeit tapas no 13 līdz 16)
Zemāk sniegta aveņu pi digitālā pulksteņa shēma, savienojot četrciparu septiņu segmentu displeja moduli ar Raspberry Pi:
Šī tabula arī palīdzēs jums izveidot savienojumus un pārbaudīt, vai tas atbilst iepriekš parādītajām shēmām.
S.No |
Rsp Pi GPIO numurs |
Rsp Pi PIN numurs |
7 segmentu nosaukums |
7 segmentu tapas numurs (šeit, šajā modulī) |
1 |
GPIO 26 |
PIN 37 |
Segments a |
1 |
2 |
GPIO 19 |
PIN 35 |
Segments b |
2 |
3 |
GPIO 13 |
PIN 33 |
Segments c |
3 |
4 |
GPIO 6 |
PIN 31 |
D segments |
4 |
5 |
GPIO 5 |
PIN 29 |
Segments e |
5 |
6 |
GPIO 11 |
PIN 23 |
F. Segments |
6 |
7 |
GPIO 9 |
21. PIN |
Segments g |
7 |
8 |
GPIO 10 |
PIN 19 |
Segmentēt DP |
8 |
9 |
GPIO 7 |
PIN 26 |
1. cipars |
13 |
10 |
GPIO 8 |
PIN 24 |
2. cipars |
14 |
11 |
GPIO 25 |
22. PIN |
3. cipars |
15 |
12 |
GPIO 24 |
PIN 18 |
4. cipars |
16 |
13 |
Zeme |
Zeme |
Zeme |
11 |
Identificējiet tapas savā modulī, un jums ir labi turpināt savienojumus. GPIO tapu pamanīšana Raspberry pi varētu būt mazliet sarežģīts uzdevums, tāpēc es jums sniedzu šo attēlu GPIO tapām.
Raspberry Pi programmēšana:
Šeit mēs izmantojam Python programmēšanas valodu RPi programmēšanai. Ir daudz veidu, kā programmēt savu Raspberry Pi. Šajā apmācībā mēs izmantojam Python 3 IDE, jo tas ir visbiežāk izmantotais. Pilnīga Python programma tiek dota beigās šo pamācību. Uzziniet vairāk par programmu un palaist kodu Raspberry Pi šeit.
Mēs runāsim par dažām komandām, kuras mēs izmantosim PYHTON programmā šim projektam, Vispirms mēs importēsim GPIO failu no bibliotēkas, zemāk esošā funkcija ļauj mums ieprogrammēt PI GPIO tapas. Mēs arī pārdēvējam “GPIO” par “IO”, tāpēc programmā, kad vien mēs vēlamies atsaukties uz GPIO tapām, mēs izmantosim vārdu “IO”. Mēs esam arī importējuši laiku un datuma laiku, lai nolasītu laika vērtību no Rsp Pi.
importēt RPi.GPIO kā GPIO importēšanas laiku, datuma laiku
Dažreiz, kad GPIO tapas, kuras mēs cenšamies izmantot, iespējams, veic citas funkcijas. Tādā gadījumā mēs saņemsim brīdinājumus, izpildot programmu. Zemāk komanda liek PI ignorēt brīdinājumus un turpināt programmu.
IO.setwarnings (False)
Mēs varam atsaukties uz PI GPIO tapām vai nu pēc tapas numura uz kuģa, vai pēc to funkcijas numura. Tāpat kā “PIN 29” uz tāfeles ir “GPIO5”. Tātad mēs šeit sakām, vai nu mēs šeit parādīsim tapu ar “29” vai “5”. GPIO.BCM nozīmē, ka mēs pārstāvēsim 5, izmantojot GPIO5 29. tapu.
IO.setmode (GPIO.BCM)
Kā vienmēr, mums jāsāk ar tapu inicializēšanu, šeit gan segmenta tapas, gan ciparu tapas ir izejas tapas. Programmēšanas nolūkos mēs veidojam segmentu tapu masīvus un pēc deklarēšanas par GPIO inicializējam tos uz “0”.
segments8 = (26,19,13,6,5,11,9,10) segmentam 8. segmentā: GPIO.setup (segments, GPIO.OUT) GPIO.output (segments, 0)
Līdzīgi ciparu tapām mēs tos deklarējam kā izvades tapas un pēc noklusējuma padarām tos “0”
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) # Sākotnēji izslēgts #Digit 2 GPIO.iestatījums (8, GPIO.OUT) GPIO.output (8, 0) #Iz sākotnēji 3 GPIO.iestatīšana (25, GPIO.OUT) GPIO.output (25, 0) # Sākotnēji izslēgts #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) #Off sākotnēji
Mums ir jāveido masīvi, lai katru skaitli parādītu septiņu segmentu displejā. Lai parādītu vienu skaitli, mums ir jākontrolē visi 7 segmentu tapas (izņemot punktveida tapu), tas ir, vai nu tie ir jāizslēdz vai jāieslēdz. Piemēram, lai parādītu skaitli 5, mēs veicam šādu kārtību
S.No |
Rsp Pi GPIO numurs |
7 segmentu nosaukums |
Statuss, lai parādītu “5”. (0-> Izslēgts, 1-> IESLĒGTS) |
1 |
GPIO 26 |
Segments a |
1 |
2 |
GPIO 19 |
Segments b |
1 |
3 |
GPIO 13 |
Segments c |
0 |
4 |
GPIO 6 |
D segments |
1 |
5 |
GPIO 5 |
Segments e |
1 |
6 |
GPIO 11 |
F. Segments |
0 |
7 |
GPIO 9 |
Segments g |
1 |
Līdzīgi mums ir kārtas numurs visiem skaitļiem un alfabētiem. Jūs varat rakstīt pats vai izmantot zemāk esošo diagrammu.
Izmantojot šos datus, mēs varam veidot masīvus katram skaitlim mūsu pitona programmā, kā parādīts zemāk.
null = nulle = viens = divi = trīs = četri = pieci = seši = septiņi = astoņi = deviņi =
Ja jums sekot programma būs funkcija, lai parādītu katru rakstzīmi mūsu 7 segmentu displeju, bet ļauj izlaist šo tagad un iejusties kamēr bezgalīgu cilpu. Kur lasiet pašreizējo laiku no Raspberry Pi un sadaliet laika vērtību starp četriem mainīgajiem. Piemēram, ja laiks ir 10.45, tad mainīgajam h1 būs 1, h2 būs 0, m1 būs 4vand m2 būs 5.
now = datetime.datetime.now () hour = now.hour minute = now.minute h1 = hour / 10 h2 = hour% 10 m1 = minute / 10 m2 = minute% 10 print (h1, h2, m1, m2)
Šīs četras mainīgās vērtības mums attiecīgi jāatspoguļo četros ciparos. Lai rakstītu mainīgā vērtību ciparam, mēs varam izmantot šādas rindas. Šeit mēs parādīsim 1. ciparu, padarot to augstu, tad tiks izsaukta funkcija print_segment (mainīgais) , lai segmenta displejā parādītu mainīgo vērtību. Jums varētu būt jautājums, kāpēc mums pēc tam ir kavēšanās un kāpēc mēs pēc tam izslēdzam šo ciparu.
GPIO.output (7, 1) # Ieslēdziet 1. ciparu print_segment (h1) # Izdrukājiet h1 segmenta time.sleep (delay_time) GPIO.output (7, 0) # Izslēdziet 1. ciparu
Iemesls ir tāds, ka, kā mēs zinām, mēs varam vienlaikus parādīt tikai vienu ciparu, taču mums ir jāparāda četri cipari, un tikai tad, ja tiek parādīti visi četri cipari, lietotājam būs redzams viss četru ciparu numurs.
Tātad, kā vienlaikus parādīt visus 4 ciparus ?
Mums ir paveicies, ka mūsu MPU ir daudz ātrāks nekā cilvēka acs, tāpēc tas, ko mēs patiesībā darām: mēs vienlaikus parādām vienu ciparu, bet mēs to darām ļoti ātri, kā parādīts iepriekš.
Mēs izvēlamies viena cipara displeju, gaidot 2ms (mainīgs delay_time), lai MPU un 7 segmenti to varētu apstrādāt, pēc tam izslēgt šo ciparu un pāriet uz nākamo ciparu un darīt to pašu, līdz mēs sasniedzam pēdējo ciparu. Šo 2ms kavēšanos cilvēka acs nevar novērot, un visi četri cipari, šķiet, ir ieslēgti vienlaikus.
Pēdējā lieta, kas to jāapgūst, lai uzzinātu, kā darbojas funkcija print_segment (mainīgais) . Šīs funkcijas iekšpusē mēs izmantojam līdz šim deklarētos masīvus. Tātad jebkura mainīgā lieluma, ko mēs nosūtām šai funkcijai, vērtībai jābūt starp (0–9), mainīgais raksturs saņems šo vērtību un salīdzinās to ar reālo vērtību. Šeit mainīgo salīdzina ar '1'. Līdzīgi mēs salīdzinām ar visiem skaitļiem no 0 līdz 9. Ja tā ir sakritība, mēs izmantojam masīvus un katru vērtību piešķiram attiecīgajiem segmenta tapām, kā parādīts zemāk.
def print_segment (charector): ja charector == 1: i diapazonā (7): GPIO.output (segment8, viens)
Parādīšanas laiks 4 ciparu 7 segmentos, izmantojot Raspberry Pi:
Izmantojiet šeit sniegto shēmu un kodu, lai izveidotu savienojumus, un attiecīgi programmējiet aveņu pi. Kad viss ir izdarīts, vienkārši palaidiet programmu un septiņu segmentu displejā jāatrod pašreizējais laiks. Bet pirms tam ir jāpārbauda dažas lietas
- Pārliecinieties, ka esat iestatījis savu Raspberry Pi ar pašreizējo laiku, ja tas darbojas bezsaistes laikā.
- Barojiet savu Raspberry pi ar adapteri, nevis ar klēpjdatoru / datoru, jo 7 segmentu displejā uzņemtais strāvas daudzums ir liels un USB ports to nevar iegūt.
Ja viss darbojas, kā paredzēts, tad jums vajadzētu atrast kaut ko līdzīgu šim.
Pilnīgu šī aveņu pi pulksteņa darbību var pārbaudīt arī zemāk sniegtajā videoklipā. Ceru, ka jums patika projekts un jums patika to uzcelt. Ļaujiet man zināt, ko jūs domājat vai ja jums nepieciešama palīdzība.