Satura rādītājs:

Arduino AREF tapa: 6 soļi
Arduino AREF tapa: 6 soļi

Video: Arduino AREF tapa: 6 soļi

Video: Arduino AREF tapa: 6 soļi
Video: Учим Arduino за 1 час! #Профессионально 2024, Jūlijs
Anonim
Arduino AREF tapa
Arduino AREF tapa

Šajā apmācībā mēs apskatīsim, kā jūs varat izmērīt mazākus spriegumus ar lielāku precizitāti, izmantojot analogās ieejas tapas savā Arduino vai saderīgā plāksnē kopā ar AREF tapu. Tomēr vispirms mēs veiksim nelielu pārskatīšanu, lai jūs paātrinātu. Lūdzu, pilnībā izlasiet šo ziņu, pirms pirmo reizi strādājat ar AREF.

1. darbība: pārskatīšana

Pārskatīšana!
Pārskatīšana!

Jūs varat atcerēties, ka varat izmantot funkciju Arduino analogRead (), lai izmērītu sensoru elektriskās strāvas spriegumu un tā tālāk, izmantojot vienu no analogās ieejas tapām. No analogRead () atgrieztā vērtība būtu no nulles līdz 1023, kur nulle būtu nulle volti, un 1023 apzīmētu izmantotās Arduino plates darba spriegumu.

Un, kad mēs sakām darba spriegumu - tas ir spriegums, kas pieejams Arduino pēc barošanas shēmas. Piemēram, ja jums ir tipiska Arduino Uno plāksne un palaižat to no USB ligzdas - protams, no datora vai centrmezgla USB ligzdas tāfelei ir pieejams 5 V spriegums, bet spriegums nedaudz samazinās, jo strāva vijas apkārt ķēde uz mikrokontrolleru - vai arī USB avots vienkārši nav saskrāpēts.

To var viegli pierādīt, savienojot Arduino Uno ar USB un ievietojot multimetra komplektu sprieguma mērīšanai 5V un GND tapās. Daži dēļi atgriezīsies līdz 4,8 V, daži augstāki, bet joprojām ir zemāki par 5 V. Tātad, ja vēlaties gūt precizitāti, barojiet savu dēli no ārēja barošanas avota, izmantojot līdzstrāvas kontaktligzdu vai Vin tapu, piemēram, 9 V līdzstrāvu. Tad pēc tam, kad iet caur strāvas regulatora ķēdi, jums būs jauks 5V, piemēram, attēls.

Tas ir svarīgi, jo jebkuras analogRead () vērtību precizitāti ietekmēs tas, ka nav 5 V vērtības. Ja jums nav nevienas opcijas, varat izmantot dažas matemātikas, lai kompensētu sprieguma kritumu. Piemēram, ja jūsu spriegums ir 4,8 V - analogRead () diapazons no 0 ~ 1023 attiecas uz 0 ~ 4,8 V, nevis 0 ~ 5 V. Tas var likties triviāli, tomēr, ja izmantojat sensoru, kas atgriež vērtību kā spriegumu (piemēram, TMP36 temperatūras sensoru) - aprēķinātā vērtība būs nepareiza. Tāpēc precizitātes labad izmantojiet ārēju barošanas avotu.

2. darbība. Kāpēc AnalogRead () atgriež vērtību no 0 līdz 1023?

Kāpēc AnalogRead () atgriež vērtību no 0 līdz 1023?
Kāpēc AnalogRead () atgriež vērtību no 0 līdz 1023?

Tas ir saistīts ar ADC izšķirtspēju. Izšķirtspēja (šim rakstam) ir pakāpe, kādā kaut ko var attēlot skaitliski. Jo augstāka izšķirtspēja, jo lielāka precizitāte ar kaut ko var tikt attēlota. Mēs izmērām izšķirtspēju pēc izšķirtspējas bitu skaita.

Piemēram, 1 bitu izšķirtspēja atļautu tikai divas (divas līdz vienam) vērtības-nulli un vienu. 2 bitu izšķirtspēja ļautu četras (divas līdz divu spēku) vērtības-nulle, viens, divi un trīs. Ja mēs mēģinātu izmērīt piecu voltu diapazonu ar divu bitu izšķirtspēju un izmērītais spriegums būtu četri volti, mūsu ADC atgrieztu skaitlisko vērtību 3-četri volti nokrīt no 3,75 līdz 5 V. To ir vieglāk iedomāties ar attēlu.

Tātad, izmantojot mūsu ADC piemēru ar 2 bitu izšķirtspēju, tas var attēlot tikai spriegumu ar četrām iespējamām vērtībām. Ja ieejas spriegums nokrīt no 0 līdz 1,25, ADC atgriež skaitlisko 0; ja spriegums nokrītas no 1,25 līdz 2,5, ADC atgriež skaitlisko vērtību 1. Un tā tālāk. Ar mūsu Arduino ADC diapazonu no 0 ~ 1023-mums ir 1024 iespējamās vērtības-vai 2 līdz 10. Līdz ar to mūsu Arduinos ir ADC ar 10 bitu izšķirtspēju.

3. darbība. Tātad, kas ir AREF?

Īsi sakot, kad jūsu Arduino iegūst analogo lasījumu, tas salīdzina spriegumu, kas izmērīts pie izmantotās analogās tapas, ar tā saukto atsauces spriegumu. Parastā analogRead lietošanā atskaites spriegums ir plates darba spriegums.

Populārākajām Arduino plāksnēm, piemēram, Uno, Mega, Duemilanove un Leonardo/Yún plāksnēm, darba spriegums ir 5 V. Ja jums ir Arduino Due plate, darba spriegums ir 3,3 V. Ja jums ir kaut kas cits - pārbaudiet Arduino produkta lapu vai jautājiet savam dēļa piegādātājam.

Tātad, ja jums ir 5 V atsauces spriegums, katra analogRead () atgrieztā vienība tiek novērtēta ar 0,00488 V. (To aprēķina, dalot 1024 uz 5 V). Ko darīt, ja mēs vēlamies izmērīt spriegumu no 0 līdz 2 vai no 0 līdz 4,6? Kā ADC zinātu, kas ir 100% no mūsu sprieguma diapazona?

Un tur slēpjas AREF tapas iemesls. AREF nozīmē analogo atsauci. Tas ļauj mums barot Arduino ar atskaites spriegumu no ārēja barošanas avota. Piemēram, ja mēs vēlamies izmērīt spriegumus ar maksimālo diapazonu 3,3 V, mēs AREF tapā ievadītu jauku, vienmērīgu 3,3 V spriegumu - iespējams, no sprieguma regulatora IC.

Tad katrs ADC solis būtu aptuveni 3,22 milivolti (sadaliet 1024 uz 3.3). Ņemiet vērā, ka zemākais atsauces spriegums, kāds jums var būt, ir 1,1 V. Ir divi AREF veidi - iekšējais un ārējais, tāpēc pārbaudīsim tos.

4. darbība. Ārējais AREF

Ārējais AREF ir vieta, kur jūs piegādājat Arduino plāksnei ārēju atsauces spriegumu. To var iegūt no regulēta barošanas avota, vai, ja jums ir nepieciešams 3,3 V, to varat iegūt no Arduino 3,3 V tapas. Ja izmantojat ārēju barošanas avotu, noteikti pievienojiet GND Arduino GND tapai. Vai arī, ja izmantojat Arduno 3.3V avotu - vienkārši palaidiet džemperi no 3.3V tapas uz AREF tapu.

Lai aktivizētu ārējo AREF, spēkā esošajā iestatīšanā () izmantojiet šo:

analogReference (EXTERNAL); // atsauces spriegumam izmantojiet AREF

Tas nosaka atsauces spriegumu jebkuram, ko esat pievienojis AREF tapai - protams, spriegums būs starp 1,1 V un tāfeles darbības spriegumu. Ļoti svarīga piezīme - izmantojot ārējo sprieguma atskaiti, analogā atsauce jāiestata uz ĀRĒJĀ pirms lietojat analogRead (). Tas novērsīs aktīvā iekšējā atsauces sprieguma un AREF tapas īssavienojumu, kas var sabojāt tāfeles mikrokontrolleru. Ja tas ir nepieciešams jūsu lietojumprogrammai, varat atgriezties pie paneļa darba sprieguma AREF (tas ir - atgriezties normālā stāvoklī), veicot tālāk norādītās darbības.

analogReference (DEFAULT);

Tagad, lai demonstrētu ārējo AREF darbā. Izmantojot 3.3V AREF, sekojošā skice mēra spriegumu no A0 un parāda kopējā AREF procentuālo daudzumu un aprēķināto spriegumu:

#include "LiquidCrystal.h"

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

int analoginput = 0; // mūsu analogā tapa

int analogamount = 0; // saglabā ienākošās vērtības pludiņa procentuālo = 0; // izmanto, lai saglabātu mūsu procentuālo vērtību pludiņa spriegums = 0; // izmanto sprieguma vērtības saglabāšanai

anulēts iestatījums ()

{lcd.sākt (16, 2); analogReference (EXTERNAL); // atsauces spriegumam izmantot AREF}

tukša cilpa ()

{lcd.clear (); analogamount = analogRead (analoginput); procenti = (analogamount/1024,00)*100; spriegums = analogamount*3.222; // milivoltos lcd.setCursor (0, 0); lcd.print ("% no AREF:"); lcd.print (procenti, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (spriegums, 2); kavēšanās (250); }

Iepriekš redzamās skices rezultāti ir parādīti videoklipā.

5. darbība: iekšējais AREF

Mūsu Arduino plates mikrokontrolleri var arī radīt iekšējo atsauces spriegumu 1,1 V, un mēs to varam izmantot AREF darbam. Vienkārši izmantojiet rindu:

analogReference (INTERNAL);

Arduino Mega dēļiem izmantojiet:

analogReference (INTERNAL1V1);

nav iestatīšanas (), un jūs esat izslēgts. Ja jums ir Arduino Mega, ir pieejams arī 2,56 V atskaites spriegums, kas tiek aktivizēts ar:

analogReference (INTERNAL2V56);

Visbeidzot - pirms samierināties ar AREF tapas rezultātiem, vienmēr kalibrējiet rādījumus, izmantojot zināmu labu multimetru.

Secinājums

Funkcija AREF nodrošina lielāku elastību, mērot analogos signālus.

Šo ziņu jums sniedza pmdway.com - viss veidotājiem un elektronikas entuziastiem ar bezmaksas piegādi visā pasaulē.

Ieteicams: