Përmbajtje:

LCD 3-Wire HD44780 për më pak se 1 dollar: 5 hapa
LCD 3-Wire HD44780 për më pak se 1 dollar: 5 hapa

Video: LCD 3-Wire HD44780 për më pak se 1 dollar: 5 hapa

Video: LCD 3-Wire HD44780 për më pak se 1 dollar: 5 hapa
Video: Raspberry pi 5 inch HDMI Screen Installation | #Shorts 2024, Korrik
Anonim
LCD 3-Wire HD44780 për më pak se 1 dollar
LCD 3-Wire HD44780 për më pak se 1 dollar

Në këtë udhëzues do të mësojmë se si mund të lidhim një LCD të bazuar në chipset HD44780 në autobusin SPI dhe ta drejtojmë atë me vetëm 3 tela për më pak se 1 dollarë. Megjithëse do të përqendrohem në ekranin alfanumerik HD44780 në këtë tutorial, i njëjti parim do të funksionojë pothuajse i njëjtë për çdo LCD tjetër që përdor një autobus të dhënash paralel 8 bit, dhe mund të përshtatet shumë lehtë për t'iu përshtatur ekraneve me autobusë të të dhënave 16 bit Me Ekranet alfanumerike të bazuara në HD44780 (dhe të pajtueshme) janë zakonisht të disponueshme në konfigurime 16x2 (2 rreshta të përbërë nga 16 karaktere) dhe 20x4, por mund të gjenden në shumë forma të tjera. Ekrani më 'i komplikuar' do të ishte një ekran 40x4, ky lloj ekrani është i veçantë pasi ka 2 kontrollues HD44780, një për dy rreshtat e sipërm dhe një për dy rreshtat e poshtëm. Disa LCD grafikë gjithashtu kanë dy kontrollues. LCD -të HD44780 janë të shkëlqyera, ato janë shumë të lira, të lexueshme dhe mjaft të lehta për tu punuar. Por ata gjithashtu kanë disa të meta, këto ekrane marrin shumë kunja I/O kur lidhen me Arduino. Në projektet e thjeshta kjo nuk është shqetësuese, por kur projektet bëhen të mëdha, me shumë IO, ose kur disa kunja nevojiten për gjëra të tilla si leximi analog ose PWM, fakti që këto LCD kërkojnë një minimum prej 6 kunjash mund të bëhet një problem. Por ne mund ta zgjidhim këtë problem në një mënyrë të lirë dhe interesante.

Hapi 1: Marrja e Komponentëve

Kam përdorur TaydaElectronics për shumicën e përbërësve që kam përdorur në këtë projekt. Ju mund t'i merrni këto pjesë edhe në ebay, por për lehtësinë e përdorimit, unë do t'ju lidh me Tayda. Lista e Dyqaneve 2 - Paketa 74HC595 DIP161 - Koka e përgjithshme mashkullore - 2 kunja. Kjo nuk kërkohet, e kam përdorur këtë si një mënyrë për të çaktivizuar përgjithmonë dritën e pasme.3 - Kondensator qeramik - kapaciteti 0.1µF; tension 50V1 - Kondensator elektrolitik - kapaciteti 10μF; tension 35V1 - Kondensator qeramik - kapaciteti 220pF; tension 50V1 - NPN -Transistor - pjesa # PN2222A* 1 - 1k Ω Rezistori1 - Potenciometër prerës - rezistencë maksimale 5kΩ1 - 470 Ω Rezistencë* Me një transistor NPN drita e pasme do të qëndrojë e fikur derisa të ndizet nga programi kompjuterik. Nëse dëshironi të keni dritën e prapme të ndezur si parazgjedhje, përdorni një transistor të tipit PNP. Megjithatë, ndryshimet në kodin e bibliotekës së ofruar do të bëhen. Nën totali për këtë listë është 0.744 dollarë. Titulli i kunjit gjithashtu nuk kërkohet, kështu që ju mund të kurseni 15 centë atje dhe nën -totali do të jetë 0.6 dollarë.

Hapi 2: Njihni pajisjen tuaj #1

Njihni pajisjen tuaj #1
Njihni pajisjen tuaj #1

Këtu është një kunj standard nga një LCD HD44780, është gjithashtu shumë i ngjashëm me disa LCD grafikë gjithashtu. HD44780 mund të funksionojë në dy mënyra: 1. Mënyra 4-bit, ku çdo bajt i dërguar në LCD përbëhet nga 2 pjesë 4-bit. 2. Mënyra 8-bit, në të cilën do të fokusohemi. LCD ka 16 kunja gjithsej, 3 kunja kontrolli dhe 8 kunja të dhënash: RS - Kontrollon nëse duam të dërgojmë një komandë ose të dhëna në LCD. Ku 'e lartë' do të thotë të dhëna (një karakter) dhe 'e ulët' do të thotë një komandë byte. R/W - Kontrolluesi HD44780 ju lejon të lexoni nga RAM -i i tij. Kur kjo kunj është 'e lartë' ne mund të lexojmë të dhëna nga kunjat e të dhënave të saj. Kur është 'e ulët' mund të shkruajmë të dhëna në LCD. Edhe pse opsioni për të lexuar nga LCD mund të jetë i dobishëm në disa raste, ne nuk do ta kalojmë atë në këtë tutorial, dhe thjesht do ta tokëzojmë këtë kunj për të siguruar që është gjithmonë në modalitetin e Shkrimit. E - E është kunja "Aktivizo", kjo kunj është e ndryshuar 'lartë' pastaj 'e ulët' për të shkruar të dhënat në RAM -in e saj dhe përfundimisht shfaqjen e tyre në ekran. DB0-7 - Këto janë kunjat e të dhënave. Në modalitetin 4 -bit ne përdorim vetëm 4 bitet e larta DB4 -DB7, dhe në modalitetin 8 bit të gjitha ato përdoren. VSS - Ky është kunja e tokëzimit. VCC - Ky është kunja e energjisë, LCD -ja mbaron nga një furnizim me energji 5V, ne mund ta furnizojmë lehtë me energji nga kunja Arduino + 5v. Vo - Kjo është kunja e cila ju lejon të vendosni nivelin e kontrastit për ekranin, kërkon një potenciometër, zakonisht përdoret një tenxhere 5K Ohm. LED + - Ky është burim energjie për dritën e prapme. Disa LCD nuk vijnë me dritë prapa dhe kanë vetëm 14 kunja. Në shumicën e rasteve ky pin kërkon gjithashtu një lidhje +5v. LED- - Kjo është baza për dritën e pasme. ** isshtë e rëndësishme të kontrolloni fletën e të dhënave të ekranit ose të kontrolloni PCB -në e tij për të kontrolluar për një rezistencë të dritës së prapme, shumica e LCD -ve do t'i kenë ato të ndërtuara -në, në këtë rast gjithçka që duhet të bëni është të aplikoni energji në LED+ dhe tokë në LED-. Por në rast se LCD juaj nuk ka një rezistencë të integruar për dritën e prapme, është e rëndësishme që të shtoni një, përndryshe drita e prapme do të konsumojë shumë energji dhe përfundimisht do të digjet. Në shumicën e rasteve mënyra se si ky LCD është lidhur me Arduino është duke e përdorur atë në modalitetin 4-bit dhe duke tokëzuar kunjin R/W. Në këtë mënyrë ne përdorim kunjat RS, E dhe DB4-DB7. Drejtimi në modalitetin 4-bit ka një tjetër disavantazh të vogël në atë që kërkon dy herë më shumë kohë për të shkruar të dhëna në ekran sesa do të duhej në një konfigurim 8-bit. LCD ka një kohë 'zgjidhjeje' prej 37 mikrosekonda, kjo do të thotë që ju duhet të prisni 37 mikrosekonda para se të dërgoni komandën tjetër ose bajt të të dhënave në LCD. Meqenëse në modalitetin 4-bit duhet të dërgojmë të dhëna dy herë për secilin bajt, koha totale që duhet për të shkruar një bajt të vetëm shkon në 74mikrosekonda. Kjo është ende mjaft e shpejtë, por doja që modeli im të prodhonte rezultatet më të mira të mundshme. Zgjidhja e problemit tonë me numrin e kunjave të përdorur qëndron në një konvertues serial në paralel…

Hapi 3: Njihni pajisjen tuaj #2

Njihni pajisjen tuaj #2
Njihni pajisjen tuaj #2

Ajo që ne do të bëjmë është të ndërtojmë një përshtatës i cili merr një lloj komunikimi serik që del nga Arduino dhe i konverton të dhënat në një dalje paralele e cila mund të furnizohet me LCD -in tonë. Vjen çipi 74HC595. Ky është një regjistër ndërrimi shumë i lirë dhe i thjeshtë për t’u përdorur. Në thelb ajo që bën është të marrë një orë dhe sinjale të dhënash të cilat i përdor për të mbushur një tampon të brendshëm 8 bitësh me 8 bitët e fundit që ishin 'futur në orë'. Pasi kunja 'Latch' (ST_CP) të jetë sjellë 'lartë', i zhvendos këto pjesë në 8 daljet e saj. 595 ka një veçori shumë të bukur, ka një kunj të dhënash serik (Q7 '), ky kunj mund të përdoret për të bashkuar zinxhirin 2 ose më shumë 595 së bashku për të formuar adaptorë Serial në Paralel të cilët janë 16 ose më shumë pjesë të gjerë. Për këtë projekt do të na duhen 2 nga këto patate të skuqura. Skema gjithashtu mund të modifikohet për të punuar me një 595 të vetëm në modalitetin 4-bit, por kjo nuk do të mbulohet nga ky udhëzues.

Hapi 4: Instalimi i të gjithave

Instalimi i të gjithave
Instalimi i të gjithave

Tani që e dimë se si funksionon pajisja jonë, mund t'i lidhim të gjitha. Në skemë ne shohim 2 595 patate të skuqura margaritë të lidhura së bashku për të formuar një dalje paralele 16 bit. Çipi i poshtëm është në fakt ai kryesor, dhe ai i sipërmi është margaritar i lidhur me të. Ajo që shohim këtu është se pjesa e poshtme 595 po drejton kunjat e të dhënave të LCD në një konfigurim 8-bit, çipi i sipërm kontrollon sinjalin RS dhe dritën e pasme duke ndezur ose fikur një tranzistor. Mbani mend shënimin *për dritën e pasme të LCD në Njihni faqen tuaj të pajisjes #1, në rast se LCD juaj nuk ka një rezistencë të dritës së prapme, mos harroni të shtoni një në qarkun tuaj. Në rastin tim LCD-të që kam ardhur tashmë me një rezistencë të integruar, kështu që e kalova këtë hap. Kontrasti aplikohet përmes një tenxhere 5K Ohm, një kunj shkon në GND, e dyta shkon në VCC dhe fshirësi në kunjin Vo në LCD. Kondensatorët e përdorur në linjat VCC të LCD dhe 595 po shkëputin kondensatorët, ata janë atje për të hequr qafe ndërhyrjen. Ato nuk janë të detyrueshme nëse punoni në një dërrasë buke, por duhet të përdoren në rast se ndërtoni versionin tuaj të këtij qarku që do të përdoret jashtë "kushteve laboratorike". R5 dhe C9 në atë rend shumë specifik krijojnë një vonesë RC, e cila siguron që të dhënat në daljet e 595 të kenë kohë të stabilizohen para se kunja Enable në LCD të vendoset 'lartë' dhe të lexojë të dhënat. Q7 'i pjesës së poshtme 595 futet në hyrjen e të dhënave serike të 595 në krye, kjo krijon një zinxhir margaritar prej 595 dhe kështu një ndërfaqe 16 bit. Lidhja me Arduino është e lehtë. Ne përdorim një konfigurim me 3 tela, duke përdorur kunjat SPI të Arduino. Kjo lejon transferime shumë të shpejta të të dhënave, dërgimi i 2 bajtëve në LCD zakonisht zgjat rreth 8 mikrosekonda. Kjo është shumë e shpejtë dhe në të vërtetë është shumë më e shpejtë se koha që i duhet LCD -së për të përpunuar të dhënat, kështu që nevojitet një vonesë prej 30 mikrosekonda mes secilit shkrim. Një përfitim shumë i madh i përdorimit të SPI është se kunjat D11 dhe D13 ndahen me pajisjet e tjera SPI. Kjo do të thotë që nëse tashmë keni një komponent tjetër që përdor SPI, siç është një akselerometër, kjo zgjidhje do të përdorë vetëm një pin shtesë për sinjalin e aktivizimit. Në faqen tjetër do të shohim rezultatin. Unë kam ndërtuar një çantë shpine në një dërrasë dhe ajo po funksionon shumë mirë për mua deri më tani.

Hapi 5: Rezultati + Biblioteka

Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka
Rezultati + Biblioteka

"Një fotografi vlen sa një mijë fjalë", jam dakord me këtë deklaratë, kështu që këtu janë disa imazhe të rezultatit përfundimtar për këtë projekt. Këto janë imazhe të produktit të përfunduar, pamja e Fritzing PCB është paraqitja e tabelës së dyshemesë që kam përdorur për të ndërtuar çantën e shpinës. Ju mund ta gjeni të dobishëm nëse doni të ndërtoni tuajin. Më pëlqeu aq shumë saqë hartova një PCB duke përdorur DipTrace dhe porosita një seri prej 10 PCB. Do të më duhen 2 ose 3 njësi për veten time, por pjesën tjetër do ta vë në dispozicion për një çmim simbolik kur t'i marr ato. Pra, nëse dikush është i interesuar, ju lutem më tregoni. * Ndrysho: PCB -të janë këtu dhe funksionojnë. Këtu është galeria e plotë e fotografive për këtë projekt, përfshirë PCB -të aktuale. https://imgur.com/a/mUkpw#0 Sigurisht që nuk harrova gjënë më të rëndësishme, një bibliotekë me të cilën do ta përdorja këtë qark. Isshtë në përputhje me bibliotekën LiquidCrystal të përfshirë me Arduino IDE, kështu që ju lehtë mund të zëvendësoni deklaratat në krye të skicës tuaj dhe të mos keni nevojë të ndryshoni asgjë tjetër në skicën tuaj. Ekziston gjithashtu një skicë shembull e cila tregon se si funksionon secili funksion në bibliotekë, prandaj shikojeni.

Recommended: