Szinte minden beágyazott alkalmazásban használt egyik közös jellemző az ADC modul (Analog to Digital Converter). Ezek az analóg-digitális átalakítók leolvashatják az analóg érzékelők feszültségét, például hőmérséklet-érzékelő, dőlésérzékelő, áramérzékelő, Flex-érzékelő és még sok más. Tehát ebben az oktatóanyagban megtanuljuk, hogyan kell használni az ADC-t az MSP430G2-ben az analóg feszültségek leolvasásához az Energia IDE segítségével. Csatlakoztatunk egy kis potenciométert az MSP kártyához, és változó feszültséget táplálunk egy analóg csapra, leolvassuk a feszültséget és megjelenítjük a soros monitoron.
Az ADC modul megértése:
Hidd el, aligha kell 10 perc az MSP430G2 csatlakoztatásához és programozásához, hogy leolvassa az analóg feszültséget. Töltsünk el azonban egy kis időt az MSP-alaplap ADC moduljának megértésével, hogy hatékonyan tudjuk használni azt minden közelgő projektünkben.
A mikrovezérlő digitális eszköz, vagyis csak 1-et és 0-at képes megérteni. De a való világban szinte minden, például a hőmérséklet, a páratartalom, a szél sebessége stb. Analóg jellegű. Ezeknek az analóg változásoknak a kölcsönhatása érdekében a mikrovezérlő egy ADC nevű modult használ. Sokféle ADC modul érhető el, az MSP-nkben a SAR 8 csatornás 10 bites ADC-t használják.
Szekvenciális közelítés (SAR) ADC: A SAR ADC összehasonlító és néhány logikai beszélgetés segítségével működik. Ez a típusú ADC referenciafeszültséget használ (amely változó), és összehasonlítja a bemeneti feszültséget a referenciafeszültséggel egy komparátor segítségével, és a különbség, amely digitális kimenet lesz, elmentésre kerül a Legjelentősebb bitről (MSB). Az összehasonlítás sebessége függ az óra frekvenciájától (Fosc), amelyen az MSP működik.
10 bites felbontás: Ez az ADC egy 8 csatornás 10 bites ADC. Itt a 8 csatorna kifejezés azt jelenti, hogy van 8 ADC csap, amelyek segítségével megmérhetjük az analóg feszültséget. A 10 bites kifejezés az ADC felbontását jelenti. A 10-bit 2-et jelent tíz (2 10) 102 erejéig. Ez az ADC-hez tartozó mintalépések száma. Ez az ADC-értékeink tartománya 0 és 1023 között lesz. Az érték 0-ról 1023 a lépésenkénti feszültség értéke alapján, amelyet az alábbi képlet segítségével lehet kiszámítani
Megjegyzés: Alapértelmezés szerint az Energia referenciafeszültsége Vcc (~ 3v), a referenciafeszültséget az analogReference () opcióval változtathatja meg.
Ellenőrizze azt is, hogyan kell az ADC-t összekapcsolni más mikrovezérlőkkel:
- Hogyan kell használni az ADC-t az Arduino Uno-ban?
- Az ADC0808 összekapcsolása a 8051 mikrokontrollerrel
- A PIC mikrokontroller ADC moduljának használata
- Raspberry Pi ADC bemutató
Kördiagramm:
Korábbi oktatóanyagunkban már megtanultuk, hogyan kell összekapcsolni az LCD-t az MSP430G2-vel, most csak hozzáadunk egy potenciométert az MSP430- hoz, hogy változó feszültséget szolgáltassunk neki, és megjelenítsük a feszültség értékét az LCD-n. Ha még nem ismeri az LCD összekapcsolását, akkor térjen vissza a fenti linkre, és olvassa el, mert a bűnbánat elkerülése érdekében kihagyom az információkat. A projekt teljes kapcsolási rajzát az alábbiakban adjuk meg.
Amint láthatja, itt két potenciométert használnak, az egyiket az LCD kontrasztjának beállítására használják, míg a másikat egy változó feszültség ellátására használják a táblára. Ebben a potenciométerben a potenciométer egyik szélső vége a Vcc-hez, a másik vége pedig a földhöz csatlakozik. A középső csap (kék vezeték) csatlakozik a P1.7 csaphoz. Ez a P1.7 érintkező 0 V (föld) és 3,5 V (Vcc) közötti változó feszültséget biztosít. Tehát be kell programoznunk a P1.7 csapot, hogy leolvassa ezt a változó feszültséget és megjelenítse az LCD-n.
Az Energiában tudnunk kell, hogy a P1.7 érintkező melyik analóg csatornához tartozik? Ez megtalálható az alábbi kép hivatkozásával
A jobb oldalon látható a P1.7 tű, ez a tű az A7-hez tartozik (7. csatorna). Hasonlóképpen megtalálhatjuk a megfelelő csatornaszámot más csapokhoz is. Bármely A0-tól A7-ig terjedő csapot használhat az analóg feszültségek leolvasásához, itt választottam az A7-et.
MSP430 programozása ADC-hez:
Nagyon egyszerű az MSP430 programozása analóg feszültség leolvasására. Ebben a programban leolvassa az érték analógját és kiszámítja a feszültséget ezzel az értékkel, majd mindkettőt megjeleníti az LCD képernyőn. A teljes program megtalálható ennek az oldalnak az alján, az alábbiakban részletesen elmagyarázom a programot, hogy jobban megértsem.
Az LCD csapok meghatározásával kezdjük. Ezek meghatározzák, hogy az LCD csapok az MSP430 melyik tűjéhez vannak csatlakoztatva. Hivatkozhat a csatlakozásra, hogy megbizonyosodjon arról, hogy a csapok rendben vannak-e
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Ezután felvesszük az LCD kijelző fejlécfájlját. Ez felhívja a könyvtárat, amely tartalmazza azt a kódot, hogy az MSP hogyan kommunikáljon az LCD-vel. Ez a könyvtár alapértelmezés szerint az Energia IDE-be lesz telepítve, így nem kell bajlódnia a hozzáadásával. Győződjön meg arról is, hogy a Liquid Crystal függvény meghívásra kerül-e az előbb definiált csapok nevével.
#include
A setup () függvényünkön belül csak egy intro üzenetet adunk, amely megjelenik az LCD képernyőn. Nem jutok túl mélyre, mivel már megtanultuk, hogyan kell használni az LCD-t az MSP430G2-vel.
lcdbegin (16, 2); // 16 * 2 LCD kijelzőt használunk: lcd.setCursor (0,0); // Helyezze a kurzort az 1. sor 1. oszlopához az lcd.print ("MSP430G2553"); // Bevezető üzenet megjelenítése lcd.setCursor (0, 1); // állítsa a kurzort az 1. oszlop 2. sorának lcd.print ("- CircuitDigest"); // Bevezető üzenet megjelenítése
Végül a végtelen hurok () függvényünkön belül elkezdjük olvasni az A7 tűhöz táplált feszültséget. Amint már említettük, a mikrovezérlő digitális eszköz, és nem tudja közvetlenül leolvasni a feszültségszintet. SAR-technika alkalmazásával a feszültségszint 0 és 102 között van feltérképezve. Ezeket az értékeket ADC-értékeknek nevezzük. Ennek az ADC-értéknek az eléréséhez egyszerűen használja a következő sort
int val = analógRead (A7); // leolvassa az ADC értéket az A7 tűről
Itt az analogRead () függvényt használjuk a csap analóg értékének leolvasására, az A7-et adtuk meg benne, mivel változó feszültséget csatlakoztattunk a P1.7 csaphoz. Végül ezt az értéket elmentjük a „ val ” nevű változóba. A változó típusa egész szám, mert csak 0 és 1024 közötti értékeket tárolunk ebben a változóban.
A következő lépés a feszültségérték kiszámítása az ADC értékből. Ehhez a következő képleteket használjuk
Feszültség = (ADC érték / ADC felbontás) * Referenciafeszültség
Esetünkben már tudjuk, hogy a mikrovezérlőnk ADC felbontása 1024. Az ADC értéke megtalálható az előző sorban is, és tárolja a val nevű változót. A referenciafeszültség megegyezik azzal a feszültséggel, amelyen a mikrovezérlő működik. Amikor a MSP430 tábla Melyik USB kábelen keresztül, akkor az üzemi feszültség 3.6V. Az üzemi feszültséget úgy is megmérheti, hogy multimétert használ a Vcc és a föld földelőcsapján keresztül. Tehát a fenti képlet illeszkedik esetünkbe az alábbiak szerint
úszófeszültség = (úszó (val) / 1024) * 3,6; // képletek az ADC érték feszültséggé alakítására
Összetévesztheti az úszóval (val). Ez a „val” változó int adattípustól „lebegő” adattípussá alakítására szolgál. Erre az átalakításra azért van szükség, mert csak akkor tudjuk megsokszorozni a 3.6-ot, ha a val / 1024 eredményét float-ban megkapjuk. Ha az értéket egész számban kapjuk meg, az mindig 0 lesz, és az eredmény is nulla lesz. Miután kiszámoltuk az ADC értéket és a feszültséget, nem marad más hátra, mint az eredmény megjelenítése az LCD képernyőn, amelyet a következő sorok segítségével tehetünk meg
lcd.setCursor (0, 0); // állítsa a kurzort a 0. oszlop 0. sorára, lcd.print ("ADC Val:"); lcd.print (val); // ADC-érték megjelenítése: lcd.setCursor (0, 1); // állítsa a kurzort a 0. oszlop 1. sorához lcd.print ("Feszültség:"); lcd.print (feszültség); // Kijelző feszültsége
Itt az első sorban az ADC értékét, a második sorban a Feszültség értékét jelenítettük meg. Végül 100 millimásodperces késleltetést adunk és kitisztítjuk az LCD képernyőt. Ez az érték frissülni fog minden 100 milliméterenként.
Az eredmény tesztelése!
Végül rátértünk a szórakoztató részre, amely teszteli a programunkat és eljátszik vele. Csak kösse össze a kapcsolásokat az áramköri ábra szerint. Egy kis kenyérlapot használtam a kapcsolataimhoz, és áthidaló vezetékekkel csatlakoztattam a kenyérlapot az MSP430-hoz. Miután a kapcsolatok elkészültek, az enyém alább nézett ki.
Ezután töltse fel az alább megadott programot az MSP430 táblára az Energia IDE-n keresztül. Láthatnia kell az intro szöveget az LCD-n, ha nem állítja be az LCD kontrasztját a potenciométerrel, amíg tiszta szavakat nem lát. Próbálja meg megnyomni a reset gombot. Ha a dolgok a várt módon működnek, akkor látnia kell a következő képernyőt.
Most változtassa meg a potenciométert, és azt is látnia kell, hogy az LCD-n megjelenő feszültség változik. Ellenőrizzük, hogy helyesen mérjük-e a feszültséget ehhez, multiméter segítségével mérjük meg a feszültséget a POT közepén és a földön. A multiméteren megjelenített feszültségnek közel kell lennie az LCD-n látható értékhez, amint az az alábbi képen látható.
Ez az, megtanultuk, hogyan kell mérni az analóg feszültséget az MSP430 kártya ADC segítségével. Most számos analóg szenzort csatlakoztathatunk a táblánkhoz a valós idejű paraméterek kiolvasásához. Remélem, megértette az oktatóanyagot és élvezettel tanulta, ha bármilyen problémája van, kérjük, keresse meg az alábbi megjegyzés részt vagy a fórumot. Nézzünk utána az MSP430 másik oktatóanyagának, egy másik új témával.