Sadržaj:

Arduino AREF pin: 6 koraka
Arduino AREF pin: 6 koraka

Video: Arduino AREF pin: 6 koraka

Video: Arduino AREF pin: 6 koraka
Video: Arduino AREF pin 2024, Studeni
Anonim
Arduino AREF pin
Arduino AREF pin

U ovom ćemo vodiču pogledati kako možete mjeriti manje napone s većom točnošću pomoću analognih ulaznih pinova na vašem Arduinu ili kompatibilnoj ploči zajedno s AREF pinom. No prvo ćemo napraviti neke izmjene kako bismo vas ubrzali. Molimo vas da u potpunosti pročitate ovaj post prije prvog rada s AREF -om.

Korak 1: Revizija

Revizija!
Revizija!

Možda se sjećate da možete koristiti funkciju Arduino analogRead () za mjerenje napona električne struje sa senzora i tako dalje pomoću jednog od analognih ulaznih pinova. Vrijednost vraćena iz analogRead () bila bi između nule i 1023, pri čemu nula predstavlja nula volti i 1023 predstavlja radni napon Arduino ploče u upotrebi.

A kad kažemo radni napon - to je napon dostupan Arduinu nakon kruga napajanja. Na primjer, ako imate tipičnu Arduino Uno ploču i pokrećete je iz USB utičnice - naravno, na ploči je na raspolaganju 5 V iz USB utičnice na vašem računalu ili u čvorištu - ali napon se blago smanjuje kako struja navira oko spoj na mikrokontroler - ili USB izvor jednostavno nije dorastao.

To se lako može dokazati spajanjem Arduino Uno na USB i postavljanjem multimetra za mjerenje napona na 5V i GND pinovima. Neke će se ploče vratiti do 4,8 V, neke više, ali i dalje ispod 5 V. Dakle, ako tražite preciznost, napajajte ploču iz vanjskog izvora napajanja putem istosmjerne utičnice ili Vin pina - poput 9 V DC. Zatim nakon što prođe kroz krug regulatora snage imat ćete lijepih 5V, na primjer sliku.

To je važno jer će na točnost bilo kojih analognih vrijednosti () utjecati to što nema istinitih 5 V. Ako nemate nikakvu opciju, možete upotrijebiti neke matematike u skici da biste kompenzirali pad napona. Na primjer, ako je vaš napon 4,8 V - raspon analogRead () od 0 ~ 1023 odnosit će se na 0 ~ 4,8 V, a ne na 0 ~ 5 V. Ovo može zvučati trivijalno, no ako koristite senzor koji vraća vrijednost kao napon (npr. Temperaturni osjetnik TMP36) - izračunata vrijednost neće biti točna. Stoga u interesu točnosti koristite vanjsko napajanje.

Korak 2: Zašto AnalogRead () vraća vrijednost između 0 i 1023?

Zašto AnalogRead () vraća vrijednost između 0 i 1023?
Zašto AnalogRead () vraća vrijednost između 0 i 1023?

To je zbog rješavanja ADC -a. Razlučivost (za ovaj članak) je stupanj u kojem se nešto može numerički predstaviti. Što je veća razlučivost, veća je točnost s kojom se nešto može predstaviti. Razlučivost mjerimo u smislu broja bitova razlučivosti.

Na primjer, 1-bitna razlučivost dopušta samo dvije (dvije snage jedne) vrijednosti-nulu i jednu. 2-bitna razlučivost omogućila bi četiri (dvije snage dvije) vrijednosti-nulu, jedan, dva i tri. Kad bismo pokušali izmjeriti raspon od pet volti s dvobitnom razlučivošću, a izmjereni napon bio je četiri volta, naš bi ADC vratio numeričku vrijednost 3-budući da četiri volta pada između 3,75 i 5 V. Lakše je to zamisliti slikom.

Dakle, s našim primjerom ADC-a s 2-bitnom razlučivošću, on može predstavljati napon samo s četiri moguće rezultirajuće vrijednosti. Ako ulazni napon padne između 0 i 1,25, ADC vraća brojčano 0; ako napon padne između 1,25 i 2,5, ADC vraća brojčanu vrijednost 1. I tako dalje. S rasponom ADC-a našeg Arduina od 0 ~ 1023-imamo 1024 moguće vrijednosti-ili 2 do stupnja 10. Dakle, naši Arduino imaju ADC s 10-bitnom rezolucijom.

Korak 3: Dakle, što je AREF?

Da skratim priču, kada vaš Arduino uzima analogno očitanje, uspoređuje napon izmjeren na analognom pinu koji se koristi s referentnim naponom. U normalnoj uporabi analognog čitanja, referentni napon je radni napon ploče.

Za popularnije Arduino ploče, poput ploča Uno, Mega, Duemilanove i Leonardo/Yún, radni napon je 5V. Ako imate Arduino Due ploču, radni napon je 3,3 V. Ako imate nešto drugo - provjerite stranicu proizvoda Arduino ili pitajte dobavljača ploče.

Dakle, ako imate referentni napon od 5 V, svaka jedinica koju vrati analogRead () ima vrijednost 0,00488 V. (To se izračunava dijeljenjem 1024 na 5 V). Što ako želimo mjeriti napone između 0 i 2 ili 0 i 4,6? Kako bi ADC znao koji je 100% našeg raspona napona?

I u tome leži razlog za AREF pin. AREF znači analogna referenca. Omogućuje nam da napojimo Arduino referentni napon iz vanjskog izvora napajanja. Na primjer, ako želimo mjeriti napone s maksimalnim rasponom od 3,3 V, napajali bismo lijepih glatkih 3,3 V u AREF pin - možda iz IC regulatora napona.

Tada bi svaki korak ADC -a predstavljao oko 3,22 milivolta (podijelite 1024 na 3,3). Imajte na umu da najniži referentni napon koji možete imati iznosi 1,1V. Postoje dva oblika AREF -a - unutarnji i vanjski, pa ih provjerimo.

Korak 4: Vanjski AREF

Vanjski AREF je mjesto gdje napajate vanjski referentni napon na Arduino ploču. To može doći iz reguliranog izvora napajanja, ili ako vam je potrebno 3.3V, možete ga dobiti s Arduinovog 3.3V pina. Ako koristite vanjsko napajanje, spojite GND na Arduino GND pin. Ili ako koristite Ardunov 3.3V izvor - samo pokrenite kratkospojnik od 3.3V pina do AREF pina.

Da biste aktivirali vanjski AREF, upotrijebite sljedeće u void setup ():

analogReference (VANJSKI); // koristiti AREF za referentni napon

Ovo postavlja referentni napon na sve što ste spojili na AREF pin - koji će naravno imati napon između 1,1 V i radnog napona ploče. Vrlo važna napomena - kada koristite vanjsku referentnu naponsku vrijednost, morate postaviti analognu referencu na EXTERNAL prije korištenja analogRead (). Time ćete spriječiti kratki spoj aktivnog internog referentnog napona i AREF pina, što može oštetiti mikrokontroler na ploči. Ako je potrebno za vašu aplikaciju, možete se vratiti na radni napon ploče za AREF (to jest - vratiti se na normalu) sa sljedećim

analogReference (Zadano);

Sada demonstrirajte vanjski AREF na djelu. Koristeći 3.3V AREF, sljedeća skica mjeri napon iz A0 i prikazuje postotak ukupnog AREF -a i izračunati napon:

#include "LiquidCrystal.h"

LCD tekući kristal (8, 9, 4, 5, 6, 7);

int analogni ulaz = 0; // naš analogni pin

int analogamount = 0; // sprema dolaznu vrijednost plutajući postotak = 0; // koristi se za spremanje naše postotne vrijednosti plivajući napon = 0; // koristi se za spremanje vrijednosti napona

void setup ()

{lcd.begin (16, 2); analogReference (VANJSKI); // upotrijebite AREF za referentni napon}

void loop ()

{lcd.clear (); analogamount = analogRead (analogni ulaz); postotak = (analogamount/1024.00)*100; napon = analogni nosač*3.222; // u milivoltima lcd.setCursor (0, 0); lcd.print ("% od AREF:"); lcd.print (postotak, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (napon, 2); kašnjenje (250); }

Rezultati gornje skice prikazani su u videu.

Korak 5: Interni AREF

Mikrokontroleri na našim Arduino pločama također mogu generirati unutarnji referentni napon od 1,1 V, a to možemo koristiti za rad AREF. Jednostavno upotrijebite redak:

analogReference (INTERNO);

Za Arduino Mega ploče koristite:

analogReference (INTERNAL1V1);

u void setup () i isključeni ste. Ako imate Arduino Mega, dostupan je i referentni napon od 2,56 V koji se aktivira sa:

analogReference (INTERNAL2V56);

Konačno - prije nego što odlučite o rezultatima s vašeg AREF pina, uvijek kalibrirajte očitanja prema poznatom dobrom multimetru.

Zaključak

AREF funkcija daje vam veću fleksibilnost pri mjerenju analognih signala.

Ovaj post vam donosi pmdway.com - sve za proizvođače i ljubitelje elektronike, uz besplatnu dostavu diljem svijeta.

Preporučeni: