Talaan ng mga Nilalaman:

3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar: 5 Hakbang
3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar: 5 Hakbang

Video: 3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar: 5 Hakbang

Video: 3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar: 5 Hakbang
Video: Видео ПРОЕКТОР ДЛЯ ИГР!!! VIVICINE K3 на базе ANDROID 9.0 #vivicine 2024, Hulyo
Anonim
3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar
3-Wire HD44780 LCD para sa Mas kaunti sa 1 Dollar

Sa natuturo na ito malalaman natin kung paano tayo makakapag-up ng isang LCD batay sa HD44780 chipset sa SPI bus at ihatid ito sa 3 mga wire lamang para sa mas mababa sa $ 1. Kahit na mag-focus ako sa pagpapakita ng alphanumeric ng HD44780 sa tutorial na ito, gagana ang parehong prinsipyo pareho para sa anumang iba pang LCD na gumagamit ng isang 8 bit na parallel data bus, at maaari itong madaling maiakma upang umangkop sa mga ipinapakita na may 16 bit data bus. Ang HD44780 (at katugma) batay sa mga alphanumeric display ay karaniwang magagamit sa 16x2 (2 mga linya na binubuo ng 16 na mga character) at 20x4 na mga pagsasaayos, ngunit maaaring matagpuan sa maraming iba pang mga form. Ang pinaka-'kumplikadong' display ay isang 40x4 display, ang ganitong uri ng pagpapakita ay espesyal dahil mayroon itong 2 HD44780 Controller, isa para sa itaas na dalawang hilera at isa para sa ilalim ng dalawang mga hilera. Ang ilang mga graphic LCD ay may dalawang mga taga-kontrol din. Ang HD44780 LCDs ay mahusay, ang mga ito ay napaka-mura, nababasa at medyo madali upang gumana. Ngunit mayroon din silang ilang mga drawbacks, ang mga display na ito ay tumatagal ng maraming mga I / O pin kapag nakakonekta sa Arduino. Sa mga simpleng proyekto hindi ito isang pag-aalala, ngunit kapag ang mga proyekto ay naging malaki, na may maraming IO, o kung saan kinakailangan ang ilang mga pin para sa mga bagay tulad ng isang Analog na nabasa o PWM, ang katotohanan na ang mga LCD na ito ay nangangailangan ng isang minimum na 6 na mga pin ay maaaring maging isang problema Ngunit malulutas natin ang problemang ito sa isang murang at kagiliw-giliw na paraan.

Hakbang 1: Pagkuha ng Mga Sangkap

Gumamit ako ng TaydaElectronics para sa karamihan ng mga sangkap na ginamit ko sa proyektong ito. Maaari mo ring makuha ang mga bahaging ito sa ebay, ngunit para sa kadalian ng paggamit, maiuugnay kita sa Tayda. Listahan ng Pagbebenta2 - 74HC595 package DIP161 - Generic male header - 2 pin. Hindi ito kinakailangan, ginamit ko ito bilang isang paraan upang permanenteng hindi paganahin ang backlight.3 - Ceramic Capacitor - capacitance 0.1µF; boltahe 50V1 - Electrolytic Capacitor - capacitance 10µF; boltahe 35V1 - Ceramic Capacitor - capacitance 220pF; boltahe 50V1 - NPN-Transistor - bahagi # PN2222A * 1 - 1k Ω Resistor1 - Trimmer Potentiometer - maximum na paglaban 5kΩ1 - 470 Ω Resistor * Sa isang transistor ng NPN ang backlight ay mananatili hanggang sa ito ay ma-on ng software. Kung nais mong magkaroon ng backlight bilang default, gumamit ng transistor na uri ng PNP. Ang mga pagbabago sa code ng ibinigay na library ay kailangang gawin, kahit na. Ang kabuuang kabuuan para sa listahang ito ay $ 0.744. Hindi rin kinakailangan ang pin header, kaya maaari kang makatipid ng 15 sentimo doon at ang subtotal ay $ 0.6.

Hakbang 2: Alamin ang Iyong Hardware # 1

Alamin ang Iyong Hardware # 1
Alamin ang Iyong Hardware # 1

Narito ang isang karaniwang pin sa labas ng isang HD44780 LCD, ito rin ay halos kapareho sa ilang mga graphic LCD din. Ang HD44780 ay maaaring gumana sa dalawang mga mode: 1. 4-bit mode, kung saan ang bawat byte na ipinadala sa LCD ay binubuo ng 2 4-bit na mga bahagi. 2. 8-bit mode, kung saan kami magtutuon. Ang LCD ay mayroong 16 na pin sa kabuuan, 3 control pin at 8 data pin: RS - Kinokontrol kung nais naming magpadala ng isang utos o data sa LCD. Kung saan ang ibig sabihin ng 'mataas' ay data (isang character) at 'mababa' ay nangangahulugang isang byte ng utos. R / W - Pinapayagan ka ng controller ng HD44780 na magbasa mula sa RAM nito. Kapag ang pin na ito ay 'mataas' maaari nating basahin ang data mula sa mga pin ng data nito. Kapag ito ay 'mababa' maaari kaming magsulat ng data sa LCD. Bagaman ang pagpipiliang basahin mula sa LCD ay maaaring maging kapaki-pakinabang sa ilang mga kaso, hindi namin ito lalagyan sa tutorial na ito, at ibabagsak lamang namin ang pin na ito upang matiyak na palagi itong nasa mode na Sumulat. Ang E - E ang pin na 'Paganahin', ang pin na ito ay na-toggle na 'mataas' pagkatapos ay 'mababa' upang isulat ang data sa RAM nito at sa kalaunan ipakita ito sa screen. DB0-7 - Ito ang mga pin ng data. Sa 4-bit mode ay ginagamit lamang namin ang 4 mataas na piraso ng DB4-DB7, at sa 8 bit mode lahat sila ay ginagamit. VSS - Ito ang ground pin. VCC - Ito ang power pin, pinapatakbo ng LCD ang isang 5V power supply, madali nating mapakain ito ng lakas mula sa Arduino's + 5v pin. Vo - Ito ang pin na nagbibigay-daan sa iyo upang itakda ang antas ng kaibahan para sa display, nangangailangan ito ng isang potensyomiter, karaniwang ginagamit ang isang 5K Ohm na palayok. LED + - Ito ang mapagkukunan ng kuryente para sa backlight. Ang ilang mga LCD ay hindi mayroong kasamang backlight, at mayroon lamang 14 na mga pin. Sa karamihan ng mga kaso ang pin na ito ay nangangailangan din ng isang koneksyon na + 5v. LED- - Ito ang lupa para sa backlight. ** Mahalagang suriin ang ipinapakitang datasheet o siyasatin ang PCB nito upang suriin para sa isang resistor ng backlight, karamihan sa mga LCD ay itatayo ang mga ito -in, kung saan ang kailangan mo lang gawin ay maglapat ng kapangyarihan sa LED + at ground sa LED-. Ngunit sa kaso ang iyong LCD ay walang built-in na risistor para sa backlight, mahalaga na magdagdag ka ng isa, kung hindi man ang backlight ay makakain ng maraming lakas at sa huli ay masunog ito. Sa karamihan ng mga kaso ang paraan ng pag-wire sa LCD na ito sa Arduino ay sa pamamagitan ng paggamit nito sa 4-bit mode at saligan ang R / W pin. Sa ganitong paraan gumagamit kami ng mga pin na RS, E at DB4-DB7. Ang pagpapatakbo sa 4-bit mode ay may isa pang maliit na kawalan na tumatagal ng dalawang beses hangga't magsulat ng data sa screen na kukuha ng isang 8-bit na pagsasaayos. Ang LCD ay may oras na 'pag-aayos' ng 37 microseconds, nangangahulugan ito na maghintay ka ng 37 microseconds bago ipadala ang susunod na utos o data-byte sa LCD. Dahil sa 4-bit mode kailangan naming magpadala ng data ng dalawang beses para sa bawat byte, ang kabuuang oras na kinakailangan upang magsulat ng isang solong byte ay aabot sa 74microseconds. Ito ay sapat pa rin sa mabilis, ngunit nais ko ang aking disenyo upang makabuo ng pinakamahusay na posibleng mga resulta. Ang solusyon sa aming problema sa bilang ng mga pin na ginamit ay nakasalalay sa isang Serial to Parallel converter…

Hakbang 3: Alamin ang Iyong Hardware # 2

Alamin ang Iyong Hardware # 2
Alamin ang Iyong Hardware # 2

Ang gagawin namin ay bumuo ng isang adapter na kukuha ng isang serial na uri ng komunikasyon na lalabas sa Arduino at binago ang data sa isang parallel output na maaaring mapakain sa aming LCD. Sa darating ang 74HC595 chip. Ito ay isang napaka-mura at simpleng upang mapatakbo ang rehistro ng shift. Sa kakanyahan kung ano ang ginagawa nito ay kumuha ng isang orasan at mga signal ng data na ginagamit nito upang punan ang isang panloob na 8 bit buffer gamit ang 8 huling mga piraso na 'nai-relo'. Kapag ang pin na 'Latch' (ST_CP) ay nadala na 'mataas' ay inililipat nito ang mga piraso sa 8 output nito. Ang 595 ay may isang napakagandang tampok, mayroon itong isang serial data out pin (Q7 '), ang pin na ito ay maaaring magamit sa daisy chain 2 o higit pang 595 na magkasama upang mabuo ang Serial to Parallel adapters na 16 o higit pang mga piraso ang lapad. Para sa proyektong ito kakailanganin namin ang 2 sa mga chip. Maaari ring mabago ang eskematiko upang gumana sa isang solong 595 sa 4-bit mode, ngunit hindi ito sakop ng tutorial na ito.

Hakbang 4: Ang Kable Nito Lahat

Kable Nito ang Lahat
Kable Nito ang Lahat

Ngayon alam na natin kung paano gumagana ang aming hardware maaari nating i-wire ang lahat. Sa eskematiko nakikita natin ang 2 595 chips na daisy na nakakadena nang magkasama upang bumuo ng isang 16 bit na parallel output. Ang ilalim na maliit na tilad ay talagang ang pangunahing isa, at ang pang-itaas ay may bulaklak na kadena dito. Ang nakikita natin dito ay ang ilalim ng 595 ay hinihimok ang mga pin ng data ng LCD sa isang 8-bit na pagsasaayos, ang tuktok na maliit na tilad ay kinokontrol ang signal ng RS at backlight sa pamamagitan ng pag-on o pag-off ng isang transistor. Tandaan ang * tala tungkol sa backlight ng LCD sa Alamin ang iyong pahina ng hardware # 1, kung sakaling ang iyong LCD ay walang resistor ng backlight, huwag kalimutang magdagdag ng isa sa iyong circuit. Sa aking kaso ang mga LCD Dumating na ako ng isang resistor na built-in, kaya't nilaktawan ko ang hakbang na ito. Ang kaibahan ay inilalapat sa pamamagitan ng isang 5K Ohm pot, isang pin ang papunta sa GND ang pangalawa ay pupunta sa VCC at ang wiper sa Vo pin sa LCD. Ang mga capacitor na ginamit sa mga linya ng VCC ng LCD at 595 ay mga decoupling capacitor, naroroon sila upang mapupuksa ang pagkagambala. Hindi sila kinakailangan kung nagtatrabaho ka sa isang breadboard, ngunit dapat gamitin kung sakaling bumuo ka ng iyong sariling bersyon ng circuit na ito upang magamit sa labas ng "mga kondisyon sa lab". Ang R5 at C9 sa mismong tiyak na pagkakasunud-sunod ay lumikha ng isang pagkaantala sa RC, na tinitiyak na ang data sa mga output ng 595 ay may oras upang patatagin bago ang Enable pin sa LCD ay itinakda 'mataas' at binabasa ang data. Ang Q7 'sa ilalim na 595 ay papunta sa serial data input ng 595 sa itaas, lumilikha ito ng isang daisy chain ng 595s at sa gayon isang 16 bit interface. Madali ang mga kable hanggang sa Arduino. Gumagamit kami ng isang 3-wire na pagsasaayos, gamit ang mga pin ng SPI ng Arduino. Pinapayagan nito ang napakabilis na paglilipat ng data, ang pagpapadala ng 2 bytes sa LCD na karaniwang tumatagal ng halos 8 microseconds. Napakabilis nito, at talagang mas mabilis ito kaysa sa oras na kinakailangan ng LCD upang maproseso ang data, kaya't kailangan ng pagkaantala ng 30 microsecond sa pagitan ng bawat pagsulat. Ang isang napakalaking pakinabang ng paggamit ng SPI ay ang mga pin na D11 at D13 ay ibinabahagi sa iba pang mga aparatong SPI. Nangangahulugan ito na kung mayroon ka nang ibang bahagi na gumagamit ng SPI, tulad ng isang accelerometer, ang solusyon na ito ay gagamit lamang ng isang sobrang pin para sa paganahin ang signal. Sa susunod na pahina makikita natin ang resulta. Bumuo ako ng isang backpack sa isang perfboard at ito ay gumagana nang napakahusay para sa akin sa ngayon.

Hakbang 5: Ang Resulta + Library

Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library
Ang Resulta + Library

"Ang isang larawan ay nagkakahalaga ng isang libong mga salita", Sumasang-ayon ako sa pahayag na ito, kaya narito ang ilang mga imahe ng resulta ng pagtatapos para sa proyektong ito. Ito ang mga imahe ng nakumpletong produkto, ang Fritzing PCB view ay ang layout ng perfboard na ginamit ko upang maitayo ang aking backpack. Maaari mong makita na kapaki-pakinabang ito kung nais mong bumuo ng iyong sarili. Nagustuhan ko ito kaya't dinisenyo ko ang isang PCB gamit ang DipTrace at nag-order ng isang batch ng 10 PCB. Kakailanganin ko ang 2 o 3 na mga yunit para sa aking sarili ngunit gagawing magagamit ang natitira para sa isang simbolikong presyo kapag natanggap ko sila. Kaya kung may interesado mangyaring ipaalam sa akin. * I-edit: Ang mga PCB ay narito, at gumagana ang mga ito. Narito ang buong gallery ng larawan para sa proyektong ito, kasama ang mga aktwal na PCB. https://imgur.com/a/mUkpw#0 Siyempre hindi ko nakalimutan ang pinakamahalagang bagay, isang silid aklatan upang magamit ang circuit na ito. Ito ay katugma sa library ng LiquidCrystal kasama ang Arduino IDE, upang madali mong mapalitan ang mga deklarasyon sa tuktok ng iyong sketch at hindi na kailangang baguhin ang anupaman sa iyong sketch. Mayroon ding isang halimbawa ng sketch na nagpapakita kung paano gumagana ang bawat pag-andar sa library, kaya't suriin ito.

Inirerekumendang: