- Razumijevanje ADC modula:
- Kružni dijagram:
- Programiranje vašeg MSP430 za ADC:
- Testiranje vašeg rezultata!
Jedna uobičajena značajka koja se koristi u gotovo svakoj ugrađenoj aplikaciji je ADC modul (analogni u digitalni pretvarač). Ovi analogno-digitalni pretvarači mogu očitavati napon s analognih senzora kao što su temperaturni senzor, senzor nagiba, trenutni senzor, Flex senzor i još mnogo toga. Dakle, u ovom uputstvu naučit ćemo kako koristiti ADC u MSP430G2 za čitanje analognih napona pomoću Energia IDE. Spojit ćemo mali potenciometar na MSP ploču i napajati promjenjivi napon na analogni pin, očitavati napon i prikazivati ga na serijskom monitoru.
Razumijevanje ADC modula:
Vjerujte mi, teško da bi trebalo 10 minuta za povezivanje i programiranje MSP430G2 za očitavanje analognog napona. No, provest ćemo neko vrijeme u razumijevanju ADC modula na MSP ploči kako bismo ga mogli učinkovito koristiti u svim našim nadolazećim projektima.
Mikrokontroler je digitalni uređaj, što znači da može razumjeti samo 1 i 0. Ali u stvarnom su svijetu gotovo sve poput temperature, vlage, brzine vjetra itd. Analogne prirode. Kako bi komunicirao s ovim analognim promjenama, mikrokontroler koristi modul nazvan ADC. Dostupne su mnoge različite vrste ADC modula, a onaj koji se koristi u našem MSP-u je SAR 8-kanalni 10-bitni ADC.
Sukcesivno približavanje (SAR) ADC: SAR ADC radi uz pomoć usporedbe i nekih logičkih razgovora. Ova vrsta ADC-a koristi referentni napon (koji je promjenjiv) i uspoređuje ulazni napon s referentnim naponom pomoću usporedbe, a razlika, koja će biti digitalni izlaz, sprema se iz Najznačajnijeg bita (MSB). Brzina usporedbe ovisi o frekvenciji takta (Fosc) na kojoj MSP radi.
10-bitna razlučivost: Ovaj ADC je 8-kanalni 10-bitni ADC. Ovdje izraz 8 kanal podrazumijeva da postoji 8 ADC pinova pomoću kojih možemo mjeriti analogni napon. Izraz 10-bit podrazumijeva razlučivost ADC-a. 10-bit znači 2 na snagu deset (2 10) što je 1024. Ovo je broj koraka uzorka za naš ADC, tako da će raspon naših vrijednosti ADC biti od 0 do 1023. Vrijednost će se povećati od 0 do 1023 na temelju vrijednosti napona po koraku, koji se može izračunati pomoću donje formule

Napomena: Prema zadanim postavkama u Energiji referentni napon bit će postavljen na Vcc (~ 3v), referentni napon možete mijenjati pomoću opcije analogReference () .
Također provjerite kako povezati ADC s drugim mikrokontrolerima:
- Kako koristiti ADC u Arduino Uno?
- Povezivanje ADC0808 s 8051 mikrokontrolerom
- Korištenje ADC modula PIC mikrokontrolera
- Vodič za ADC za Raspberry Pi
Kružni dijagram:
U našem prethodnom vodiču već smo naučili kako povezati LCD s MSP430G2, sada ćemo dodati potenciometar na MSP430 da mu isporuči promjenjivi napon i prikaže vrijednost napona na LCD-u. Ako niste svjesni povezivanja LCD-a, vratite se na gornju vezu i pročitajte je, jer ću preskočiti informacije kako bih izbjegao pokajanje. Kompletna shema sklopa projekta data je u nastavku.


Kao što vidite, ovdje se koriste dva potenciometra, jedan se koristi za podešavanje kontrasta LCD-a, dok drugi služi za napajanje promjenjivog napona na ploči. U tom je potenciometru jedan krajnji kraj potenciometra spojen na Vcc, a drugi kraj na masu. Središnji zatik (plava žica) spojen je na zatik P1.7. Ovaj pin P1.7 pružit će promjenjivi napon od 0V (uzemljenje) do 3,5V (Vcc). Stoga moramo programirati pin P1.7 za očitavanje ovog promjenjivog napona i prikazivanje na LCD-u.
U Energiji moramo znati kojem analognom kanalu pripada pin P1.7? To se može pronaći pozivanjem na donju sliku

Na desnoj strani možete vidjeti pin P1.7, ovaj pin pripada A7 (Channel 7). Slično tome, možemo pronaći odgovarajući broj kanala i za ostale pinove. Za čitanje analognih napona možete koristiti bilo koje pinove od A0 do A7 za odabir analognih napona. Ovdje sam odabrao A7.
Programiranje vašeg MSP430 za ADC:
Programiranje vašeg MSP430 za očitavanje analognog napona vrlo je jednostavno. U ovom programu će se očitati analog vrijednosti, izračunati napon s tom vrijednošću, a zatim se oboje prikazati na LCD zaslonu. Kompletan program možete pronaći na dnu ove stranice, u nastavku ću objasniti program isječke koji će vam pomoći bolje razumjeti.
Započinjemo definiranjem LCD igla. Oni definiraju na koji su pin MSP430 spojeni LCD pinovi. Možete uputiti vezu kako biste bili sigurni da su igle povezane
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Dalje, uključujemo datoteku zaglavlja za LCD zaslon. To poziva biblioteku koja sadrži kod kako MSP treba komunicirati s LCD-om. Ova će se knjižnica po defaultu instalirati u Energia IDE, tako da se ne morate truditi dodavati je. Također se pobrinite da se funkcija Liquid Crystal zove s imenima pinova koje smo upravo definirali gore.
#include
Unutar naše funkcije setup () , samo bismo dali uvodnu poruku koja će se prikazati na LCD zaslonu. Ne ulazim puno duboko jer smo već naučili kako koristiti LCD s MSP430G2.
lcd.begin (16, 2); // Koristimo LCD zaslon 16 * 2 lcd.setCursor (0,0); // Postavite pokazivač na 1. redak 1. stupac lcd.print ("MSP430G2553"); // Prikazuje uvodnu poruku lcd.setCursor (0, 1); // postavljanje kursora na 1. stupac 2. redak lcd.print ("- CircuitDigest"); // Prikazivanje uvodne poruke
Konačno, unutar naše funkcije beskonačne petlje () počinjemo očitavati napon napajan na pin A7. Kao što smo već razgovarali, mikrokontroler je digitalni uređaj i ne može izravno očitavati razinu napona. Koristeći SAR tehniku, razina napona preslikava se od 0 na 1024. Te se vrijednosti nazivaju ADC vrijednosti, da biste dobili ovu ADC vrijednost, jednostavno upotrijebite sljedeći redak
int val = analogRead (A7); // očitavanje vrijednosti ADC s pina A7
Ovdje se funkcija analogRead () koristi za čitanje analogne vrijednosti pina, unutar nje smo odredili A7 jer smo na pin P1.7 spojili promjenjivi napon. Na kraju ovu vrijednost spremamo u varijablu koja se naziva " val ". Tip ove varijable je cjelobrojni jer ćemo u ovu varijablu pohraniti samo vrijednosti u rasponu od 0 do 1024.
Sljedeći bi korak bio izračunavanje vrijednosti napona iz vrijednosti ADC. Da bismo to učinili, imamo sljedeće formule
Napon = (vrijednost ADC / razlučivost ADC) * referentni napon
U našem slučaju već znamo da je ADC razlučivost našeg mikrokontrolera 1024. Vrijednost ADC-a također se nalazi u prethodnom retku i pohranjuje varijablu koja se naziva val. Referentni napon jednak naponu na kojem djeluje mikrokontroler. Kada MSP430 odbor napaja preko USB kabela onda je napon 3.6V. Također možete izmjeriti radni napon pomoću multimetra preko Vcc i uzemljenja na ploči. Dakle, gornja formula se uklapa u naš slučaj kao što je prikazano u nastavku
napon plovka = (plovak (val) / 1024) * 3,6; // formule za pretvaranje vrijednosti ADC u napon
Možda ćete biti zbunjeni s linijom float (val). To se koristi za pretvorbu varijable "val" iz int tipa podataka u "float" tip podataka. Ova je pretvorba potrebna, jer samo ako dobijemo rezultat val / 1024 u float-u, možemo ga pomnožiti 3,6. Ako se vrijednost primi u cijelom broju, uvijek će biti 0, a rezultat će također biti nula. Nakon što izračunamo ADC vrijednost i napon, preostaje samo prikaz rezultata na LCD zaslonu, što se može učiniti pomoću sljedećih redaka
lcd.setCursor (0, 0); // postavljanje kursora na stupac 0, redak 0 lcd.print ("ADC Val:"); lcd.ispis (val); // Prikaz vrijednosti ADC lcd.setCursor (0, 1); // postavljanje kursora na stupac 0, redak 1 lcd.print ("Voltage:"); lcd.ispis (napon); // Prikaz napona
Ovdje smo prikazali vrijednost ADC u prvom retku i vrijednost napona u drugom retku. Napokon dajemo odgodu od 100 mil. Sekundi i očistimo LCD zaslon. To je vrijednost koja će se ažurirati na svakih 100 mil.
Testiranje vašeg rezultata!
Napokon se spuštamo na zabavni dio, koji testira naš program i poigrava se s njim. Samo spojite kako je prikazano na shemi spojeva. Za povezivanje sam koristio malu pločicu, a za povezivanje ploče s MSP430 koristio sam kratkospojne žice. Kad su veze gotove, moje je izgledalo ovako dolje.
Zatim prenesite program koji je naveden u nastavku na ploču MSP430 putem IDE-a Energia. Morali biste vidjeti uvodni tekst na LCD-u, ako ne i prilagoditi kontrast LCD-a pomoću potenciometra dok ne vidite jasne riječi. Pokušajte pritisnuti i gumb za resetiranje. Ako stvari funkcioniraju prema očekivanjima, trebali biste vidjeti sljedeći zaslon.

Sada promijenite potenciometar i trebali biste vidjeti kako napon prikazan na LCD-u varira. Potvrdimo da li ispravno mjerimo napon da bismo to učinili, multimetrom izmjerite napon na sredini POT-a i tla. Napon prikazan na multimetru trebao bi biti blizu vrijednosti prikazane na LCD-u, kao što je prikazano na donjoj slici.

To je to, naučili smo kako mjeriti analogni napon pomoću ADC-a ploče MSP430. Sada možemo povezati mnoge analogne senzore s našom pločom za čitanje parametara u stvarnom vremenu. Nadam se da ste razumjeli tutorial i uživali ste ga učiti, ako imate bilo kakvih problema, obratite se u odjeljku za komentare u nastavku ili putem foruma. Uhvatimo se u drugom vodiču MSP430 s novom temom.
