Kazalo:
- 1. korak: Revizija
- 2. korak: Zakaj AnalogRead () vrne vrednost med 0 in 1023?
- 3. korak: Kaj je torej AREF?
- 4. korak: Zunanji AREF
- 5. korak: Notranji AREF
Video: Arduino AREF Pin: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tej vadnici bomo pogledali, kako lahko z večjo natančnostjo izmerite manjše napetosti z uporabo analognih vhodnih zatičev na vašem Arduinu ali združljivi plošči v povezavi z zatičem AREF. Najprej pa bomo naredili nekaj popravkov, da vas pospešimo. Pred prvim sodelovanjem z AREF v celoti preberite to objavo.
1. korak: Revizija
Morda se spomnite, da lahko uporabite funkcijo Arduino analogRead () za merjenje napetosti električnega toka iz senzorjev in tako naprej z uporabo enega od analognih vhodnih zatičev. Vrednost, vrnjena iz analogRead (), bi bila med nič in 1023, pri čemer nič predstavlja nič voltov in 1023 predstavlja delovno napetost uporabljene plošče Arduino.
In ko rečemo delovna napetost - to je napetost, ki je na voljo Arduinu po vezju napajanja. Na primer, če imate običajno ploščo Arduino Uno in jo poganjate iz vtičnice USB - seveda je na plošči na voljo 5 V iz vtičnice USB na vašem računalniku ali zvezdišču - vendar se napetost nekoliko zmanjša, ko tok teče okoli vezja do mikrokrmilnika - ali pa USB -viru preprosto ni do nič.
To lahko enostavno dokažete tako, da priključite Arduino Uno na USB in postavite multimeter za merjenje napetosti na zatičih 5V in GND. Nekatere plošče se bodo vrnile že pri 4,8 V, nekatere višje, vendar še vedno pod 5 V. Če torej iščete natančnost, napajajte ploščo iz zunanjega napajalnika prek enosmerne vtičnice ali vtiča Vin - na primer 9 V DC. Potem, ko greste skozi vezje regulatorja moči, boste imeli lepih 5V, na primer sliko.
To je pomembno, saj na natančnost vseh analogRead () vrednosti vpliva, če nimate pravih 5 V. Če nimate možnosti, lahko uporabite nekaj matematike v skici, da kompenzirate padec napetosti. Na primer, če je vaša napetost 4,8 V - se bo območje analogRead () 0 ~ 1023 nanašalo na 0 ~ 4,8 V in ne na 0 ~ 5 V. To se lahko sliši trivialno, če pa uporabljate senzor, ki vrne vrednost kot napetost (npr. Temperaturni senzor TMP36) - bo izračunana vrednost napačna. Zato zaradi natančnosti uporabite zunanji napajalnik.
2. korak: Zakaj AnalogRead () vrne vrednost med 0 in 1023?
To je posledica resolucije ADC. Ločljivost (za ta članek) je stopnja, do katere je nekaj lahko predstavljeno številčno. Višja kot je ločljivost, večja je natančnost, s katero je mogoče nekaj predstaviti. Ločljivost merimo v smislu števila bitov ločljivosti.
Na primer, 1-bitna ločljivost bi dovoljevala le dve (dve na stopnjo ene) vrednosti-nič in eno. 2-bitna ločljivost bi omogočila štiri (dve po moči dveh) vrednosti-nič, eno, dve in tri. Če bi poskušali izmeriti pet voltno območje z dvobitno ločljivostjo in bi bila izmerjena napetost štiri volte, bi naš ADC vrnil številčno vrednost 3-saj štirje volti padejo med 3,75 in 5 V. To si je lažje predstavljati s sliko.
Torej z našim primerom ADC z 2-bitno ločljivostjo lahko predstavlja le napetost s štirimi možnimi posledičnimi vrednostmi. Če vhodna napetost pade med 0 in 1,25, ADC vrne številčno 0; če napetost pade med 1,25 in 2,5, ADC vrne številčno vrednost 1. In tako naprej. Z razponom ADC našega Arduina 0 ~ 1023-imamo 1024 možnih vrednosti-ali 2 na moč 10. Torej imajo naši Arduino ADC z 10-bitno ločljivostjo.
3. korak: Kaj je torej AREF?
Če na kratko povem, ko vaš Arduino opravi analogno odčitavanje, primerja napetost, izmerjeno na analognem zatiču, s tisto, kar je znano kot referenčna napetost. Pri normalni uporabi analognega branja je referenčna napetost delovna napetost plošče.
Za bolj priljubljene plošče Arduino, kot so plošče Uno, Mega, Duemilanove in Leonardo/Yún, delovna napetost 5V. Če imate ploščo Arduino Due, je delovna napetost 3,3 V. Če imate kaj drugega - preverite stran izdelka Arduino ali vprašajte svojega dobavitelja plošč.
Torej, če imate referenčno napetost 5 V, je vsaka enota, ki jo vrne analogRead (), 0,00488 V. (To se izračuna tako, da 1024 razdelite na 5 V). Kaj pa, če želimo meriti napetosti med 0 in 2 ali 0 in 4,6? Kako bi ADC vedel, kaj je 100% našega napetostnega območja?
In v tem je razlog za pin AREF. AREF pomeni analogno referenco. Omogoča nam, da Arduino napajamo z referenčno napetostjo iz zunanjega napajalnika. Na primer, če želimo izmeriti napetosti z največjim razponom 3,3 V, bi v napajalni pin AREF vnesli lepo gladkih 3,3 V - morda iz IC napetostnega regulatorja.
Potem bi vsak korak ADC predstavljal približno 3,22 milivolta (razdelite 1024 na 3,3). Upoštevajte, da je najnižja referenčna napetost 1,1V. Obstajata dve obliki AREF - notranja in zunanja, zato ju preverimo.
4. korak: Zunanji AREF
Zunanji AREF napaja zunanjo referenčno napetost na plošči Arduino. To lahko prihaja iz reguliranega napajanja, če pa potrebujete 3,3 V, ga lahko dobite iz 3,3 -palčnega vtiča Arduino. Če uporabljate zunanji napajalnik, ne pozabite priključiti GND na nožico GND Arduino. Ali če uporabljate Ardunov 3.3V vir - samo zaženite mostiček od 3.3V pin do pin AREF.
Če želite aktivirati zunanji AREF, uporabite naslednje v void setup ():
analogReference (ZUNANJI); // za referenčno napetost uporabite AREF
S tem nastavite referenčno napetost na vse, kar ste priključili na pin AREF - ta bo seveda imel napetost med 1,1 V in delovno napetostjo plošče. Zelo pomembno opozorilo - pri uporabi zunanje referenčne napetosti morate analogno referenco nastaviti na ZUNANJO. pred uporabo analogRead (). Tako boste preprečili kratki stik aktivne notranje referenčne napetosti in zatiča AREF, ki lahko poškoduje mikrokrmilnik na plošči. Če je potrebno za vašo aplikacijo, se lahko vrnete na delovno napetost plošče za AREF (to je - nazaj v normalno stanje) z naslednjim:
analogReference (DEFAULT);
Zdaj za prikaz zunanjega AREF pri delu. Z uporabo 3.3V AREF naslednja skica meri napetost iz A0 in prikazuje odstotek skupnega AREF in izračunano napetost:
#include "LiquidCrystal.h"
LCD tekoči kristal (8, 9, 4, 5, 6, 7);
int analogni vhod = 0; // naš analogni pin
int analogamount = 0; // shrani vhodno vrednost plavajoči odstotek = 0; // uporabljamo za shranjevanje naše odstotne vrednosti plavajoče napetosti = 0; // se uporablja za shranjevanje vrednosti napetosti
void setup ()
{lcd.begin (16, 2); analogReference (ZUNANJI); // za referenčno napetost uporabite AREF}
void loop ()
{lcd.clear (); analogamount = analogRead (analogni vhod); odstotek = (analogni znesek/1024,00)*100; napetost = analogni nosilec*3,222; // v milivoltih lcd.setCursor (0, 0); lcd.print ("% od AREF:"); lcd.print (odstotek, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (napetost, 2); zamuda (250); }
Rezultati zgornje skice so prikazani v videoposnetku.
5. korak: Notranji AREF
Mikrokrmilniki na naših ploščah Arduino lahko ustvarijo tudi notranjo referenčno napetost 1,1 V, kar lahko uporabimo za delo AREF. Preprosto uporabite vrstico:
analogna referenca (NOTRANJA);
Za plošče Arduino Mega uporabite:
analogReference (INTERNAL1V1);
in void setup () in ste izklopljeni. Če imate Arduino Mega, je na voljo tudi referenčna napetost 2,56 V, ki se aktivira z:
analogna referenca (INTERNAL2V56);
Nazadnje - preden se odločite za rezultate iz zatiča AREF, vedno umerite odčitke glede na znani dober multimeter.
Zaključek
Funkcija AREF vam daje večjo prilagodljivost pri merjenju analognih signalov.
To objavo vam je predstavil pmdway.com - vse za ustvarjalce in navdušence nad elektroniko z brezplačno dostavo po vsem svetu.
Priporočena:
Priključek ICSP za Arduino Nano brez spajkane glave zatiča, vendar Pogo Pin: 7 korakov
Priključek ICSP za Arduino Nano brez spajkane glave zatiča, vendar Pogo Pin: Naredite priključek ICSP za Arduino Nano brez spajkane glave zatiča na plošči, vendar Pogo Pin. -BP75-E2 (1,3 mm stožčasta glava) Vzmetna preskusna sonda Pogo Pin
Elektronski varnostni sistem z RTC in uporabniško določeno pin kodo: 7 korakov
Elektronski varnostni sistem z RTC in uporabniško definirano PIN kodo: Pozdravljeni, fantje! To je projekt, ki sem ga naredil s pomočjo mikrokrmilnika pic, njegovega elektronskega varnostnega sistema za kodo PIN z uro v realnem času in funkcijami, ki jih definirajo uporabniki. Ta stran vsebuje vse podrobnosti, ki jih lahko naredite sami
ETextile multimeter pin sonda: 10 korakov (s slikami)
ETextile Multimeter Pin Sonda: Pin Sonda, kot je objavljeno v zbirki eTextile Swatchbook 2017 Pin Sonda je preskusna žica za povezavo med multimetrom in prevodno tkanino ali navojem. Sonda je sestavljena iz zatiča, ki omogoča začasen, a trden stik s tekstilnimi materiali, ne da bi pri tem poškodoval
Ukazi AT za modul Bluetooth (HC-05 W/ EN Pin in gumb) z uporabo plošče Arduino!: 5 korakov
Ukazi AT za modul Bluetooth (HC-05 W/ EN Pin in gumb) Uporaba Arduino Board!: Avtor Jay Amiel AjocGensan PHTa navodila vam bodo pomagala začeti z uporabo vašega modula bluetooth HC05. Do konca tega navodila se boste naučili o pošiljanju ukazov AT v modul za njegovo konfiguracijo/spreminjanje (ime, geslo, baud ra
ISP 6 -pin na 8 -pin vtičnica: 4 koraki
ISP 6 -pin na 8 -pin vtičnica: Razlog, zakaj sem v glavnem zgradil ta projekt, je bil programiranje ATTiny45, ki ima 8 -polno povezavo, medtem ko ima moj USBtinyISP (od Ladyade) samo 10 -pinsko in 6 -pinsko povezavo. Po približno 3-4 tednih brskanja po internetu nisem našel ničesar