Turinys:

„Arduino AREF“kaištis: 6 žingsniai
„Arduino AREF“kaištis: 6 žingsniai

Video: „Arduino AREF“kaištis: 6 žingsniai

Video: „Arduino AREF“kaištis: 6 žingsniai
Video: Arduino Serial и processing 6 2024, Liepa
Anonim
„Arduino AREF“kaištis
„Arduino AREF“kaištis

Šioje pamokoje apžvelgsime, kaip galite tiksliau išmatuoti mažesnę įtampą naudodami analoginius įvesties kaiščius „Arduino“arba suderinamoje plokštėje kartu su AREF kaiščiu. Tačiau pirmiausia atliksime keletą peržiūrų, kad galėtume greičiau veikti. Prieš pirmą kartą dirbdami su AREF, perskaitykite šį įrašą.

1 žingsnis: peržiūra

Peržiūra!
Peržiūra!

Galite prisiminti, kad galite naudoti „Arduino analogRead“() funkciją, norėdami išmatuoti jutiklių elektros srovės įtampą ir pan., Naudodami vieną iš analoginių įvesties kaiščių. Vertė, gauta iš „analogRead“(), būtų nuo nulio iki 1023, o nulis - nulis voltų, o 1023 - naudojamos „Arduino“plokštės darbinė įtampa.

Ir kai mes sakome, kad darbinė įtampa - tai yra įtampa, prieinama „Arduino“po maitinimo grandinės. Pvz., Jei turite įprastą „Arduino Uno“plokštę ir paleidžiate ją iš USB lizdo - žinoma, iš kompiuterio ar šakotuvo USB lizdo plokštė turi 5 V įtampą, tačiau įtampa šiek tiek sumažėja, kai srovė sukasi aplink grandinė prie mikrovaldiklio - arba USB šaltinis tiesiog nėra įbrėžtas.

Tai galima lengvai parodyti prijungus „Arduino Uno“prie USB ir įdėjus multimetro rinkinį 5 V ir GND kaiščių įtampai matuoti. Kai kurios plokštės sugrįš iki 4,8 V, kai kurios - aukštesnės, bet vis tiek žemiau 5 V. Taigi, jei siekiate tikslumo, maitinkite plokštę iš išorinio maitinimo šaltinio per nuolatinės srovės lizdą arba „Vin“kaištį, pvz., 9 V nuolatinę srovę. Tada po to, kai praeis maitinimo reguliatoriaus grandinė, turėsite gražų 5 V, pavyzdžiui, vaizdą.

Tai svarbu, nes bet kurio „analogRead“() reikšmių tikslumui įtakos turės tai, kad neturėsite tikrojo 5 V. Jei neturite jokios parinkties, eskize galite naudoti tam tikrą matematiką, kad kompensuotumėte įtampos kritimą. Pvz., Jei jūsų įtampa yra 4,8 V, „analogRead“() diapazonas 0–1023 bus susijęs su 0–4,8 V, o ne nuo 0 iki 5 V. Tai gali atrodyti nereikšminga, tačiau jei naudojate jutiklį, kuris grąžina vertę kaip įtampą (pvz., TMP36 temperatūros jutiklį) - apskaičiuota vertė bus neteisinga. Taigi, siekdami tikslumo, naudokite išorinį maitinimo šaltinį.

2 žingsnis: Kodėl „AnalogRead ()“grąžina reikšmę nuo 0 iki 1023?

Kodėl „AnalogRead ()“grąžina reikšmę nuo 0 iki 1023?
Kodėl „AnalogRead ()“grąžina reikšmę nuo 0 iki 1023?

Taip yra dėl ADC rezoliucijos. Rezoliucija (šiam straipsniui) yra laipsnis, kuriuo kažkas gali būti pavaizduotas skaitmeniniu būdu. Kuo didesnė skiriamoji geba, tuo didesnis tikslumas gali būti vaizduojamas. Mes matuojame rezoliuciją pagal rezoliucijos bitų skaičių.

Pavyzdžiui, 1 bitų skiriamoji geba leistų tik dvi (dvi iki vieno galios) reikšmes-nulį ir vieną. 2 bitų skiriamoji geba leistų keturias (dvi iki dviejų galių) reikšmes-nulį, vieną, du ir tris. Jei bandytume išmatuoti penkių voltų diapazoną su dviejų bitų skiriamąja geba, o išmatuota įtampa būtų keturi voltai, mūsų ADC grąžintų skaitinę vertę 3-keturi voltai krenta nuo 3,75 iki 5 V. Su vaizdu tai lengviau įsivaizduoti.

Taigi, naudojant mūsų pavyzdinį ADC su 2 bitų skiriamąja geba, jis gali parodyti tik įtampą, turėdamas keturias galimas vertes. Jei įėjimo įtampa nukrenta nuo 0 iki 1,25, ADC grąžina skaičių 0; jei įtampa nukrenta nuo 1,25 iki 2,5, ADC grąžina skaitinę reikšmę 1. Ir pan. Naudodami mūsų „Arduino“ADC diapazoną nuo 0 iki 1023-turime 1024 galimas vertes-arba 2 iki 10. Taigi mūsų „Arduinos“turi 10 bitų skiriamąją gebą.

3 žingsnis: Taigi, kas yra AREF?

Trumpai tariant, kai jūsų „Arduino“nuskaito analogiškai, jis lygina naudojamą analoginį kaištį išmatuotą įtampą su vadinamąja atskaitos įtampa. Įprastai naudojant „analogRead“, etaloninė įtampa yra plokštės darbinė įtampa.

Populiariausių „Arduino“plokščių, tokių kaip „Uno“, „Mega“, „Duemilanove“ir „Leonardo/Yún“plokštės, darbinė įtampa yra 5 V. Jei turite „Arduino Due“plokštę, darbinė įtampa yra 3,3 V. Jei turite ką nors kita - patikrinkite „Arduino“produkto puslapį arba kreipkitės į lentos tiekėją.

Taigi, jei turite 5 V etaloninę įtampą, kiekvienas „analogRead“() grąžintas vienetas yra vertinamas 0,00488 V. (Tai apskaičiuojama padalijus 1024 į 5 V). Ką daryti, jei norime išmatuoti įtampą nuo 0 iki 2 arba nuo 0 iki 4,6? Kaip ADC žinotų, kas yra 100% mūsų įtampos diapazono?

Ir čia yra AREF kaiščio priežastis. AREF reiškia analoginę nuorodą. Tai leidžia mums tiekti „Arduino“etaloninę įtampą iš išorinio maitinimo šaltinio. Pavyzdžiui, jei norime matuoti įtampą, kurios maksimalus diapazonas yra 3,3 V, į AREF kaištį tiekiame gražią, sklandžią 3,3 V įtampą - galbūt iš įtampos reguliatoriaus IC.

Tada kiekvienas ADC žingsnis sudarytų apie 3,22 milivolto (padalinkite 1024 į 3.3). Atminkite, kad mažiausia atskaitos įtampa, kurią galite turėti, yra 1,1 V. Yra dvi AREF formos - vidinė ir išorinė, todėl patikrinkime jas.

4 žingsnis: išorinis AREF

Išorinis AREF yra vieta, kur į „Arduino“plokštę tiekiate išorinę etaloninę įtampą. Tai gali būti iš reguliuojamo maitinimo šaltinio arba, jei jums reikia 3,3 V, galite jį gauti iš „Arduino“3,3 V kaiščio. Jei naudojate išorinį maitinimo šaltinį, būtinai prijunkite GND prie „Arduino“GND kaiščio. Arba, jei naudojate „Arduno“3,3 V šaltinį - tiesiog paleiskite trumpiklį nuo 3,3 V kaiščio iki AREF kaiščio.

Norėdami suaktyvinti išorinį AREF, negaliojančioje sąrankoje () naudokite šiuos veiksmus:

analogReference (IŠORINIS); // naudoti AREF etaloninei įtampai

Tai nustato atskaitos įtampą bet kuriai, kurią prijungėte prie AREF kaiščio - žinoma, įtampa bus nuo 1,1 V iki plokštės veikimo įtampos. Labai svarbi pastaba - naudodami išorinę įtampos nuorodą, turite nustatyti analoginę nuorodą IŠORINĖ prieš naudodami analogRead (). Tai neleis sutrumpinti aktyvios vidinės etaloninės įtampos ir AREF kaiščio, kuris gali sugadinti plokštės mikrovaldiklį. Jei to reikia jūsų programai, galite grįžti prie plokštės darbinės AREF įtampos (tai yra - grįžti prie normalios), atlikdami šiuos veiksmus:

analogReference (Numatytasis);

Dabar pademonstruokite išorinį AREF darbe. Naudojant 3.3V AREF, šis eskizas matuoja įtampą nuo A0 ir rodo viso AREF procentą ir apskaičiuotą įtampą:

#įtraukti „LiquidCrystal.h“

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

int analoginput = 0; // mūsų analoginis kaištis

int analogamount = 0; // saugo gaunamos vertės plūdės procentą = 0; // naudojamas mūsų procentinei vertei saugoti plūdės įtampa = 0; // naudojamas įtampos vertei saugoti

negaliojanti sąranka ()

{lcd.pradis (16, 2); analogReference (IŠORINIS); // atskaitos įtampai naudoti AREF}

tuštumos kilpa ()

{lcd.clear (); analogamount = analogRead (analoginput); procentas = (analogamount/1024,00)*100; įtampa = analogamount*3.222; // milivoltais lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (procentas, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (įtampa, 2); vėlavimas (250); }

Aukščiau eskizo rezultatai parodyti vaizdo įraše.

5 veiksmas: vidinis AREF

Mūsų „Arduino“plokščių mikrovaldikliai taip pat gali generuoti 1,1 V vidinę etaloninę įtampą, ir mes galime ją naudoti AREF darbui. Tiesiog naudokite eilutę:

analogReference (INTERNAL);

„Arduino Mega“plokštėms naudokite:

analogReference (INTERNAL1V1);

tuštumos sąrankoje () ir esate išjungtas. Jei turite „Arduino Mega“, taip pat yra 2,56 V etaloninė įtampa, kuri įjungiama:

analogReference (INTERNAL2V56);

Galiausiai - prieš nuspręsdami dėl savo AREF kaiščio rezultatų, visada kalibruokite rodmenis pagal žinomą gerą multimetrą.

Išvada

AREF funkcija suteikia daugiau lankstumo matuojant analoginius signalus.

Šį įrašą jums pateikė pmdway.com - viskas gamintojams ir elektronikos entuziastams, nemokamas pristatymas visame pasaulyje.

Rekomenduojamas: