Tässä opetusohjelmassa esittelemme ADC (Analog to Digital Conversion) -konseptin ARDUINO UNO: ssa. Arduino-kortissa on kuusi ADC-kanavaa, kuten alla olevassa kuvassa näkyy. Näiden joukossa yhtä tai kaikkia niistä voidaan käyttää analogisen jännitteen tuloina. Arduino Uno ADC on 10 bitin resoluutio (niin kokonaisluku arvot (0- (2 ^ 10) 1023)). Tämä tarkoittaa, että se kartoittaa 0 - 5 voltin syöttöjännitteet kokonaislukuiksi välillä 0 - 1023. Joten jokaiselle (5/1024 = 4,9 mV) yksikköä kohden.
Kaikessa tässä yhdistämme potentiometrin tai potin A0-kanavaan ja näytämme ADC-tuloksen yksinkertaisella näytöllä. Yksinkertaiset näytöt ovat 16x1 ja 16x2 näyttöyksikköjä. 16x1-näyttöyksikössä on 16 merkkiä ja se on yhdellä rivillä. 16x2 on 32 merkkiä yhteensä 16in 1 s rivi ja toinen 16 2 toinen rivi. Tässä on ymmärrettävä, että jokaisessa merkissä on 5x10 = 50 pikseliä, joten yhden merkin näyttämiseksi kaikkien 50 pikselin on toimittava yhdessä, mutta meidän ei tarvitse huolehtia siitä, koska näyttöyksikössä on toinen ohjain (HD44780), joka pikseleiden hallinta (näet sen LCD-yksikössä, se on takana oleva musta silmä).
Tarvittavat komponentit
Laitteisto: ARDUINO UNO, virtalähde (5v), JHD_162ALCD (16x2LCD), 100uF kondensaattori, 100KΩ potti tai potentiometri, 100nF kondensaattori.
Ohjelmisto: arduino IDE (Arduino nightly)
Piirikaavio ja selitys
16x2 LCD -näytössä on kaikkiaan 16 nastaa, jos taustavaloa on, jos taustavaloa ei ole, on 14 nastaa. Voidaan kytkeä päälle tai jättää taustavalon nastat. Nyt 14 nastat on 8 data nastat (7-14 tai D0-D7), 2 virtalähde nastat (1 & 2 tai VSS ja VDD tai GND ja + 5V), 3 rd pin kontrastin säätö (VEE-ohjaimet kuinka paksu merkkien pitäisi olla kuvassa) ja 3 ohjaintappia (RS & RW & E).
Piirissä voit havaita, että olen ottanut vain kaksi ohjaintappia, kontrastibittiä ja READ / WRITE: tä ei käytetä usein, jotta ne voidaan oikosuljettaa maahan. Tämä asettaa LCD-näytön suurimmalle kontrastille ja lukutilaan. Meidän on vain hallittava ENABLE- ja RS-nastoja merkkien ja tietojen lähettämiseksi vastaavasti.
LCD-liitännät ovat alla:
PIN1 tai VSS maahan
PIN2- tai VDD- tai VCC-jännite + 5 V: n tehoon
PIN3 tai VEE maahan (antaa parhaan kontrastin aloittelijalle)
PIN4 tai RS (Rekisteröi valinta) ARDUINO UNOn PIN8: een
PIN5 tai RW (luku / kirjoitus) maahan (asettaa LCD-näytön lukutilaan helpottamaan viestintää käyttäjälle)
PIN6 tai E (käytössä) ARDUINO UNOn PIN9-koodiin
ARDUINO UNO: n PIN11 tai D4 - PIN10
ARDUINO UNOn PIN12 tai D5 - PIN11
ARDUINO UNOn PIN13 tai D6 - PIN12
ARDUINO UNOn PIN14 tai D7 - PIN13
ARDUINO IDE antaa käyttäjän käyttää LCD-näyttöä 4-bittisessä tilassa. Tämän tyyppinen viestintä antaa käyttäjälle mahdollisuuden vähentää PIN-koodin käyttöä ARDUINO-laitteessa, toisin kuin muut, ARDUINO-laitetta ei tarvitse ohjelmoida erikseen sen käyttämiseksi 4 it -tilassa, koska ARDUINO on oletusarvoisesti asetettu kommunikoimaan 4-bittisessä tilassa. Piirissä näet, että käytimme 4-bittistä tiedonsiirtoa (D4-D7).
Joten pelkästä havainnosta ylhäältä taulukosta yhdistämme 6 LCD-nastaa ohjaimeen, jossa 4 nastaa ovat datanastoja ja 2 nastaa ohjausta varten.
Yllä olevassa kuvassa on ARDUINO UNO: n ADC: n kaaviokuva.
Työskentely
LCD-näytön liittämiseksi ARDUINO UNO: han meidän on tiedettävä muutama asia.
|
Ensinnäkin UNO ADC -kanavien oletusarvo on 5 V. Tämä tarkoittaa, että voimme antaa enimmäisjännitteen 5 V ADC-muunnokselle missä tahansa tulokanavassa. Koska jotkut anturit tarjoavat jännitteitä 0-2,5 V, 5 V: n referenssillä saamme vähemmän tarkkuutta, joten meillä on ohje, jonka avulla voimme muuttaa tätä vertailuarvoa. Joten meillä on vertailuarvo ("analogReference ();")
Oletuksena saamme levyn ADC-enimmäistarkkuuden, joka on 10 bittiä, tätä resoluutiota voidaan muuttaa käskyllä ("analogReadResolution (bits);"). Tämä resoluution muutos voi olla hyödyllinen joissakin tapauksissa.
Jos edellä mainitut ehdot asetetaan oletusarvoiksi, voimme lukea arvon kanavan '0' ADC: stä kutsumalla suoraan toimintoon "analogRead (pin);", tässä "pin" edustaa nastaa, johon liitimme analogisen signaalin, tässä tapauksessa se olla “A0”. ADC: n arvo voidaan ottaa kokonaislukuksi muodossa “int ADCVALUE = analogRead (A0); ”, Tällä ohjeella arvo ADC: n jälkeen tallennetaan kokonaislukuun“ ADCVALUE ”.
NYT puhutaan vähän 16x2 LCD: stä. Ensin meidän on otettava käyttöön otsikkotiedosto ('#include
Toiseksi meidän on kerrottava piirilevylle, minkä tyyppistä nestekidenäyttöä täällä käytämme. Koska meillä on niin paljon erityyppisiä LCD-näyttöjä (kuten 20x4, 16x2, 16x1 jne.). Tässä aiomme liittää 16x2-nestekidenäytön UNO: hon, jotta saisimme 'lcd.begin (16, 2);'. 16x1: lle saadaan 'lcd.begin (16, 1);'.
Tässä ohjeessa aiomme kertoa taululle, johon nastat on liitetty, Kytketyt nastat on esitettävä järjestyksessä "RS, En, D4, D5, D6, D7". Nämä nastat on esitettävä oikein. Koska olemme liittäneet RS: n PIN0: een ja niin edelleen, kuten piirikaaviossa on esitetty, Esittelemme taulun pin-numeroa nimellä "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Yläpuolella on jäljellä vain tietojen lähettäminen, LCD-näytöllä näkyvät tiedot tulisi kirjoittaa "cd.print (" hei, maailma! ");". Tällä komennolla nestekidenäytössä näkyy "hei, maailma!".
Kuten näette, meidän ei tarvitse huolehtia mistään muusta, meidän on vain alustettava ja UNO on valmis näyttämään tietoja. Meidän ei tarvitse kirjoittaa ohjelmasilmukkaa lähettämään BYTE byte byte-tiedot tähän.
Arduino Unon ADC: n käyttö selitetään vaihe vaiheelta alla olevassa C-ohjelmassa.