Jūs rakstījāt programmā Arduino kaut kas līdzīgs:
lcd.print ("Sveika, pasaule!")
Valde paklausīgi izpildīja komandu, un teksts parādījās displejā. Bet kā viena ierīce kaut ko “teica”, bet otra - “dzird” un “saprot”? Tas ir tāpat kā lūgt mākslinieku izgatavot jūsu portretu, bet neredzēt, kā viņš uz tā strādā. Instructsbles autors ar iesauku indoorgeek nāca klajā ar stendu, kas palīdzēs jums justies “dzīvā Arduino” kurpēs un vadīt HD44780 zemā līmenī. Vienā no konkursiem šis mājās gatavots ieguva pirmo balvu.
Tam nepieciešama sīka detaļa: jebkurš modulis (LCD, VLI vai PMOLED) uz HD44780 kontroliera vai saderīgs, astoņi pārslēdzēji, poga bez aizvēršanās, slīdēšanas slēdzis, 1 kΩ mainīgs rezistors, tāfele ar Micro USB ligzdu un korpuss.
No tā, kas nav parādīts fotoattēlā, mums ir nepieciešams: rezistors 10 kOhm un kondensators 100 μF un vismaz 6,3 V.
Pats Indoorgeek ņēma moduli, kas ir visizplatītākais: LCD, 16 rakstzīmes vienā rindā, divas līnijas. Bet pārējiem moduļiem ir tāds pats vadības princips, tikai uzmava var nedaudz atšķirties, tāpēc neesiet pārāk slinks, lai ieskatītos datu lapā.
Visos gadījumos savienojums ar kopējo vadu atbilst loģiskajai nullei, un savienojums ar +5 voltu barošanas bloku atbilst vienotībai.
1. un 2. tapa ir paredzēta moduļa darbināšanai. Pirmais no tiem vienmēr ir savienots ar kopēju vadu, bet otrais vienmēr ir ar barošanas kopni.
3. tapa ir paredzēta kontrasta pielāgošanai. Kad tam tiek piemērots spriegums no 0 līdz 5 voltiem attiecībā pret kopējo vadu, kontrasts mainās no nulles līdz maksimālajam.
4. piespraude ļauj izvēlēties starp datu reģistru un instrukciju reģistru. Mēs piešķiram loģisku nulli - tiek izvēlēts instrukciju reģistrs (citiem vārdiem sakot, komandas), vienība ir datu reģistrs.
Norādījumi var būt, piemēram, šādi: inicializējiet kontrolieri, notīriet ekrānu utt., Un dati satur zīmes, kuras parādīsit uz indikatora.
Gluži pretēji, jūs varat lasīt datus no kāda reģistra. Lai to izdarītu, 5. piespraudei jāpiemēro augsts līmenis, un displejs pāries informācijas izvadīšanas režīmā atpakaļ uz jūsu mikrokontrolleri. Lai atkal sāktu rakstīt datus no mikrokontrollera uz displeja kontrolieri, jums ir jānosūta zems 5. līmenis līdz 5. pin. Diezgan bieži lasīšanas režīms netiek izmantots vispār, kā, piemēram, šajā pašdarinātajā izstrādājumā.
Saskaņā ar tapām no 7 līdz 14, displejs var apmainīties ar komandām un datiem 8 bitu kodējumā. Zemākais līmenis atbilst 7. tapai, augstākais - 14.
6. piespraude ir nepieciešama vārtu iegūšanai.Jūs lēnām iestatāt datus uz tapām no 7 līdz 14, taču, lai arī 6. piespraude ir loģiska nulle, modulis uz to vispār nereaģē. Pēc tam, nemainot tapu 7 līdz 14 stāvokli, jūs nosūtāt augsta līmeņa īstermiņa impulsu uz 7. tapu - un dati tiek nosūtīti.
15. un 16. secinājums - fona apgaismojuma uzturs, ja tāds ir. 15 - plus, 16 - mīnus.
Pieejams indorgeek, lietas izrādījās 200x150x40 milimetru izmēra. Šī lieta tika paņemta no citas, izjauktas mājās gatavotas, un tajā jau bija caurumi. Meistars tos maksimāli izmantoja jaunajā dizainā, lai izdarītu pēc iespējas mazāk papildu.
Viņš uzstādīja astoņus pārslēgšanas slēdžus, lai mainītu datu / komandu kopņu līniju stāvokli, slēdzi, lai izvēlētos starp reģistriem (skat. Iepriekš), pogu vārtīšanai, mainīgu rezistoru, lai nepārtraukti pielāgotu kontrastu.
Stāvēja dēlim ar Micro USB ligzdu ir ērtas tapas, kas ļauj ērti savienot vadus. Šeit nepieciešami tikai divi no tiem: +5 V un parasts vads. Ja jums šāda paneļa nav un kaut kur pielodēta Micro USB ligzda šķiet lodēšanai neērta, varat vienkārši paņemt vadu ar USB savienotāju. Jebkurā gadījumā atkārtosim pēc meistara un lodēt šādu shēmu:
Pārslēgšanas slēdžu kontakti, kas atbilst augšējai pozīcijai, indorgeek ir savienoti kopā un reģistrē tiem plusu. Viņš to pašu darīja ar pārslēgšanas slēdžu kontaktiem, kas atbilst zemākajai pozīcijai, tikai viņš tiem deva mīnusu. Pārslēgšanas slēdžu kustīgos kontaktus viņš savienoja nevis savā starpā, bet ar datu kopnes / moduļa komandu secinājumiem saskaņā ar to abu “svaru” (D0 - 7. tapa - vismazākais nozīmīgais bits, D7 - 7. tapa - visaugstākais). Ja kapteinis bērnībā nebūtu iekodis uzmundrinātos savilktos rezistorus, viņš varētu izmantot vienkāršākus pārslēgšanas slēdžus - nevis slēdžus, bet parasti atvērtus.
Bet tie paši rezistori, bet kontaktu lielības slāpēšanas ķēdēs viņš nekad netika apvainots. Šeit šī ķēde ir nepieciešama, lai displeja kontrolieris neatkārtotu vienu strobošanas pogas nospiešanu vairākas reizes. Citām vadīklām nav nepieciešama pļāpāšanas nomākšana, jo, kamēr netiek saņemti zibspuldzes impulsi, atlikušo līniju dati var mainīties tik daudz reizes, cik vēlaties. Galvenais nav pieskarties pārslēgšanas slēdžiem un slēdzim, nospiežot pogu. Tātad, ar rezistoru 10 kOhm, kapteinis pievilka tapu 6 pie kopējās stieples un ar pogu līdz plus autobusam. Tā kā pogas pretestība ir daudz zemāka, nospiežot, tā “ievelkas”. Atlaižot, tā pretestība kļūst tuvu bezgalībai, un rezistors to jau “velk”. 100 uF kondensators (nav parādīts diagrammā), kas savienots ar plus pie plus kopnes un ar mīnusu ar rezistoru un displeja sesto izvadi, nomāc pļāpāšanu. Labāk, protams, ir apspiest pļāpāšanu ar slēdža pogu un RS sprūdu.
Bīdāmajā slēdžā fiksēto kontaktu izejas ir savienotas tāpat kā pārslēdzēju slēdžiem, un pārvietojamais slēdzis ir savienots ar 6. moduļa izeju. Šeit izstrādātājs atkal parādīja bailes no pull-up rezistoriem. Šis slēdzis ir nepieciešams, lai izvēlētos starp komandu (nulle) un datu (vienība) pārsūtīšanas režīmiem.
Indoorgeek savienoja mainīgā rezistora izvadi, kas atbilst minimālajam kontrastam ar parasto vadu, kas ir pretējs plus kopnei, un vidējo (motoru) ar moduļa trešo izeju.
Secinājumi 1, 5 un 16 (attiecīgi mīnus jauda, rakstīšanas / lasīšanas un mīnus fona apgaismojums) kapteinis ir savienots ar kopēju vadu, tādējādi ierakstīšanas režīms tiek pastāvīgi izvēlēts. Secinājumi 2 un 15 (attiecīgi, plus jauda un plus apgaismojums), viņš savienoja ar piecu voltu autobusu. Displeja modulī ir integrēts strāvas ierobežojošais rezistors caur fona apgaismojuma gaismas diodēm.
Ja jūs to visu esat savācis, tagad priekšā - kaut kas līdzīgs šim:
Priekšējais panelis iekštelpās ir veidots tā, lai jūs varētu rīkoties tāpat:
Jūs varat uzzināt HD44780 kontroliera komandas un kā tās vadīt datu lapa. Varat arī redzēt gatavu skriptu piemērus simulators. Iesācējiem mēs atkārtosim darbības aiz iekštelpu, lai parādītu HELLO!
Ieslēdziet ierīci. Iedegsies fona apgaismojums. Pārbīdiet slēdzi pozīcijā, kas atbilst loģiskajai nullei, lai indikators pārslēgtos komandu saņemšanas režīmā. Ar pārslēgšanas slēdžiem komandu / datu kopnē iestatiet bināro numuru 00001111 un īsi nospiediet taustiņu. Šī komanda nozīmē: ieslēdziet displeju, padariet kursoru redzamu un mirgojošu, kas notiks. Tādā pašā veidā mēs izdosim komandu 00110000, kas nozīmē: saņemt datus 8 bitu formātā, atlasiet pirmo rindu un fontu 5 līdz 8 pikseļiem. Vizuāli nekas nenotiks, bet kaut kur displeja kontrollera iekšpusē notiks nepieciešamie slēdži. Jūs varat pārsūtīt datus. Mēs tulkojam slīdņa slēdzi pozīcijā, kas atbilst loģiskajai vienībai, tagad indikatora modulis ir gatavs tos pieņemt. Iestatiet burta H ASCII kodu, t.i., 01001000, pārslēdziet kopnes pārslēgšanas slēdžus un nospiediet strobos pogu. Atbilstošais burts parādās uz ekrāna, un kursors pārvietojas vienu pozīciju pa labi. Līdzīgi mēs pārsūtīsim burtus E, L, L, O un izsaukuma zīmi: 01000101, 01001100, 01001100, 01001111, 00100001. Ja jūs izdarījāt to pašu, tam nav nozīmes tikko samontētajā stendā vai simulatorā, jūs redzēsit uzrakstu HELLO. ! Piemēram:
Tas ir tas, kā jūs sapratāt, cik daudz Arduino izdara, lai parādītu tikai dažas rakstzīmes. Un ir komandas, kuras veic sarežģītākas darbības, pēc apgūšanas, kurā varat iegūt interesantus efektus, definēt nestandarta rakstzīmes ...
Jūsu ekskursija uz Arduino bibliotēkas LiquidCrystal “virtuvi” vēl tikai sākas, un ļaujiet tai izklaidēties!