Atmega8 + Nokia 3310 LCD

22/08/2013 09:47

    Programuojant mikrovaldiklius labai dažnai reikia kokio nors duomenų išvedimo, kad žinotum kas vyksta mikrovaldiklyje arba tiesiog gauti kažkokių skaičiavimų rezultatą. Paprasčiausiai tam pakanka šviesos diodų. Gali išvesti ir 8 bitų skaičių (kurį vėliau reikia konvertuoti iš dvejetainio į dešimtainį) naudodamas LED, arba junginėjant LED galima tiesiog stebėti logines vertes (0 ar 1). Dar yra segmentinių displėjų, LED matricų ir kitų panašaus veikimo indikatorių, bet nei vienas iš jų nėra toks patogus, informatyvus ir universalus kaip LCD.

    Kaip pradedantysis programuotojas nusprendžiau pagaliau įsigyti nors vieną LCD debug'inimui. Tačiau kai išvydau kainas, noras dingo. 16 simbolių, vienos eilutės LCD kainuoja ~20Lt, dviejų eilučių su pašvietimu ~35Lt. Tada prisiminiau kažkur internete matęs Nokia 3310 ekranėlį, panaudotą išvesti duomenis iš mikrovaldiklio. Pradžioje tokia mintis ganėtinai gąsdino, galvojau bus sunku rasti bibliotekų, reikės kokių papildomų čipų LCD valdymui. Bet kiek paskaitinėjęs išsiaiškinau, kad nėra taip baisu. AVR Studio tinkančių bibliotekų radau gal bent 5, net ir labai ilgai nesiknaisiojęs internete. O ir čipų jokių nereikėjo, viskas ko reikia jau yra ant paties ekranėlio. Taigi nukeliavau pas draugą ir gavau visą Nokijos 3310 ekraną kartu su klaviatūra tik už 5Lt. Skirtumas šioks toks yra tarp 35Lt ir 5Lt. Beje ekranas už 35Lt turi 16 simbolių ir 2 eilutes, Nokijos ekranas turi 48x84 taškų, į kuriuos galima sutalpinti 6 eilutes po 14 simbolių, naudojant ganėtinai netaupų šriftą, be to galima naudoti ir įvairiausius ženklus, piešinius ir t.t.

    Taigi apsidžiaugęs geru pirkiniu pradėjau krapštinėti tą LCD. Pirmas dalykas, kurį padariau tai atskyriau ekraną nuo plastikinio korpuso - taupant vietą. Kadangi pats LCD nešviečia reikėjo papildomo apšvietimo. Tam puikiai tiko plonas organinio stiklo lapelis (LCD dydžio), balta plėvelė ir du LED iš dužusio laptopo LCD. Norint gero ir tolygaus apšvietimo daromas sumuštinis: pagrindas, balta plėvelė, organinis stiklas ir LCD ant viršaus. LED nukreipiami į organinio stiklo lapelio briauną, tada stiklas veikia panašiu principu kaip šviesolaidis, o balta plėvelė tolygiai atspinti juo einančią šviesą.

 

    Pati jungimo schema tikrai nėra sudėtinga, tereikia pajungti vieną kondensatorių (10uF), rezistorių apšvietimo diodams ir laidukus. Pats LCD maitinamas 3,3V įtampa, tačiau daug kas naudoja 5V. Aš nenorėdamas rizikuoti užkabinau stabilitroną, kad įtampą būtų 3,5V. LCD kontroleris esantis ant pačio LCD su uC bendrauja per SPI protokolą. SPI geras tuo, kad naudoja tik 5 uC kojas, tad lieka daug laisvų pin'ų. Mano naudotoje bibliotekoje SPI buvo realizuotas programiškai, tad jei nuspręsčiau naudoti uC kuris neturi SPI "ant geležies", aš vis tiek galėčiau naudoti savo LCD. Kitas pliusas, kad lcd.h faile galiu pasirinkti bet kurias kojas LCD jungimui, tad tiriu didelę laisvę renkantis pin'us.

    Taigi pabaigoje gavosi puikus LCD ateities projektėliams ir debug'inimui. Kodas paprastas - galima naudoti Copy-Paste praktiškai bet kuriai atmega mikroschemai, atlikus kelis mažus pakoreagavimus.

    Visą medžiagą (schema, kodas ir pdf dokumentacija LCD čipui) galima parsisiųsti čia.