Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Mieli draugai, sveiki atvykę į kitą „Instructable“! Šioje pamokoje mes pirmą kartą pažvelgsime į šį didelį LCD ekraną ir su juo sukursime temperatūros ir drėgmės monitorių.
Aš visada norėjau sužinoti ekraną, panašų į ekraną, kurį naudoja mano 3D spausdintuvas, nes jis yra didelis ir nebrangus, todėl gali būti labai naudingas daugeliui projektų. Apsidairęs supratau, kad šis spausdintuvo ekranas yra šis. Didelis 3,2 colių ekranas su ST7920 tvarkykle ir 128x64 pikselių raiška. Saunus! Kaip matote, jis yra daug didesnis nei dauguma ekranų, kuriuos iki šiol naudojome savo projektuose, todėl jis bus naudingas daugeliui būsimų projektų. Tai kainuoja tik apie 6 USD!
Ją galite gauti čia →
Prekės
- LCD ekranas ST7920 →
- „Arduino Uno“→
- DHT22 jutiklis →
- Duonos lenta →
- Laidai →
1 žingsnis: Prisijunkite prie „Arduino“
Dabar pažiūrėkime, kaip jį naudoti su „Arduino“. Šiandien ketinu naudoti „Arduino Uno“, tačiau jis veikia su daugeliu „Arduino“plokščių.
Ekranas naudoja SPI sąsają, kad galėtų bendrauti su mikrovaldikliu, todėl turime ją prijungti prie „Arduino“plokštės aparatinės įrangos SPI kaiščių.
Kaip matote, ekrane yra daug kaiščių, kuriuos reikia prijungti, tačiau nesijaudinkite, kad mums nereikia prijungti visų šių kaiščių, tik 9 iš jų ir tik 4 iš jų prie skaitmeninių „Arduino Uno“plokštės kaiščių.
Pirmasis kaištis, kuris yra GND, eina į „Arduino GND“. Antrasis kaištis, kuris yra „Vcc“, eina į „Arduino 5V“išvestį. RS kaištis eina į skaitmeninį kaištį 10. R/W kaištis eina į skaitmeninį kaištį 11. E kaištis eina į skaitmeninį kaištį 13. PSB kaištis eina į GND, RST kaištis eina į skaitmeninį kaištį 8, BLA eina į „Arduino“3.3V išvestį o BLK kaištis eina į GND. Štai mūsų ekranas paruoštas naudoti!
Mes galime palengvinti savo gyvenimą, jei kartu sujungsime visus ekrano GND kaiščius.
2 veiksmas: ekrano biblioteka
Dabar pažiūrėkime, kokia programinė įranga mums reikalinga norint valdyti šį ekraną.
Aš naudosiu u8g biblioteką šiam ekranui vairuoti. Pirmiausia įdiekime biblioteką. Atidarome „Arduino IDE“ir meniu pasirenkame Eskizas → Įtraukti biblioteką → Tvarkyti bibliotekas ir ieškome U8G2 bibliotekos. Mes pasirenkame jį ir paspaudžiame įdiegti! Štai ir viskas, mūsų biblioteka yra paruošta naudoti.
Dabar eikime į Failas → Pavyzdžiai ir iš bibliotekoje pateiktų pavyzdžių paleiskite „GraphicsText“pavyzdį. Mums reikia tik vieną kartą pakeisti eskizą prieš įkeliant jį į lentą. Kadangi U8G biblioteka palaiko daugelį ekranų, turime pasirinkti tinkamą ekraną. Taigi ieškome kodo „ST7920“ir iš galimų konstruktorių pasirenkame naudoti HW_SPI. Mes nekomentuojame šios eilutės ir esame pasirengę įkelti eskizą į „Arduino“. Po kelių sekundžių eskizas parengtas ir paleistas.
Jei nieko nematote ekrane, turite sureguliuoti ekrano kontrastą naudodami šį mažą potenciometrą, esantį ekrano gale
Dabar kelias sekundes pažiūrėkime demonstracinį eskizą. Kaip matote, šis eskizo pavyzdys parodo bibliotekos ir ekrano galimybes. Su šiuo ekranu galime pasiekti puikių animacijų, jis yra gana pajėgus. Štai kodėl jis naudojamas daugelyje 3D spausdintuvų.
3 žingsnis: Sukurkime orų stotį
Dabar kurkime ką nors naudingo. Prijunkime DHT22 temperatūros ir drėgmės jutiklį prie „Arduino“. Mums reikia tik maitinimo ir signalinio laido, kurį prijungiu prie skaitmeninio kaiščio 7. Kad būtų lengviau, taip pat naudoju nedidelę duonos lentą. Schemos schemą galite rasti čia.
Kaip matote, projektas veikia gerai ir realiuoju laiku rodo temperatūrą bei drėgmę.
Dabar trumpai pažvelkime į projekto kodą. Turėdami tik 60 kodo eilučių, mes galime sukurti tokį projektą! Argi tai ne šaunu! Viskas, ką turime padaryti, norėdami naudoti ekraną, yra naudoti šį konstruktorių:
U8G2_ST7920_128X64_1_HW_SPI u8g2 (U8G2_R0, /* CS =* / 10, /* atstatymas =* / 8);
inicijuoti ekraną sąrankos funkcijoje:
u8g2.begin (); u8g2.enableUTF8Print (); u8g2.setFont (u8g2_font_helvB10_tf); u8g2.setColorIndex (1);
ir tada viskas, ką mes darome, yra nupiešti rėmus ir eilutes temperatūrai ir drėgmei:
u8g2.drawFrame (0, 0, 128, 31);
u8g2.drawFrame (0, 33, 128, 31); u8g2.drawStr (15, 13, „Temperatūra“);
Paskutinis dalykas, kurį turime padaryti, yra nuskaityti temperatūrą ir drėgmę iš jutiklio ir rodyti rodmenis ekrane.
void readTemperature ()
{plūdė t = dht.readTemperature (); dtostrf (t, 3, 1, temperatūra); }
Kaip visada, projekto kodą rasite čia.
4 žingsnis: paskutinės mintys
Galiausiai, manau, kad šis ekranas yra labai naudingas projektuose, kur mums reikia didelio ekrano ir mums nereikia spalvų. Tai nebrangu ir paprasta naudoti. Manau, kad panaudosiu jį kai kuriuose būsimuose projektuose.
Norėčiau sužinoti jūsų nuomonę apie šį ekraną. Kaip manote, kokioms programoms bus naudingas toks ekranas kaip šis? Dėkojame už jūsų idėjas ir perskaitę šią instrukciją. Susitiksim kitą kartą!