Šioje pamokoje mes pristatome ADC („Analog to Digital Conversion“) koncepciją ARDUINO UNO. „Arduino“ plokštėje yra šeši ADC kanalai, kaip parodyta paveikslėlyje žemiau. Bet kuris iš jų arba visi iš jų gali būti naudojami kaip analoginės įtampos įėjimai. „ Arduino Uno ADC“ skiriamoji geba yra 10 bitų (taigi sveikojo skaičiaus reikšmės nuo (0- (2 ^ 10) 1023)). Tai reiškia, kad jis įves įtampą nuo 0 iki 5 voltų į sveikas skaičius nuo 0 iki 1023. Taigi kiekvienam (5/1024 = 4,9 mV) vienetui.
Visa tai mes prijungsime potenciometrą arba puodą prie „A0“ kanalo ir ADC rezultatą parodysime paprastame ekrane. Paprasti ekranai yra 16x1 ir 16x2 ekranai. 16x1 ekranas sudarys 16 simbolių ir bus vienoje eilutėje. 16x2 turės 32 simbolių iš viso 16in 1 -osios linijos ir dar 16 2 -osios linijos. Čia reikia suprasti, kad kiekviename simbolyje yra 5x10 = 50 pikselių, todėl norint parodyti vieną simbolį, visi 50 pikselių turi veikti kartu, tačiau mes neturime dėl to jaudintis, nes ekrane yra kitas valdiklis (HD44780), kuris atlieka pikselių valdymo darbas (jį galite pamatyti LCD ekrane, tai yra juoda akis gale).
Būtini komponentai
Aparatūra: ARDUINO UNO, maitinimo šaltinis (5v), JHD_162ALCD (16x2LCD), 100uF kondensatorius, 100KΩ puodas arba potenciometras, 100nF kondensatorius.
Programinė įranga: „ arduino IDE“ (naktinis „Arduino“)
Grandinės schema ir paaiškinimas
16x2 LCD ekrane yra 16 kontaktų, jei yra užpakalinė lemputė, jei nėra užpakalinės šviesos, bus 14 kontaktų. Galima maitinti arba palikti galinio apšvietimo kaiščius. Dabar 14 kaiščių yra 8 duomenų kaiščiai (7-14 arba D0-D7), 2 elektros tiekimo kaiščių (1 & 2 arba Vss & VDD arba GND & + 5V), 3 -oji kaištis kontrasto valdymas (V formos,-kontroliuoja, kaip storio simboliai turėtų būti ir 3 valdymo kaiščiai (RS & RW & E).
Grandinėje galite pastebėti, kad paėmiau tik du valdymo kaiščius, kontrasto bitai ir READ / WRITE nėra dažnai naudojami, todėl juos galima sutrumpinti. Tai padidina LCD kontrasto ir skaitymo režimą. Mes tiesiog turime valdyti ENABLE ir RS smeigtukus, kad galėtume atitinkamai siųsti simbolius ir duomenis.
LCD jungtys pateikiamos žemiau:
PIN1 arba VSS į žemę
PIN2 arba VDD arba VCC iki + 5v maitinimo
PIN3 arba VEE į žemę (suteikia maksimalų kontrastą pradedantiesiems)
PIN4 arba RS („Register Selection“) į „ARDUINO UNO“ PIN8
PIN5 arba RW (skaitymas / rašymas) į žemę (įjungus skystųjų kristalų ekraną skaitymo režimu, palengvinamas ryšys vartotojui)
„ARDUINO UNO“ PIN6 arba E (įgalinti) PIN9
„ARDUINO UNO“ PIN11 arba D4 – PIN10
„ARDUINO UNO“ PIN12 arba D5 – PIN11
„ARDUINO UNO“ PIN13 arba D6 – PIN12
„ARDUINO UNO“ PIN14 arba D7 – PIN13
„ARDUINO IDE“ leidžia vartotojui naudoti LCD ekraną 4 bitų režimu. Šio tipo ryšys leidžia vartotojui sumažinti kaiščių naudojimą „ARDUINO“, skirtingai nei kiti, „ARDUINO“ nereikia programuoti atskirai, norint jį naudoti „4 it“ režimu, nes pagal numatytuosius nustatymus „ARDUINO“ yra nustatytas palaikyti ryšį 4 bitų režimu. Grandinėje matote, kad mes naudojome 4 bitų ryšį (D4-D7).
Taigi vien nuo stebėjimo iš viršaus lentelės sujungiame 6 LCD kaiščius su valdikliu, kuriame 4 kaiščiai yra duomenų kaiščiai ir 2 valdikliai.
Aukščiau pateiktame paveikslėlyje parodyta ARDUINO UNO ADC schema.
Dirba
Norėdami susieti LCD ekraną su ARDUINO UNO, turime žinoti keletą dalykų.
|
Pirmiausia UNO ADC kanalų numatytoji atskaitos vertė yra 5 V. Tai reiškia, kad ADC konversijai bet kuriame įėjimo kanale galime suteikti maksimalią įėjimo įtampą 5 V. Kadangi kai kurie jutikliai teikia 0–2,5 V įtampą, naudojant 5 V atskaitos tašką gauname mažesnį tikslumą, todėl turime instrukciją, leidžiančią pakeisti šią atskaitos vertę. Taigi norėdami pakeisti pamatinę vertę („analogReference ();“)
Pagal numatytuosius nustatymus gauname didžiausią plokštės ADC skiriamąją gebą, kuri yra 10 bitų, šią skiriamąją gebą galima pakeisti naudojant instrukcijas („analogReadResolution (bits);“). Kai kuriais atvejais šis rezoliucijos pakeitimas gali būti naudingas.
Dabar, jei pirmiau nurodytos sąlygos yra nustatytos pagal numatytuosius nustatymus, mes galime nuskaityti „0“ kanalo ADC reikšmę tiesiogiai iškviesdami funkciją „analogRead (pin);“, čia „pin“ reiškia kaištį, kuriame prijungėme analoginį signalą, šiuo atveju tai būtų būti „A0“. Vertę iš ADC galima paimti į sveiką skaičių kaip „int ADCVALUE = analogRead (A0); “, Pagal šią instrukciją vertė po ADC įrašoma į skaičių„ ADCVALUE “.
DABAR pakalbėkime šiek tiek apie 16x2 LCD ekraną. Pirmiausia turime įgalinti antraštės failą ('#include
Antra, lentai turime pasakyti, kokio tipo LCD mes čia naudojame. Kadangi mes turime tiek daug skirtingų tipų LCD (pvz., 20x4, 16x2, 16x1 ir kt.). Čia mes sujungsime 16x2 LCD ekraną su UNO, kad gautume "lcd.begin (16, 2);". Už 16x1 gauname „lcd.begin (16, 1);“.
Šioje instrukcijoje mes lentai pasakysime, kur mes sujungėme kaiščius. Sujungti kaiščiai turi būti vaizduojami taip: „RS, En, D4, D5, D6, D7“. Šie kaiščiai turi būti teisingai pavaizduoti. Kadangi mes prijungėme RS prie PIN0 ir pan., Kaip parodyta grandinės schemoje, lentos PIN kodą nurodome kaip „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);“.
Po to, kai liko tik siųsti duomenis, LCD ekrane rodomi duomenys turėtų būti užrašyti „cd.print („ labas, pasauli! “);“. Su šia komanda LCD ekrane rodoma „labas, pasauli!“.
Kaip matote, mums nereikia jaudintis dėl nieko kito, mes tiesiog turime inicijuoti ir UNO bus pasirengusi rodyti duomenis. Mes neprivalome rašyti programos ciklo, norėdami čia siųsti BYTE by BYTE duomenis.
Toliau pateiktoje C programoje žingsnis po žingsnio paaiškinamas „ Arduino Uno“ ADC naudojimas.