- Razumevanje modula ADC:
- Shema vezja:
- Programiranje vašega MSP430 za ADC:
- Testiranje vašega rezultata!
Skupna značilnost, ki se uporablja v skoraj vseh vdelanih aplikacijah, je modul ADC (analogni v digitalni pretvornik). Ti analogno-digitalni pretvorniki lahko berejo napetost iz analognih senzorjev, kot so temperaturni senzor, senzor nagiba, trenutni senzor, Flex senzor in še veliko več. Torej, v tej vadnici bomo izvedeli, kako uporabljati ADC v MSP430G2 za branje analognih napetosti z uporabo Energia IDE. Majhen potenciometer bomo povezali na ploščo MSP in na analogni zatič napajali različno napetost, odčitavali napetost in jo prikazovali na serijskem monitorju.
Razumevanje modula ADC:
Verjemite mi, komaj bi trajalo 10 minut, da se MSP430G2 priključi in programira, da prebere analogno napetost. Vendar pa si nekaj časa namenimo razumevanju modula ADC na plošči MSP, da ga bomo lahko učinkovito uporabili pri vseh prihodnjih projektih.
Mikrokrmilnik je digitalna naprava, kar pomeni, da lahko razume samo 1 in 0. Toda v resničnem svetu so skoraj vse, kot so temperatura, vlaga, hitrost vetra itd., Analogne narave. Za interakcijo s temi analognimi spremembami mikrokrmilnik uporablja modul, imenovan ADC. Na voljo je veliko različnih vrst ADC modulov, v našem MSP pa je 10-bitni ADC 8-kanalni SAR.
ADC za zaporedno približevanje (SAR): SAR ADC deluje s pomočjo primerjalnika in nekaterih logičnih pogovorov. Ta vrsta ADC uporablja referenčno napetost (ki je spremenljiva) in primerja vhodno napetost z referenčno napetostjo s primerjalnikom in razlika, ki bo digitalni izhod, se shrani iz najpomembnejšega bita (MSB). Hitrost primerjave je odvisna od frekvence ure (Fosc), na kateri deluje MSP.
10-bitna ločljivost: ta ADC je 8-kanalni 10-bitni ADC. Tu izraz 8 kanal pomeni, da obstaja 8 ADC zatičev, s pomočjo katerih lahko merimo analogno napetost. Izraz 10-bit pomeni ločljivost ADC. 10-bit pomeni 2 na stopnjo deset (2 10), kar je 1024. To je število vzorčnih korakov za naš ADC, zato bo obseg naših vrednosti ADC od 0 do 1023. Vrednost se bo povečala od 0 do 1023 na podlagi vrednosti napetosti na korak, ki jo lahko izračunamo s spodnjo formulo
Opomba: Privzeto bo v Energiji referenčna napetost nastavljena na Vcc (~ 3v), referenčno napetost lahko spreminjate z možnostjo analogReference () .
Preverite tudi, kako povezati ADC z drugimi mikrokrmilniki:
- Kako uporabljati ADC v Arduino Uno?
- Povezava ADC0808 z mikrokrmilnikom 8051
- Uporaba modula ADC mikrokrmilnika PIC
- Vadnica za ADC Raspberry Pi
Shema vezja:
V prejšnji vadnici smo se že naučili, kako povezati LCD z MSP430G2, zdaj bomo le dodali potenciometer MSP430, da mu bo omogočil spremenljivo napetost in prikazal vrednost napetosti na LCD-ju. Če ne poznate povezave LCD-ja, se vrnite na zgornjo povezavo in si jo preberite, ker bom podatke preskočil, da bi se izognil kesanju. Celoten diagram vezja projekta je podan spodaj.
Kot lahko vidite, sta tu uporabljena dva potenciometra, eden se uporablja za nastavitev kontrasta LCD-ja, drugi pa za napajanje spremenljive napetosti na ploščo. V tem potenciometru je en skrajni konec potenciometra priključen na Vcc, drugi konec pa na ozemljitev. Sredinski zatič (modra žica) je povezan z zatičem P1.7. Ta zatič P1.7 zagotavlja spremenljivo napetost od 0V (tla) do 3,5V (Vcc). Torej moramo programirati zatič P1.7 za odčitavanje te spremenljive napetosti in prikaz na LCD-prikazovalniku.
V Energii moramo vedeti, kateremu analognemu kanalu pripada zatič P1.7? To lahko najdete na spodnji sliki
Na desni strani lahko vidite pin P1.7, ta pin pripada A7 (Channel 7). Podobno lahko najdemo ustrezno številko kanala tudi za druge nožice. Za branje analognih napetosti lahko uporabite katere koli zatiče od A0 do A7. Tu sem izbral A7.
Programiranje vašega MSP430 za ADC:
Programiranje naprave MSP430 za branje analogne napetosti je zelo preprosto. V tem programu bo prebral analog vrednosti in izračunal napetost s to vrednostjo ter nato prikazal obe na LCD zaslonu. Celoten program najdete na dnu te strani, v nadaljevanju bom pojasnil program v delčkih, ki vam pomaga bolje razumeti.
Najprej določimo zatiče LCD. Ti določajo, na kateri zatič MSP430 so priključeni zatiči LCD. Lahko se obrnete na povezavo in se prepričate, da so nožice povezane
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Nato vključimo datoteko z glavo za LCD zaslon. To pokliče knjižnico, ki vsebuje kodo o tem, kako naj MSP komunicira z LCD-jem. Ta knjižnica bo privzeto nameščena v IDE Energia, zato vam je ni treba dodajati. Prepričajte se tudi, da je funkcija Liquid Crystal poklicana z imeni pinov, ki smo jih pravkar določili zgoraj.
#include
Znotraj naše funkcije setup () bi dali samo uvodno sporočilo, ki se prikaže na LCD zaslonu. Ne poglabljam se veliko, saj smo se že naučili, kako uporabljati LCD z MSP430G2.
lcd.begin (16, 2); // Uporabljamo LCD zaslon 16 * 2 lcd.setCursor (0,0); // Postavite kazalko na 1. vrstico 1. stolpec lcd.print ("MSP430G2553"); // Prikažemo uvodno sporočilo lcd.setCursor (0, 1); // kurzor nastavimo na 1. stolpec 2. vrstica lcd.print ("- CircuitDigest"); // Prikaži uvodno sporočilo
Na koncu v naši funkciji neskončne zanke () začnemo odčitavati napetost, ki je dovedena na zatič A7. Kot smo že govorili, je mikrokrmilnik digitalna naprava in ne more neposredno odčitati napetosti. S tehniko SAR se nivo napetosti preslika od 0 do 1024. Te vrednosti se imenujejo vrednosti ADC, da dobite to vrednost ADC, preprosto uporabite naslednjo vrstico
int val = analogRead (A7); // preberemo vrednost ADC iz zatiča A7
Tu se funkcija analogRead () uporablja za branje analogne vrednosti zatiča, znotraj nje smo določili A7, saj smo na pin P1.7 priključili spremenljivo napetost. Na koncu to vrednost shranimo v spremenljivko, imenovano " val ". Tip te spremenljivke je celo število, ker bomo v tej spremenljivki shranili le vrednosti od 0 do 1024.
Naslednji korak bi bil izračun vrednosti napetosti iz vrednosti ADC. Za to imamo naslednje formule
Napetost = (vrednost ADC / ločljivost ADC) * referenčna napetost
V našem primeru že vemo, da je ločljivost ADC našega mikrokrmilnika 1024. Vrednost ADC se nahaja tudi v prejšnji vrstici in shrani spremenljivko, imenovano val. Referenčna napetost je enako napetostjo, s katero se mikrokrmilnik, ki deluje. Ko je MSP430 svet napaja preko USB kabla potem obratovalna napetost je 3,6. Delovno napetost lahko izmerite tudi z uporabo multimetra na Vcc in ozemljitvenem zatiču na plošči. Torej zgornja formula ustreza našemu primeru, kot je prikazano spodaj
plavajoča napetost = (plovec (val) / 1024) * 3,6; // formule za pretvorbo vrednosti ADC v napetost
Morda vas bo zamenjala vrstica float (val). To se uporablja za pretvorbo spremenljivke “val” iz podatkovnega tipa int v podatkovni tip “float”. Ta pretvorba je potrebna, ker jo lahko pomnožimo le, če dobimo rezultat val / 1024 v float-u. Če je vrednost prejeta v celoštevilskem številu, bo vedno 0, rezultat pa bo tudi nič. Ko izračunamo vrednost in napetost ADC, ostane le prikaz rezultata na LCD zaslonu, kar lahko storimo z uporabo naslednjih vrstic
lcd.setCursor (0, 0); // kurzor nastavimo na stolpec 0, vrstica 0 lcd.print ("ADC Val:"); lcd.tis (val); // Prikaži vrednost ADC lcd.setCursor (0, 1); // kurzor nastavimo na stolpec 0, vrstica 1 lcd.print ("Voltage:"); lcd.print (napetost); // Prikaz napetosti
Tu smo prikazali vrednost ADC v prvi vrstici in vrednost napetosti v drugi vrstici. Na koncu damo 100-milimetrsko zakasnitev in očistimo LCD zaslon. To je bila vrednost, ki se bo posodabljala za vsakih 100 mil.
Testiranje vašega rezultata!
Na koncu pridemo do zabavnega dela, ki preizkuša naš program in se poigrava z njim. Samo vzpostavite povezave, kot je prikazano na vezju. Za povezovanje sem uporabil majhno ploščo, za povezavo plošče z MSP430 pa z žicami za premostitev. Ko so povezave končane, je moja izgledala spodaj tako.
Nato program, ki je naveden spodaj, naložite na ploščo MSP430 prek programa Energia IDE. Na LCD-prikazovalniku bi morali videti uvodno besedilo, v nasprotnem primeru s potenciometrom prilagodite kontrast LCD-ja, dokler ne vidite jasnih besed. Poskusite pritisniti tudi gumb za ponastavitev. Če stvari delujejo po pričakovanjih, boste lahko videli naslednji zaslon.
Zdaj spremenite potenciometer in videli boste tudi, kako se napetost, prikazana na LCD-prikazovalniku spreminja. Preverimo, ali napetost merimo pravilno, da to naredimo, z multimetrom izmerimo napetost na sredini POT-a in tal. Napetost, prikazana na multimetru, mora biti blizu vrednosti, prikazane na LCD-prikazovalniku, kot je prikazano na spodnji sliki.
To je to, naučili smo se meriti analogno napetost s pomočjo ADC plošče MSP430. Zdaj lahko z našo ploščo povežemo številne analogne senzorje za branje parametrov v realnem času. Upam, da ste razumeli vadnico in ste se je z veseljem naučili. Če imate kakršne koli težave, se obrnite na spodnji razdelek za komentarje ali na forume. Poglejmo še eno vadnico MSP430 z novo temo.