- 7-Segment at 4-Digit 7-Segment na Modyul ng Pagpapakita:
- Pagkonekta ng 4-digit na 7-segment na module sa Raspberry Pi:
- Pag-program ng iyong Raspberry Pi:
- Ipakita ang oras sa 4-Digit 7-segment gamit ang Raspberry Pi:
Alam nating lahat na ang Raspberry Pi ay isang kahanga-hangang platform ng Pag-unlad batay sa ARM microprocessor. Sa pamamagitan ng mataas na kapangyarihan sa computational na ito ay makakagawa ng mga kababalaghan sa mga kamay ng mga electronics o libangan ng estudyante. Ang lahat ng ito ay maaaring posible lamang kung alam natin kung paano ito makikipag-ugnay sa totoong mundo at pag-aralan ang data sa pamamagitan ng ilang output device. Maraming mga sensor na maaaring makakita ng ilang mga parameter mula sa real time na mundo at ilipat ito sa isang digital na mundo at pinag-aaralan namin silang tinitingnan ang mga ito alinman sa isang LCD screen o ilang iba pang display. Ngunit, palaging hindi matipid ang paggamit ng isang LCD screen na may PI para sa pagpapakita ng maliit na halaga ng data. Dito namin ginugusto na gumamit ng 16x2 Alphanumeric LCD display o ang display na 7-Segment. Natutunan na namin kung paano gumamit ng isang Alphanumeric LCD at isang solong segment na 7-segment na display na may Raspberry pi. Ngayon gagawin naminInterface 4-digit na Pitong Segment na Display Module na may Raspberry Pi at ipakita ang Oras sa paglipas nito.
Bagaman ang 16x2 Alphanumeric LCD ay mas komportable kaysa sa 7-segment na pagpapakita, mayroong ilang mga sitwasyon kung saan ang isang 7-segment na display ay darating sa handier kaysa sa isang LCD display. Ang LCD ay naghihirap mula sa sagabal ng pagkakaroon ng mababang sukat ng character at magiging labis na labis para sa iyong proyekto kung nagpaplano ka lamang na ipakita ang ilang mga halagang bilang. Ang 7-mga segment ay mayroon ding kalamangan laban sa mahinang kundisyon ng pag-iilaw at maaaring matingnan mula sa mga anggulo ng lager kaysa sa isang normal na LCD screen. Kaya, magsimula tayong malaman ito.
7-Segment at 4-Digit 7-Segment na Modyul ng Pagpapakita:
Ang 7 Segment Display ay mayroong pitong mga segment dito at ang bawat segment ay may isang LED sa loob nito upang maipakita ang mga numero sa pamamagitan ng pag-iilaw ng mga kaukulang segment. Tulad ng kung nais mo ang 7-segment na ipakita ang bilang na "5" pagkatapos ay kailangan mong i-glow ang segment a, f, g, c, at d sa pamamagitan ng paggawa ng mataas na kaukulang mga pin. Mayroong dalawang uri ng mga pagpapakita ng 7-segment: Karaniwang Cathode at Karaniwang Anode, narito ginagamit namin ang pagpapakita ng Karaniwang Cathode pitong segment. Matuto nang higit pa tungkol sa 7 segment na pagpapakita dito.
Ngayon alam namin kung paano ipakita ang aming ninanais na character na pang-numero sa isang solong pagpapakita ng 7 segment. Ngunit, maliwanag na kakailanganin natin ng higit sa isang 7-segment na pagpapakita upang maiparating ang anumang impormasyon na higit sa isang digit. Kaya, sa tutorial na ito gagamit kami ng isang 4-digit na 7-Segment Display Module tulad ng ipinakita sa ibaba.
Tulad ng nakikita natin mayroong Apat na Pitong Mga Segment na Ipinapakita na konektado magkasama. Alam namin na ang bawat module na 7-segment ay magkakaroon ng 10 mga pin at para sa 4 na pitong segment na nagpapakita ay magkakaroon ng 40 mga pin sa kabuuan at magiging abala para sa sinuman na solder ang mga ito sa isang dot board, kaya masidhing inirerekumenda ko ang sinumang bumili ng isang module o gumawa ng iyong sariling PCB para sa paggamit ng isang 4-digit na 7-segment na display. Ang iskema ng koneksyon para sa pareho ay ipinapakita sa ibaba:
Upang maunawaan kung paano gumagana ang 4-digit na pitong segment na module kailangan nating tingnan ang mga iskemat sa itaas, tulad ng ipinapakita ang mga A pin ng lahat ng apat na display ay konektado upang makalikom bilang isang A at pareho para sa B, C…. hanggang sa DP. Kaya, karaniwang kung ang A ay nag-trigger, kung gayon ang lahat ng apat na A ay dapat na mataas di ba?
Ngunit, hindi iyon nangyari. Mayroon kaming karagdagang apat na pin mula sa D0 hanggang D3 (D0, D1, D2 at D3) na maaaring magamit upang makontrol kung aling display sa apat ang dapat na mataas. Halimbawa: Kung kailangan ko ang aking output na naroroon lamang sa pangalawang display pagkatapos ay ang D1 lamang ang dapat gawing mataas habang pinapanatili ang iba pang mga pin (D0, D2, at D3) na mababa. Maaari lamang nating piliin kung aling display ang dapat na aktibo gamit ang mga pin mula sa D0 hanggang D3 at kung anong character ang ipapakita gamit ang mga pin mula A hanggang DP.
Pagkonekta ng 4-digit na 7-segment na module sa Raspberry Pi:
Tingnan natin kung paano, paano natin maiugnay ang 4-digit na 7-segment na module na ito sa aming Raspberry Pi. Ang module na 7-segment ay may 16 na mga pin tulad ng ipinakita sa ibaba. Ikaw na module ay maaaring may mas kaunti, ngunit huwag mag-alala magkakaroon pa rin ng mga sumusunod para sigurado
- 7 o 8 na mga segment ng pin (narito ang mga pin simula sa 1 hanggang 8)
- Ground pin (narito ang pin 11)
- 4 na mga digit na pin (narito ang mga pin na 13 hanggang 16)
Sa ibaba ay ibinigay ang eskematiko para sa raspberry pi digital na orasan sa pamamagitan ng pagkonekta ng 4-digit na Pitong segment na module ng pagpapakita sa Raspberry Pi:
Ang sumusunod na talahanayan ay makakatulong din sa iyo sa paggawa ng mga koneksyon at pag-verify na ito ay naaayon sa bawat mga eskematiko na ipinakita sa itaas.
S.Hindi |
Rsp Pi GPIO number |
Rsp Pi numero ng PIN |
7-Pangalan ng segment |
7-Seg na numero ng pin (dito sa modyul na ito) |
1 |
GPIO 26 |
PIN 37 |
Segment a |
1 |
2 |
GPIO 19 |
PIN 35 |
Segment b |
2 |
3 |
GPIO 13 |
PIN 33 |
Segment c |
3 |
4 |
GPIO 6 |
PIN 31 |
Segment d |
4 |
5 |
GPIO 5 |
PIN 29 |
Segment e |
5 |
6 |
GPIO 11 |
PIN 23 |
Segment f |
6 |
7 |
GPIO 9 |
PIN 21 |
Segment g |
7 |
8 |
GPIO 10 |
PIN 19 |
Segment DP |
8 |
9 |
GPIO 7 |
PIN 26 |
Digit 1 |
13 |
10 |
GPIO 8 |
PIN 24 |
Digit 2 |
14 |
11 |
GPIO 25 |
PIN 22 |
Digit 3 |
15 |
12 |
GPIO 24 |
PIN 18 |
Digit 4 |
16 |
13 |
Lupa |
Lupa |
Lupa |
11 |
Kilalanin ang mga pin sa iyong module at lahat ka ay mahusay na magpatuloy sa mga koneksyon. Ang pagtuklas ng mga pin ng GPIO sa Raspberry pi ay maaaring medyo mapaghamong gawain kaya't ibinigay ko sa iyo ang larawang ito para sa GPIO Pins.
Pag-program ng iyong Raspberry Pi:
Narito ginagamit namin ang wika ng Python Programming para sa pagprograma ng RPi. Maraming paraan upang mai-program ang iyong Raspberry Pi. Sa tutorial na ito ginagamit namin ang Python 3 IDE, dahil ito ang pinaka ginagamit na isa. Ang kumpletong programa ng Python ay ibinibigay sa pagtatapos ng tutorial na ito. Matuto nang higit pa tungkol sa Program at magpatakbo ng code sa Raspberry Pi dito.
Pag-uusapan natin ang ilang mga utos na gagamitin namin sa programang PYHTON para sa proyektong ito, Una ay mag-i- import kami ng GPIO file mula sa silid-aklatan, sa ibaba ang pagpapaandar ay nagbibigay-daan sa amin upang mai-program ang mga pin ng GPIO ng PI. Pinapalitan din namin ang pangalan ng "GPIO" sa "IO", kaya sa programa tuwing nais naming mag-refer sa mga GPIO pin gagamitin namin ang salitang 'IO'. Din-import namin ang oras at datetime na basahin ang mga halaga ng oras mula sa RSP Pi.
i-import ang RPi.GPIO bilang oras ng pag-import ng GPIO, datime
Minsan, kapag ang mga GPIO pin, na sinusubukan naming gamitin, ay maaaring gumagawa ng ilang iba pang mga pagpapaandar. Sa kasong iyon, makakatanggap kami ng mga babala habang isinasagawa ang programa. Sa ibaba ng utos ay sinasabi sa PI na huwag pansinin ang mga babala at magpatuloy sa programa.
IO.setwarnings (Mali)
Maaari naming i-refer ang mga GPIO pin ng PI, alinman sa pamamagitan ng pin number sa board o ng kanilang function number. Tulad ng 'PIN 29' sa pisara ay 'GPIO5'. Kaya sasabihin namin dito alinman na ilalarawan namin ang pin dito sa pamamagitan ng '29' o '5'. Nangangahulugan ang GPIO.BCM na kinakatawan namin ang paggamit ng 5 para sa GPIO5 pin 29.
IO.setmode (GPIO.BCM)
Tulad ng dati dapat naming magsimula sa pamamagitan ng pagsisimula ng mga pin, narito ang parehong mga segment na pin at ang mga digit na pin ay mga output pin. Para sa layunin sa pagprogram na bumubuo kami ng mga array para sa mga segment ng pin at pinasimulan ang mga ito sa '0' pagkatapos ideklara ang mga ito bilang GPIO
segment8 = (26,19,13,6,5,11,9,10) para sa segment sa segment8: GPIO.setup (segment, GPIO.OUT) GPIO.output (segment, 0)
Katulad nito para sa mga digit na pin ay idineklara namin ang mga ito bilang mga output pin at ginagawa itong '0' bilang default
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) #Off sa umpisa #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) #Off umpisa #Digit 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) #Off simula #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) #Off umpisa
Kailangan naming bumuo ng mga array upang maipakita ang bawat numero sa isang pitong segment na pagpapakita. Upang maipakita ang isang numero kailangan nating kontrolin ang lahat ng 7 mga segment ng pin (hindi kasama ang tuldok na pin), iyon ay alinman sa mga dapat patayin o buksan. Halimbawa upang maipakita ang bilang 5 na mayroon kaming gawin ang sumusunod na pag-aayos
S.Hindi |
Rsp Pi GPIO number |
7-Pangalan ng segment |
Katayuan upang ipakita ang '5'. (0-> OFF, 1-> ON) |
1 |
GPIO 26 |
Segment a |
1 |
2 |
GPIO 19 |
Segment b |
1 |
3 |
GPIO 13 |
Segment c |
0 |
4 |
GPIO 6 |
Segment d |
1 |
5 |
GPIO 5 |
Segment e |
1 |
6 |
GPIO 11 |
Segment f |
0 |
7 |
GPIO 9 |
Segment g |
1 |
Katulad nito mayroon kaming numero ng pagkakasunud - sunod para sa lahat ng mga numero at alpabeto. Maaari kang sumulat nang mag-isa o gamitin ang tsart sa ibaba.
Sa mga data na ito maaari naming mabuo ang mga array para sa bawat numero sa aming programa sa sawa tulad ng ipinakita sa ibaba.
null = zero = isa = dalawa = tatlo = apat = lima = anim = pito = walong = siyam =
Kung susundin mo ang programa ay magkakaroon ng pagpapaandar upang maipakita ang bawat character sa aming 7-segment na display ngunit, hinayaan itong laktawan ito sa ngayon at makapasok sa habang walang katapusan na loop. Kung saan basahin ang kasalukuyang oras mula sa Raspberry Pi at hatiin ang halaga ng oras sa pagitan ng apat na variable. Halimbawa kung ang oras ay 10.45 pagkatapos ang variable h1 ay magkakaroon ng 1, ang h2 ay magkakaroon ng 0, ang m1 ay magkakaroon ng 4vand m2 ay magkakaroon ng 5.
ngayon = datetime.datetime.now () oras = ngayon.hour minuto = now.minute h1 = hour / 10 h2 = hour% 10 m1 = minuto / 10 m2 = minuto% 10 print (h1, h2, m1, m2)
Kailangan nating ipakita ang apat na variable na halagang ito sa aming apat na digit ayon sa pagkakabanggit. Upang magsulat ng isang halaga ng variable sa isang digit maaari naming gamitin ang mga sumusunod na linya. Narito kami ay ipinapakita sa digit 1 sa pamamagitan ng paggawa nito mataas pagkatapos ang function na print_segment (variable) ay tatawagin upang ipakita ang halaga sa variable sa pagpapakita ng segment. Maaaring nagtataka ka kung bakit mayroon kaming pagkaantala pagkatapos nito at kung bakit pinapatay namin ang digit na ito pagkatapos nito.
GPIO.output (7, 1) #Turn on Digit One print_segment (h1) #Print h1 sa segment time.sulog (pagkaantala_time) GPIO.output (7, 0) #Turn off ang Digit One
Ang dahilan ay, tulad ng alam naming maaari lamang kaming magpakita ng isang digit nang paisa-isa, ngunit mayroon kaming apat na digit na ipapakita at kung ang lahat ng apat na digit ay ipinakita ang kumpletong numero ng apat na digit ay makikita para sa gumagamit.
Kaya, paano ipapakita ang lahat ng 4 na digit nang sabay ?
Masuwerte para sa amin ang aming MPU ay napakabilis kaysa sa isang mata ng tao, kaya kung ano talaga ang ginagawa namin: nagpapakita kami ng isang digit nang paisa-isa ngunit ginagawa namin ito nang napakabilis tulad ng ipinakita sa itaas.
Pumili kami ng isang digit na pagpapakita nito maghintay para sa 2ms (variable delay_time) upang maiproseso ito ng MPU at 7-segment at pagkatapos ay i-off ang digit na iyon at magpatuloy sa susunod na digit at gawin ang pareho hanggang maabot namin ang huling digit. Ang pagkaantala ng 2ms na ito ay hindi maaaring sundin ng isang mata ng tao at ang lahat ng apat na digit ay lilitaw na ON sa parehong oras.
Ang huling bagay na matutunan ito upang malaman kung paano gumagana ang function na print_segment (variable) . Sa loob ng pagpapaandar na ito ginagamit namin ang mga array na idineklara namin sa ngayon. Kaya't anuman ang variable na ipinapadala namin sa pagpapaandar na ito ay dapat magkaroon ng halaga sa pagitan ng (0-9), tatanggap ng variable character ang halagang ito at ihambing ito para sa totoong halaga. Dito inihambing ang variable sa '1'. Katulad din naming ihinahambing sa lahat ng numero mula 0 hanggang 9. Kung ito ay isang tugma ginagamit namin ang mga array at itatalaga ang bawat halaga sa kani-kanilang mga segment na pin tulad ng ipinakita sa ibaba.
def print_segment (charector): kung charector == 1: para sa i sa saklaw (7): GPIO.output (segment8, isa)
Ipakita ang oras sa 4-Digit 7-segment gamit ang Raspberry Pi:
Gamitin ang eskematiko at code na ibinigay dito upang gawin ang mga koneksyon at programa nang naaayon sa iyong raspberry pi. Matapos ang lahat ay tapos na ilunsad lamang ang programa at dapat mong makita ang kasalukuyang oras na ipinapakita sa pitong segment na pagpapakita. Ngunit, maraming mga bagay na kailangan mong suriin bago ito
- Tiyaking naitakda mo ang iyong Raspberry Pi sa kasalukuyang oras kung sakali kung tumatakbo ito sa offline na oras.
- Lakasin ang iyong Raspberry pi gamit ang isang Adapter at hindi sa iyong Laptop / computer dahil ang dami ng kasalukuyang iginuhit ng 7-segment na display ay mataas at hindi ito mapagkukunan ng iyong USB port.
Kung gumagana ang lahat tulad ng inaasahan, dapat kang makahanap ng tulad nito sa ibaba.
Ang kumpletong pagtatrabaho ng raspberry pi clock na ito ay maaari ding suriin sa video na ibinigay sa ibaba. Inaasahan kong nagustuhan mo ang proyekto at nasiyahan sa pagbuo ng isa. Ipaalam sa akin kung ano ang palagay mo o kung kailangan mo ng tulong.