Ekranas Arduino valdikliui per I²C

Posted: 2013-08-13 in Darbeliai
Žymos:,

Žinote turbūt, kokie populiariausi skystųjų kristalų ekranėliai Arduino valdikliams? Nagi vadinamieji 1602 arba 16×2 ekraniukai, kurie ganėtinai pigūs ir sugeba šį tą parodyti. Šiuose ekranuose yra dvi eilutės po šešiolika simbolių — iš ten ir pavadinimas. Bet jie, bestijos, turi vieną trūkumą — valdymui reikia net aštuonių valdiklio elektrodų! Tai visokiai periferijai kažkaip nedaug ir lieka tuomet.

Išeitis, aišku, gan paprasta: reikia prijungti ekraniuką per I²C keitiklį ir jo valdymui reikės tik dviejų elektrodų. Tiesa, mane šiek tiek erzina tai, kad I²C magistralei AVR procesoriuose naudojami du ADC (analoginio-skaitmeninio keitiklio) elektrodai. Tad jei reikia nuskaitinėti analoginius daviklius, vietoj šešių lieka tik keturi. Bet užtat lieka krūva kitų elektrodų, kuriais galima valdyti kitą periferiją.

Kadangi tingėjau ieškot, tai tiesiog iš ybėjaus parsisiunčiau ekrano ir I²C keitiklio komplektėlį, pigiausią, kokį radau:

1602 ekranas ir I²C keitiklis | Darau, blė

Keitiklis toks kiniškas „no name“. Na, yra užrašas „mjkdz“ ir yra toks kiniškas tinklapis, bet kad jame ten net ir su vertimu ne kažką gali iškapstyti… o keitiklio mikroschema kažkodėl nubrūžinta dilde, gal kinai kokių kopyraitų bijo:

Nuvalyta be užrašų I²C keitiklio mikroschema | Darau, blė

Tiesa, anot interneto, čia greičiausiai PCA8574 keitiklis. Bent jau pagal datašytus jo prijungimas analogiškas. Dar truputuką pasekiojau plokštės takelius, kad išsiaiškinčiau, kurios kojos prijungtos prie kurių ekranėlio elektrodų. Paskui dar bebrauzydamas išsiaiškinau, kad derėtų naudoti F Malpartida parašytas I²C ekranėlių valdymo bibliotekas, nes jos kur kas labiau valdomos, nei standartinės, komplektuojamos su Arduino IDE. Esmė tame, kad tų ekranų ir šitų keitiklių kojų sujungimai kartais skiriasi ir veikia ne visai taip, kaip įprasta.

Komplektėlis, beje, nepilnas ir labai durnai padarytas. Nepilnas todėl, kad šitą I²C moduliuką prie ekrano prilituoti yra sudėtinga dėl elektrodų išdėstymo. Ir jis padarytas dar taip, kad kontrasto reguliavimo potenciometras lieka atsuktas į ekrano plokštę! T.y. jį prilitavus potenciometro jau nebepasieksi. Buvo mintis tą visą daugiakojyną perlituot kaip nors į kitą pusę, ar bent jau potenciometrą. Bet paskui mečiau ta mintį ir nuo turimo lizdų komplekto atsikirpau tokį gabaliuką:

Lizdas I²C moduliui prie 1602 ekranėlio | Darau, blė

Truputį pamojavus lituokliu šitas lizdas stojo į vietą, o I²C modulis prie jo gražiai prisijungė:

1602 ekranas sujungtas su I²C moduliu | Darau, blė

O čia kitu kampu (tik, atleiskite, bluras gavosi, nesužiūrėjau):

1602 ekranas sujungtas su I²C moduliu | Darau, blė

Na ir dar iš šono, matyti, kad potenciometras nepasiekiamas:

1602 ekranas sujungtas su I²C moduliu | Darau, blė

Internetuose buvo teigiama, kad dažnai šio modulio I²C adresas yra ne 0x27, o 0x20. Tad parsisiunčiau I²C Scanner programulkę Arduino valdikliui, prijungiau modulį ir paleidau tą programulkę:

I²C 1602 ekrano keitiklis, prijungtas prie Arduino I²C adreso paieškai | Darau, blė

Programulkė iš pradžių nieko nerado. Heh, supainiojau SDA ir SCL laidelius… Po to jau rado ir, kas keisčiausia, su „normaliu“ 0x27 adresu:

Arduino I²C Scanner sėkmingai rado LCD 1602 ekranėlio valdiklio adresą | Darau, blė

Įkėliau pavyzdinę programėlę iš šio tinklapėlio, kur naudojamos F Malpartida bibliotekos. Viskas lyg ir būtų tvarkoj… bet ekranas nieko nerodo:

Prie Arduino prijungtas 1602 ekranėlis su I²C keitikliu | Darau, blė

Kokį pusvalandį terliojausi, bandžiau ieškot priežasčių, kol staiga sugalvojau, kad reikia pasukinėti kontrasto potenciometrą… Reikalas bjaurus, nes ekranėlį vis reikia nuimti (nes potenciometras, kaip jau rašiau, prilituotas iš kvailos pusės — reikės padaryti jam operaciją). Pasirodo, kad šiems ekranėliams kontrastą būtina sureguliuoti, nes kitaip nieko nerodo. Kvailai padaryta, sakyčiau. Bet paskui pradėjo tekstą rodyti sėkmingai. Net ir lietuviškas raides galima pasidaryti norint:

Prie Arduino prijungtas 1602 ekranėlis su I²C keitikliu | Darau, blė

Štai ir viskas, darbelis baigtas ir įsisavintas. Bus galima naudoti. Tiesa, čia tas vaivorykštinis laidų kaspinas nelabai į temą, bet nenorėjau nuo jo keturių laidelių atlupinėti tiesiog.

Advertisements

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s