Kila mtaalamu wa redio, baada ya kazi rahisi ya DIY, hufikia lengo la kuunda kitu kizuri kwa kutumia vitambuzi na vitufe. Baada ya yote, ni ya kuvutia zaidi kuonyesha data kwenye onyesho kuliko kwenye mfuatiliaji wa bandari. Lakini basi swali linatokea: ni maonyesho gani ya kuchagua? Na kwa ujumla, jinsi ya kuiunganisha, ni nini kinachohitajika kuunganisha? Majibu ya maswali haya yatajadiliwa katika makala haya.
LCD 1602
Kati ya chaguo nyingi kati ya skrini, ningependa kubainisha onyesho la LCD1602 kulingana na kidhibiti cha HD4478. Kuna onyesho hili katika rangi mbili: herufi nyeupe kwenye msingi wa bluu, herufi nyeusi kwenye asili ya manjano. Kuunganisha LCD 1602 kwenye Arduino haitasababisha matatizo yoyote ama, kwa kuwa kuna maktaba iliyojengwa, na huna haja ya kupakua chochote cha ziada. Maonyesho hutofautiana tu kwa bei, bali pia kwa ukubwa. Mara nyingi mastaa wa redio hutumia 16x 2, yaani, mistari 2 ya herufi 16. Lakini pia kuna 20 x 4, ambapo kuna mistari 4 ya herufi 20. Vipimo na rangi havina jukumu lolote katika kuunganisha onyesho la lcd 1602 kwa Arduno, zimeunganishwa kwa njia ile ile. Pembe ya kutazama ni digrii 35, wakati wa majibu ya kuonyesha ni 250 ms. Inaweza kufanya kazi kwa joto kutoka -20 hadi 70 digrii Celsius. Inapofanya kazi, hutumia mA 4 kwa skrini na 120 mA kwa taa ya nyuma.
Inatumika wapi?
Onyesho hili lina umaarufu wake si tu miongoni mwa watu wasiojiweza kwenye redio, bali pia miongoni mwa watengenezaji wakubwa. Kwa mfano, printers, mashine za kahawa pia hutumia LCD1602. Hii ni kutokana na bei yake ya chini, maonyesho haya yana gharama ya rubles 200-300 kwenye maeneo ya Kichina. Inastahili kununua huko, kwani katika maduka yetu kando ya onyesho hili ni kubwa sana.
Unganisha kwa Arduino
Kuunganisha LCD 1602 kwa Arduino Nano na Uno sio tofauti. Unaweza kufanya kazi na maonyesho kwa njia mbili: bits 4 na 8. Wakati wa kufanya kazi na maonyesho ya 8-bit, bits zote za chini na za juu hutumiwa, na kwa 4-bit moja, tu ya chini. Hakuna hatua fulani katika kufanya kazi na 8-bit, kwa kuwa mawasiliano 4 zaidi yataongezwa ili kuunganisha, ambayo haifai, kwa sababu kasi haitakuwa ya juu, kikomo cha sasisho la maonyesho ni mara 10 kwa pili. Kwa ujumla, waya nyingi hutumiwa kuunganisha lcd 1602 kwa Arduino, ambayo husababisha usumbufu fulani, lakini kuna ngao maalum, lakini zaidi juu ya hilo baadaye. Picha inaonyesha muunganisho wa skrini kwenye Uno ya Arduino:
Mfano wa kanuni:
pamoja na //Ongeza maktaba inayohitajika LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) usanidi wa utupu(){ lcd.begin(16, 2); // Weka kipimo cha skrini lcd.setCursor(0, 0); // Weka mshale hadi mwanzo wa mstari wa 1 lcd.print ("Hello, dunia!"); // Onyesha maandishi ya lcd. setCursor (0, 1); // Weka mshale mwanzoni mwa mstari wa 2 lcd.print ("fb.ru"); // Maandishi ya pato } kitanzi tupu(){ }
Msimbo hufanya nini? Awali ya yote, maktaba ya kufanya kazi na maonyesho imeunganishwa. Kama ilivyoelezwa hapo juu, maktaba hii tayari imejumuishwa kwenye IDE ya Arduino na hauitaji kupakua na kuisakinisha kwa kuongeza. Ifuatayo, mawasiliano ambayo yanaunganishwa na pini yanafafanuliwa: RS, E, DB4, DB5, DB6, DB7, kwa mtiririko huo. Kisha ukubwa wa skrini umewekwa. Kwa kuwa tunafanya kazi na toleo na herufi 16 na mistari 2, tunaandika maadili kama haya. Tunaweka mshale hadi mwanzo wa mstari wa kwanza na kuonyesha maandishi yetu ya kwanza Hello World. Ifuatayo, weka mshale kwenye mstari wa pili na uonyeshe jina la tovuti. Ni hayo tu! Kuunganisha lcd 1602 kwa Arduino Uno kulizingatiwa.
I2C ni nini na kwa nini inahitajika?
Kama ilivyotajwa hapo juu, kuunganisha skrini kunahitaji pini nyingi. Kwa mfano, wakati wa kufanya kazi na sensorer nyingi na onyesho la LCD anwani 1602 inaweza kuwa haitoshi. Mara nyingi, amateurs wa redio hutumia matoleo ya Uno au Nano, ambapo hakuna anwani nyingi. Kisha watu wakaja na ngao maalum. Kwa mfano, I2C. Inakuruhusu kuunganisha onyesho na pini 4 tu. Hii ni mara mbili chini. Moduli ya I2C inauzwa zote mbili tofauti, ambapo unahitaji kuiuza mwenyewe, na tayari kuuzwa kwaOnyesho la LCD 1602.
Muunganisho na moduli ya I2C
Kuunganisha LCD 1602 kwa Arduino Nano kwa kutumia I2C huchukua nafasi kidogo, pini 4 pekee: msingi, nishati na matokeo 2 ya data. Tunaunganisha nguvu na ardhi kwa 5V na GND kwenye Arduino, mtawalia. Anwani mbili zilizobaki: SCL na SDA zimeunganishwa kwa pini zozote za analogi. Katika picha unaweza kuona mfano wa kuunganisha lcd 1602 kwa arduino na moduli ya I2C:
Msimbo wa programu
Ikiwa ilikuwa muhimu kutumia maktaba moja pekee kufanya kazi na onyesho bila moduli, basi maktaba mbili zinahitajika ili kufanya kazi na moduli. Mmoja wao tayari yuko kwenye Arduino IDE - Wire. Maktaba nyingine, LiquidCrystal I2C, inahitaji kupakuliwa tofauti na kusakinishwa. Ili kufunga maktaba katika Arduino, yaliyomo kwenye kumbukumbu iliyopakuliwa lazima ipakwe kwenye folda ya mizizi ya Maktaba. Mfano wa msimbo kwa kutumia I2C:
pamoja na pamoja na LiquidCrystal_I2C lcd(0x27, 16, 2); // Sanidi usanidi wa utupu wa kuonyesha () {lcd.init(); lcd.backlight();// Washa taa ya nyuma ya onyesho lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() {// Weka kishale kwa mstari wa pili na ubatili wa herufi. lcd.setCursor(0, 1); // Chapisha idadi ya sekunde tangu arduino ianze lcd.print(millis()/1000); }
Kama unavyoona, msimbo unakaribia kuwa sawa.
Nitaongezaje alama yangu mwenyewe?
Tatizo la maonyesho haya ni kwamba hakunamsaada kwa Cyrillic na alama. Kwa mfano, unahitaji kupakia herufi fulani kwenye onyesho ili iweze kuiakisi. Ili kufanya hivyo, onyesho hukuruhusu kuunda hadi wahusika 7 wako. Wasilisha meza:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Kama 0 - hakuna kitu hapo, ikiwa 1 - ni eneo lenye kivuli. Katika mfano hapo juu, unaweza kuona uumbaji wa tabia ya "smiling smiley". Kutumia programu ya mfano katika Arduino, itaonekana kama hii:
jumuisha jumuisha // Jumuisha maktaba inayohitajika // Alama ya tabasamu ya bitmask tabasamu[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) usanidi wa utupu(){ lcd.begin(16, 2); // Weka kipimo cha skrini lcd.createChar(1, tabasamu); // Unda nambari ya mhusika 1 lcd.setCursor(0, 0); // Weka mshale mwanzoni mwa mstari wa 1 lcd.print("\1"); // Onyesha tabasamu (nambari ya herufi 1) - "\1" } kitanzi tupu(){ }
Kama unavyoona, iliundwabitmask ni sawa na meza. Baada ya kuunda, inaweza kutolewa kama kibadilishaji kwenye onyesho. Kumbuka kwamba herufi 7 pekee zinaweza kuhifadhiwa kwenye kumbukumbu. Kimsingi, hii inatosha. Kwa mfano, ikiwa ungependa kuonyesha ishara ya shahada.
Matatizo ambapo onyesho huenda lisifanye kazi
Kuna wakati skrini haifanyi kazi. Kwa mfano, inawasha, lakini haionyeshi wahusika. Au haiwashi kabisa. Kwanza, angalia ikiwa umeunganisha anwani kwa usahihi. Ikiwa ulitumia kuunganisha lcd 1202 kwa Arduino bila I2C, basi ni rahisi sana kupata tangled katika waya, ambayo inaweza kusababisha kuonyesha kazi vibaya. Unapaswa pia kuhakikisha kuwa utofautishaji wa onyesho umeongezeka, kwani kwa utofautishaji wa chini kabisa hauonekani hata ikiwa LCD 1602 imewashwa au la. Ikiwa hii haisaidii, basi labda shida inaweza kuwa katika soldering ya mawasiliano, hii ni wakati wa kutumia moduli ya I2C. Pia, sababu ya kawaida kwa nini onyesho linaweza kufanya kazi ni mpangilio usio sahihi wa anwani ya I2C. Ukweli ni kwamba kuna wazalishaji wengi, na wanaweza kuweka anwani tofauti, unahitaji kusahihisha hapa:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Kwenye mabano unaweza kuona thamani mbili, 0x27 na 16, 2 (16, 2 ndio saizi ya kuonyesha, na 0x27 ni anwani ya I2C pekee). Badala ya maadili haya, unaweza kujaribu kuweka 0x37 au 0x3F. Kweli, sababu nyingine ni LCD 1602 mbaya tu. Kwa kuzingatia kwamba karibu kila kitu kwa Arduino kinafanywa nchini China, huwezi kuwa na uhakika wa 100% kwamba kununuliwa.bidhaa haina kasoro.
LCD 1602 faida na hasara
Hebu tuangalie faida na hasara za LCD 1602.
Faida
- Bei. Moduli hii inaweza kununuliwa kwa bei ya bei nafuu sana katika maduka ya Kichina. Bei ni rubles 200-300. Wakati mwingine hata huuzwa na moduli ya I2C.
- Rahisi kuunganisha. Pengine hakuna mtu anayeunganisha LCD 1602 bila I2C siku hizi. Na kwa sehemu hii, muunganisho unachukua pini 4 pekee, hakutakuwa na "wavuti" za waya.
- Kupanga programu. Shukrani kwa maktaba zilizopangwa tayari, kufanya kazi na moduli hii ni rahisi, kazi zote tayari zimesajiliwa. Na kama unahitaji kuongeza mhusika wako, itachukua dakika chache tu.
Hasara
Wakati wa muda wa matumizi ya maelfu ya wapenda redio, hakuna makosa makubwa ambayo yametambuliwa, kuna matukio ya kununua ndoa pekee, kwa kuwa chaguo za kuonyesha Kichina ndizo zinazotumiwa zaidi
Makala haya yalijadili jinsi ya kuunganisha onyesho la LCD 1602 kwenye Arduino, na pia kuwasilisha sampuli za programu za kufanya kazi na onyesho hili. Kwa hakika ni mojawapo bora zaidi katika kategoria yake, sio tu kwamba maelfu ya wapenda redio huichagua kwa miradi yao!