Satura rādītājs:
- 1. darbība: pārskatīšana
- 2. darbība. Kāpēc AnalogRead () atgriež vērtību no 0 līdz 1023?
- 3. darbība. Tātad, kas ir AREF?
- 4. darbība. Ārējais AREF
- 5. darbība: iekšējais AREF
Video: Arduino AREF tapa: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Š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
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?
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:
ICSP savienotājs Arduino Nano bez lodēta tapa galvenes, bet Pogo tapa: 7 soļi
ICSP savienotājs Arduino Nano bez lodējamas tapas galvenes, bet Pogo tapa: izveidojiet ICSP savienotāju Arduino Nano bez lodētas tapas galvenes uz tāfeles, bet Pogo tapu. Daļas 3 × 2 kontaktu ligzda x1 - APitch 2,54 mm divu līniju stieples sietiņu savienotāja korpusa spailes x6 -BP75-E2 (1,3 mm koniska galva) atsperes testa zondes Pogo tapa
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēta sastāvdaļa: 5 soļi
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēts komponents: Sveiki, visi meklēja ieslēgšanas/izslēgšanas ķēdi tīklā. Viss, ko atradu, nebija tas, ko meklēju. Es runāju ar sevi, tam noteikti ir ceļš. Tas bija tas, kas man bija vajadzīgs.-Tikai viena spiedpoga, lai to ieslēgtu un izslēgtu
Viena tapa 4 × 4 tastatūra: 10 soļi
Viena taustiņa 4 × 4 tastatūra: katru reizi, kad redzu tastatūru, tai ir daudz tapas, tas ir liels jūsu Arduino tapas izšķiešana, tāpēc vai mēs varam palaist tastatūru ar vienu un tikai vienu tapu?. Atbilde ir šeit
Gaismas animācijas brīvdienu tapa: 9 soļi (ar attēliem)
Gaismas animācijas brīvdienu tapa: Kad es pirmo reizi izstrādāju šo projektu, es negaidīju, ka to publicēšu kā atvērtu avotu. Es domāju, ka tā bija lieliska ideja, un tai bija komerciāls potenciāls, ko es varētu pārdot amatniecības izstādē. Tas, iespējams, ir saistīts ar zināmu pieredzes trūkumu vai varbūt
Vairāk nekā 100 slēdžu vienā Arduino tapā: 6 soļi (ar attēliem)
100+ slēdži vienā Arduino tapā: Ievads Vai jums beidzās ievades tapas? Neuztraucieties, šeit ir risinājums bez maiņu reģistriem. Šajā videoklipā mēs uzzināsim par vairāk nekā 100 slēdžu pievienošanu vienam Arduino tapam