Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Kumusta ang lahat, Gusto kong gumana sa mga ipinapakitang LED na may 7 mga segment o may dot matrix at nagawa ko na ang maraming iba't ibang mga proyekto sa kanila.
Sa tuwing nakakainteres sila dahil may ilang uri ng mahika kung paano sila maaaring gumana dahil ang nakikita mo ay isang optikal na ilusyon!
Ang mga display ay mayroong maraming mga pin para sa koneksyon sa isang Arduino (o ibang microcontroller) at ang pinakamahusay na solusyon ay ilapat ang mga teknika ng multiplexing ng data upang i-minimize ang paggamit ng kanilang mga port.
Kapag ginawa mo ito, ang bawat segment o bawat LED ay bubuksan para sa ilang mga instant (miliseconds o mas kaunti), ngunit ang pag-uulit nito sa maraming beses bawat segundo ay lumilikha ng ilusyon ng imahe na nais mong ipakita.
Para sa akin ang pinaka-kagiliw-giliw na bagay ay upang paunlarin ang lohika, ang programa upang malaman kung paano nila maipapakita ang tamang impormasyon alinsunod sa iyong proyekto.
Sa isang solong proyekto na gumagamit ng mga display ay hinihingi ng maraming oras upang tipunin ang lahat ng mga bahagi sa isang breadboard na may maraming mga wire para sa mga koneksyon.
Alam kong maraming iba't ibang mga pagpapakita sa merkado na tumatakbo sa I2C, na may pinasimple na mga paraan (o hindi), upang mai-program ang mga ito at ginamit ko rin ito ngunit mas gusto kong gumana sa mga karaniwang sangkap tulad ng 74HC595 (multiplexer IC) at ULN2803 (mga driver) dahil binibigyan ka nila ng higit na kontrol sa iyong programa at din higit na pagiging matatag at pagiging maaasahan sa iyong paggamit.
Upang gawing simple ang proseso ng pagpupulong nakabuo ako ng isang LED Dipslay Module para sa maraming layunin gamit ang simple at karaniwang mga sangkap sa mundo ng Arduino.
Sa modyul na ito maaari kang gumana sa dot matrix na may dalawahang mga LED na kulay sa dalawang karaniwang sukat (mas malaki at mas maliit) at maaari mo ring makontrol ang 7 Seg x 4 Digits display na napaka-karaniwan at madaling hanapin ang mga ito sa merkado.
At maaari ka ring gumana sa mga modyul na ito sa kaskad sa isang serial na paraan (iba't ibang mga data sa ipinapakita) o sa isang paralell way (parehong data sa ipinapakita).
Kaya't tingnan natin kung paano gagana ang modyul na ito at matulungan ka sa iyong mga pagpapaunlad!
Video (LED Display Module)
Video (Dot Matrix Test)
Pagbati, LAGSILVA
Hakbang 1: Mga Bahagi
PCB (Printed Circuit Board)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Transistor PNP - BC327 (08 x)
- Resistor 150 Ohms (16 x)
- Resistor 470 Ohms (08 x)
- Capacitor 100 nF (03 x)
- IC Socket 16 pin (03 x)
- IC Socket 18 pin (02 x)
- Pin konektor babae - 6 na pin (8 x)
- Mga pin header 90º (01 x)
- Mga pin header 180º (01 x)
- Conector Borne KRE 02 mga pin (02 x)
- PCB (01 x) - Pagyari
Ang iba pa
- Arduino Uno R3 / Nano / katulad
- LED Display 04 Digit x 7 Segments - (Karaniwang Anode)
- LED Dot Matrix Dual Color (Green & Red) - (Karaniwang Anode)
Mahalagang Mga Pahayag:
- Inilagay ko ang datasheet ng lahat ng pinakamahalagang mga sangkap lamang bilang sanggunian ngunit dapat mong suriin ang datasheet ng iyong sariling mga bahagi bago gamitin ang mga ito.
- Ang board na ito ay dinisenyo upang magamit lamang ang mga pagpapakita ng COMON ANODE.
Hakbang 2: Mga Unang Prototype
Ang aking unang prototype ay ginawa sa isang breadboard upang subukan ang circuit.
Pagkatapos nito ay gumawa ako ng isa pang prototype gamit ang isang unibersal na board tulad ng nakikita mo sa mga larawan.
Ang ganitong uri ng board ay kagiliw-giliw na makagawa ng isang mabilis na prototype ngunit napagtanto mo na pinapanatili mo pa rin ang maraming mga wire.
Ito ay isang functional na solusyon ngunit hindi gaanong matikas na paghahambing sa isang pangwakas na panindang PCB (ang asul).
Hindi ako mahusay sa paghihinang dahil wala akong sapat na karanasan sa prosesong ito ngunit kahit na ito ay nakakuha ako ng magagandang resulta sa parehong karanasan at mas mahalaga: Hindi ko sinunog ang anumang bahagi at alinman sa aking mga kamay!
Marahil ang mga resulta sa aking susunod na board ay magiging mas mahusay dahil sa pagsasanay.
Dahil dito hinihimok ko kayo na subukan ang ganitong uri ng karanasan dahil ito ay magiging mahusay para sa iyo.
Tandaan lamang na mag-ingat sa mainit na bakal at subukang huwag gumastos ng higit sa ilang segundo sa isang bahagi upang maiwasan na sunugin ito !!
At sa wakas, sa Youtube maaari kang makahanap ng maraming mga video tungkol sa paghihinang na maaari mong matutunan bago pumunta sa totoong mundo.
Hakbang 3: Disenyo ng PCB
Dinisenyo ko ang PCB na ito gamit ang isang nakatuon na software upang makabuo ng isang dalwang layer board at ito ay binuo ng iba't ibang mga bersyon bago ang huling ito.
Sa simula ay mayroon akong isang bersyon para sa bawat uri ng pagpapakita at pagkatapos ng lahat ay nagpasya akong pagsamahin ang lahat sa isang bersyon lamang.
Mga Target na Disenyo:
- Simple at kapaki-pakinabang para sa mga prototype.
- Madaling pag-set up at napapalawak.
- May kakayahang gumamit ng 3 magkakaibang uri ng pagpapakita.
- Maximum na lapad ng malaking dot matrix ng LED.
- Pinakamataas na haba sa 100 mm upang i-minimize ang mga gastos sa paggawa ng board.
- Mag-apply ng tradisyunal na mga sangkap sa halip na SMD upang maiwasan ang mas maraming mga paghihirap sa proseso ng manu-manong paghihinang.
- Ang board ay dapat na modular upang maiugnay sa ibang mga board sa cascade.
- Serial o paralell output para sa ibang mga board.
- Maraming mga board ang dapat kontrolin ng isang Arduino lamang.
- 3 wires lang ng data para sa koneksyon ni Arduino.
- Panlabas na koneksyon ng kuryente na 5V.
- Taasan ang kuryente na kuryente na naglalapat ng mga transistor at driver (ULN2803) upang makontrol ang LEDS.
Pangungusap:
Kaugnay sa huling item na ito inirerekumenda ko sa iyo na basahin ang aking isa pang Mga Tagubilin tungkol sa mga sangkap na ito:
Gamit ang Shift Rehistro 74HC595 na may ULN2803, UDN2981 at BC327
Paggawa ng PCB:
Matapos ang disenyo, ipinadala ko ito sa isang tagagawa ng PCB sa Tsina pagkatapos ng maraming paghahanap sa iba't ibang mga lokal na tagapagtustos at sa iba't ibang mga bansa.
Ang pangunahing isyu ay nauugnay sa dami ng mga board kumpara sa gastos dahil kailangan ko lamang ng ilan sa mga ito.
Sa wakas nagpasya akong maglagay ng isang regular na order (hindi isang express order dahil sa mas mataas na gastos) na 10 board lamang sa isang kumpanya sa China.
Pagkatapos lamang ng 3 araw ang mga board ay gawa at ipinadala sa akin sa pagtawid sa mundo sa higit pang 4 na araw.
Ang mga resulta ay mahusay !!
Sa isang linggo pagkatapos ng order ng pagbili ay nasa aking kamay ang mga board at talagang humanga ako sa mataas na kalidad ng mga ito at sa mabilis na bilis!
Hakbang 4: Programming
Para sa programa dapat mong tandaan ang ilang mahahalagang konsepto tungkol sa disenyo ng hardware at tungkol sa rehistro ng shift 74HC595.
Ang pangunahing pag-andar ng 74HC595 ay upang baguhin ang 8-Bit Serial-In sa 8 Parallel-Out Shift.
Ang lahat ng serial data ay pumapasok sa Pin # 14 at sa bawat signal ng orasan ang mga bits ay pumunta sa mga kaukulang parallel-out na pin (Qa to Qh).
Kung magpapatuloy kang magpadala ng higit pang data, ang mga piraso ay ililipat isa-isa sa Pin # 9 (Qh ') bilang serial output muli at dahil sa pagpapaandar na ito maaari kang maglagay ng isa pang chips na konektado sa cascade.
Mahalaga:
Sa proyektong ito mayroon kaming tatlong IC ng 74HC595. Ang unang dalawang gawain upang makontrol ang mga haligi (na may POSITIVE na lohika) at ang huling makontrol ang mga linya (na may NEGATIBONG lohika dahil sa paggana ng mga PNP transistors).
Ang ibig sabihin ng positibong lohika na dapat kang magpadala ng isang HINDI antas ng signal (+ 5V) mula sa Arduino at Negatibong lohika na nangangahulugang dapat kang magpadala ng isang mababang antas ng signal (0V).
Dot matrix ng mga LED
- Ang una ay para sa mga output ng mga cathode ng Red LEDs (8 x) >> COLUMN RED (1 hanggang 8).
- Ang pangalawa ay para sa outputL ng mga cathode ng Green LEDs (8 x) >> COLUMN GREEN (1 hanggang 8).
- Ang huling isa ay para sa output ng mga anode ng lahat ng mga LED (08 x Red & Green) >> Mga LINES (1 hanggang 8).
Halimbawa, kung nais mong i-on lamang ang Green LED ng haligi 1 at linya 1 dapat mong ipadala ang sumusunod na pagkakasunud-sunod ng serial data:
1º) LINES
~ 10000000 (ang unang linya lamang ang nakatakda sa on) - Ang simbolo ~ ay upang baligtarin ang lahat ng mga bits mula 1 hanggang 0 at vice versa.
2º) COLUMN Green
10000000 (ang unang haligi lamang ng Green LED ang nakatakda sa)
3º) COLUMN RED
00000000 (lahat ng mga haligi ng Red LEDs ay naka-off)
Mga pahayag ng Arduino:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Negatibong lohika para sa mga linya
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Positibong lohika para sa mga berdeng haligi
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Positibong lohika para sa mga pulang haligi
Pangungusap:
Maaari mo ring pagsamahin ang parehong mga LED (Green at Red) upang makagawa ng kulay DILAW bilang sumusunod:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
Ipinapakita ang 7 Mga Segment
Para sa ganitong uri ng pagpapakita ang pagkakasunud-sunod ay pareho. Ang pagkakaiba lamang ay hindi mo kailangang gamitin ang mga berdeng LED.
1º) DIGIT (1 hanggang 4 mula kaliwa hanggang kanan) ~ 10000000 (itakda ang digit # 1)
~ 01000000 (itakda ang digit # 2)
~ 00100000 (itakda ang digit # 3)
~ 00010000 (itakda ang digit # 4)
2º) HINDI GINAMIT
00000000 (lahat ng mga piraso ay nakatakda sa zero)
3º) SEGMEN (A hanggang F at DP - suriin ang iyong datasheet sa pagpapakita)
10000000 (itakda ang segment A)
01000000 (itakda ang segment B)
00100000 (itakda ang segment C)
00010000 (itakda ang segment D)
00001000 (itakda ang segment E)
00000100 (itakda ang segment F)
00000010 (itakda ang segment G)
00000001 (itakda ang DP)
Halimbawa ng Arduino upang itakda ang Display # 2 na may bilang 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Set DISPLAY 2 (Negatibong lohika)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Itakda ang data sa zero (hindi nagamit)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Itakda ang mga segment A, B, C, D, G)
Sa wakas, ang paglalapat ng prosesong ito maaari mong makontrol ang anumang LED ng iyong display at maaari ka ring lumikha ng anumang mga espesyal na character na kailangan mo.
Hakbang 5: Pagsubok
Narito ang dalawang mga programa bilang halimbawa ng pagpapaandar ng Display Module.
1) Display countdown (mula 999.9 segundo hanggang zero)
2) Dot Matrix (Digit 0 hanggang 9 & Alpabetong A hanggang Z)
3) Digital Clock RTC sa LED Display ng 4 Digits at 7 Segments
Ang huling ito ay isang pag-update ng aking unang bersyon ng Digital Clock.
Hakbang 6: Konklusyon at Susunod na Mga Hakbang
Ang Modyul na ito ay magiging kapaki-pakinabang sa lahat ng mga proyekto sa hinaharap na hinihingi ang ilang LED display.
Bilang mga susunod na hakbang ay magtitipon ako ng mas maraming mga board upang gumana sa kanila sa mode na cascade at bubuo ako ng isang silid-aklatan upang gawing mas simple ang pagprograma.
Inaasahan kong nasiyahan ka sa proyektong ito.
Mangyaring, ipadala sa akin ang iyong mga komento sapagkat ito ay mahalaga upang mapabuti ang proyekto at ang impormasyon ng Instructable na ito.
Pagbati, LAGSILVA
26. Mayo.2016