Ebben a projektben az ADC (analóg-digitális átalakítás) fogalmát használjuk az ARDUINO UNO-ban. Hall Effect érzékelőt és Arduino uno- t fogunk használni a mágnes térerőjének mérésére. Az itt használt érzékelő az UGN3503U. Ez egy olyan hallérzékelő, amely érzékeli a mágneses térerősséget és változó feszültséget biztosít a kimeneten a térerősséggel arányosan. Ez az érzékelő felveszi a térerősséget a „ GAUSS ” egységekben.
Tehát ezzel az érzékelővel térerősségünk változó feszültségű lesz. Az ADC szolgáltatás használatával ezt a feszültséget számokká alakítjuk. Ez a szám a térerősséget jelenti, és az LCD-n látható.
Az Arduino-nak hat ADC csatornája van. Ezekben bármelyik vagy mindegyik használható analóg feszültség bemenetként. Az UNO ADC 10 bites felbontású (tehát a (0- (2 ^ 10) 1023) egész értékei). Ez azt jelenti, hogy a 0 és 5 volt közötti bemeneti feszültségeket 0 és 1023 közötti egész értékekre fogja feltérképezni. Tehát egységenként (5/1024 = 4,9 mV).
Mindebben összekapcsolunk egy potenciométert vagy edényt az 'A0' csatornával, és az ADC eredményét egyszerű kijelzőn mutatjuk be. Az egyszerű kijelzők 16x1 és 16x2 kijelzőegységek. A 16x1-es kijelzőegység 16 karakterből áll és egy sorban lesz. A 16x2 lesz 32 karakter összesen 16in 1 -jén sor és további 16 2 nd sorban. Itt meg kell értenünk, hogy minden karakterben 5x10 = 50 pixel van, így egy karakter megjelenítéséhez mind az 50 pixelnek együtt kell működnie, de nem kell aggódnunk emiatt, mert a kijelzőegységben van egy másik vezérlő (HD44780), amely a a pixelek irányításának feladata (az LCD-egységben láthatja, hátul a fekete szem).
Szükséges alkatrészek
Hardver: ARDUINO UNO, tápegység (5v), JHD_162ALCD (16x2LCD), 100uF kondenzátor (2db), UGn3503U.
Szoftver: arduino IDE (Arduino nightly)
Áramkör diagram és magyarázat
A fenti ábra a mágneses tér mérésének kapcsolási rajzát mutatja az arduino uno segítségével.
A 16x2 LCD-ben 16 érintkező van, ha van háttérvilágítás, ha nincs háttérvilágítás, akkor 14 tű lesz. A hátsó lámpa csapjai bekapcsolhatók, vagy elhagyhatók. Most a 14 csapok vannak 8 adatok csapok (7-14 vagy D0-D7), 2 tápegység csapok (1 & 2 vagy VSS & VDD vagy GND & + 5V), 3 rd pin kontraszt vezérlő (VEE-kontrollok milyen vastag a karaktereket kell lennie ábra) és 3 vezérlőcsap (RS & RW & E).
A fenti áramkörben megfigyelhetõ, hogy csak két vezérlõ csapot vettem fel, a kontrasztbitet és a READ / WRITE-t nem gyakran használják, így testzárlatosak lehetnek. Ez az LCD-t a legnagyobb kontrasztú és olvasási módba helyezi. Csak az ENABLE és RS csapokat kell vezérelnünk, hogy a karaktereket és az adatokat ennek megfelelően küldhessük el.
Az LCD-hez kapcsolódó csatlakozások az alábbiak:
PIN1 vagy VSS a földre
PIN2 vagy VDD vagy VCC + 5v teljesítményig
PIN3 vagy VEE földelés (a legjobb kontrasztot nyújtja a kezdőknek)
PIN4 vagy RS (Register Selection) az ARDUINO UNO PIN8 kódjához
PIN5 vagy RW (olvasás / írás) a földre (az LCD-t olvasási módba állítja, megkönnyíti a kommunikációt a felhasználó számára)
PIN6 vagy E (Engedélyezés) az ARDUINO UNO PIN9 kódjához
Az ARDUINO UNO PIN11 vagy D4 PIN10 kódjához
Az ARDUINO UNO PIN12 vagy D5 - PIN11 kódja
Az ARDUINO UNO PIN13 vagy D6 - PIN12 kódja
Az ARDUINO UNO PIN14 vagy D7 - PIN13 kódja
Az ARDUINO IDE lehetővé teszi a felhasználó számára, hogy az LCD-t 4 bites módban használja. Ez a típusú kommunikáció lehetővé teszi a felhasználó számára, hogy csökkentse a tűk használatát az ARDUINO-n, ellentétben másokkal, az ARDUINO-t nem kell külön programozni a 4 it módban történő használathoz, mert alapértelmezés szerint az ARDUINO úgy van beállítva, hogy 4 bites módban kommunikáljon. Az áramkörben látható, hogy 4 bites kommunikációt (D4-D7) használtunk. Tehát puszta megfigyelésből a fenti táblázatból 6 érintkezős LCD-t csatlakoztatunk a vezérlőhöz, amelyben 4 érintkező adat és 2 vezérlő érintkező.
Dolgozó
Az LCD és az ARDUINO UNO összekapcsolásához néhány dolgot tudnunk kell.
|
Először is az UNO ADC csatornák alapértelmezett referenciaértéke 5 V. Ez azt jelenti, hogy bármilyen bemeneti csatornán maximális 5 V bemeneti feszültséget adhatunk az ADC konverzióhoz. Mivel egyes érzékelők 0-2,5 V feszültséget szolgáltatnak, 5 V referenciával kisebb pontosságot kapunk, ezért van egy utasításunk, amely lehetővé teszi számunkra a referenciaérték megváltoztatását. Tehát a referenciaérték megváltoztatásához ("analogReference ();")
Alapértelmezés szerint a kártya maximális 10 bites felbontását kapjuk meg, ez a felbontás az utasítás használatával megváltoztatható („analogReadResolution (bit);”). Ez a felbontásváltozás bizonyos esetekben jól jöhet.
Ha a fenti feltételeket alapértelmezés szerint állítjuk be, akkor a „0” csatorna ADC-jéből kiolvashatjuk az értéket az „analogRead (pin);” függvény közvetlen meghívásával, itt a „pin” azt a csapot jelenti, ahová analóg jelet csatlakoztattunk, ebben az esetben legyen „A0”. Az ADC-ből származó érték egész számba vehető: „int ADCVALUE = analogRead (A0); ”, Ezzel az utasítással az ADC utáni érték az„ ADCVALUE ”egész számba kerül.
MOST beszéljünk egy kicsit a 16x2 LCD-ről. Először engedélyeznünk kell a fejlécfájlt ('#include
Másodszor el kell mondanunk a táblának, hogy milyen típusú LCD-t használunk itt. Mivel sokféle LCD-típusunk van (például 20x4, 16x2, 16x1 stb.). Itt egy 16x2-es LCD-t csatlakoztatunk az UNO-hoz, így megkapjuk az 'lcd.begin (16, 2);' 16x1-re 'lcd.begin (16, 1);' -et kapunk.
Ebben az utasításban elmondjuk a táblának, hogy hová csatlakoztattuk a csapokat. Az összekapcsolt csapokat sorrendben kell ábrázolni: „RS, En, D4, D5, D6, D7”. Ezeket a csapokat helyesen kell ábrázolni. Mivel az RS-t a PIN0-hoz csatlakoztattuk, és így tovább, ahogy az az áramköri ábrán látható, a táblához tartozó PIN-kódot „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);” néven képviseljük.
Ha fent van, már csak adatküldés van hátra, az LCD-n megjelenítendő adatokat „cd.print („ helló, világ! ”); Ezzel a paranccsal az LCD kijelzi a „hello, world!” Szót. Amint láthatja, nem kell aggódnunk mindezek miatt, csak inicializálnunk kell, és az UNO készen áll az adatok megjelenítésére. Nem kell programhurkot írnunk ahhoz, hogy a BYTE byTE adatait ide küldjük.
Miután a mágnes az érzékelő közelébe került, az érzékelő a kimeneten a mezővel arányos feszültséget képviseli, ezt az értéket Uno veszi fel, és az LCD-n mutatja. Ennek a mágneses térmérési projektnek a működését az alábbi C kód magyarázza tovább.