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 #10 - потенциометры и аналоговые пины 2024, Juli
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. Međutim, 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 - ovo 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čunaru ili u čvorištu - ali napon se malo smanjuje kako se struja okreće oko spoj na mikrokontroler - ili USB izvor jednostavno nije dorastao.

To se lako može dokazati povezivanjem Arduino Uno -a na USB i postavljanjem multimetra za mjerenje napona na pinovima 5V i GND. Neke ploče će se vratiti na nisko 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 DC utičnice ili Vin pina - poput 9V DC. Zatim nakon što prođe kroz krug regulatora snage imat ćete lijepih 5V, na primjer sliku.

Ovo 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, međutim ako koristite senzor koji vraća vrijednost kao napon (npr. Temperaturni senzor 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 rezolucije ADC -a. Rezolucija (za ovaj članak) je stupanj u kojem se nešto može numerički predstaviti. Što je veća rezolucija, veća je tačnost s kojom se nešto može predstaviti. Rezoluciju mjerimo u smislu broja bitova rezolucije.

Na primjer, 1-bitna rezolucija dozvolila bi samo dvije (dvije snage jedne) vrijednosti-nulu i jednu. 2-bitna rezolucija omogućila bi četiri (dvije u odnosu na dvije) vrijednosti-nulu, jedan, dva i tri. Ako bismo pokušali izmjeriti raspon od pet volti s dvobitnom rezolucijom, a izmjereni napon bio je četiri volta, naš ADC bi vratio numeričku vrijednost 3-jer četiri volta pada između 3,75 i 5 V. Lakše je zamisliti ovo sa slikom.

Dakle, s našim primjerom ADC-a s 2-bitnom rezolucijom, 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, šta je AREF?

Da skratim priču, kada vaš Arduino uzima analogno očitanje, uspoređuje napon izmjeren na analognom pinu koji se koristi s onim što je poznato kao referentni napon. U normalnoj upotrebi 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 () je procijenjena na 0,00488 V. (Ovo se računa dijeljenjem 1024 na 5 V). Šta 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 - unutrašnji 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 nabaviti sa 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 (EXTERNAL); // 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 eksternu 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 koji mogu 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 (DEFAULT);

Sada da demonstriramo 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"

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

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

int analogamount = 0; // sprema dolaznu vrijednost float percent = 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 (EXTERNAL); // koristite AREF za referentni napon}

void loop ()

{lcd.clear (); analogamount = analogRead (analogni ulaz); procenat = (analogamount/1024.00)*100; napon = analogni nosač*3.222; // u milivoltima lcd.setCursor (0, 0); lcd.print ("% od AREF:"); lcd.print (procenat, 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 interni referentni napon od 1,1 V i to možemo koristiti za rad AREF. Jednostavno koristite liniju:

analogReference (INTERNAL);

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 se odlučite za rezultate sa svog 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 širom svijeta.

Preporučuje se: