Sisällysluettelo:
- Vaihe 1: Tarkistus
- Vaihe 2: Miksi AnalogRead () palauttaa arvon välillä 0-1023?
- Vaihe 3: Mikä on AREF?
- Vaihe 4: Ulkoinen AREF
- Vaihe 5: Sisäinen AREF
Video: Arduino AREF -tappi: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tässä opetusohjelmassa tarkastelemme, kuinka voit mitata pienempiä jännitteitä suuremmalla tarkkuudella käyttämällä Arduino- tai yhteensopivan kortin analogisia tulonappeja yhdessä AREF -nastan kanssa. Teemme kuitenkin ensin tarkistuksen saadaksemme sinut vauhtiin. Lue tämä viesti kokonaan ennen kuin käytät AREF: ää ensimmäistä kertaa.
Vaihe 1: Tarkistus
Saatat muistaa, että voit käyttää Arduino analogRead () -toimintoa mittaamaan anturien sähkövirran jännitettä ja niin edelleen käyttämällä jotakin analogista tuloa. AnalogRead (): sta palautettu arvo olisi välillä nolla - 1023, jossa nolla edustaa nolla volttia ja 1023 edustaa käytössä olevan Arduino -kortin käyttöjännitettä.
Ja kun sanomme käyttöjännitteen - tämä on Arduinon käytettävissä oleva jännite virtalähdepiirin jälkeen. Jos sinulla on esimerkiksi tyypillinen Arduino Uno -kortti ja käytät sitä USB -liitännästä - tietokoneelle tai keskittimelle USB -liitännästä on varmasti saatavilla 5 V: n jännite - mutta jännite laskee hieman, kun virta kiertää virtapiiri mikrokontrolleriin - tai USB -lähde ei vain ole tyhjä.
Tämä voidaan helposti osoittaa liittämällä Arduino Uno USB: hen ja asettamalla yleismittari jännitteen mittaamiseen 5V- ja GND -nastoissa. Jotkut levyt palaavat jopa 4,8 V, jotkut korkeammiksi, mutta silti alle 5 V. Joten jos tavoittelet tarkkuutta, syötä korttisi ulkoisesta virtalähteestä DC -pistorasian tai Vin -nastan - kuten 9 V DC: n - kautta. Sitten kun se menee tehonsäätimen piirin läpi, sinulla on mukava 5 V, esimerkiksi kuva.
Tämä on tärkeää, koska todellisen 5 V: n arvo vaikuttaa kaikkien analogRead () -arvojen tarkkuuteen. Jos sinulla ei ole vaihtoehtoa, voit käyttää luonnoksessasi joitakin matematiikkaa kompensoimaan jännitteen laskun. Jos esimerkiksi jännite on 4,8 V - analogRead () -alue 0 ~ 1023 koskee 0 ~ 4,8 V eikä 0 ~ 5 V. Tämä saattaa kuulostaa triviaalilta, mutta jos käytät anturia, joka palauttaa arvon jännitteenä (esim. TMP36 -lämpötila -anturi) - laskettu arvo on väärä. Käytä siis tarkkuuden vuoksi ulkoista virtalähdettä.
Vaihe 2: Miksi AnalogRead () palauttaa arvon välillä 0-1023?
Tämä johtuu ADC: n resoluutiosta. Resoluutio (tässä artikkelissa) on aste, jossa jotain voidaan esittää numeerisesti. Mitä suurempi resoluutio, sitä tarkemmin jotakin voidaan esittää. Mittaamme resoluutiota tarkkuusbittien lukumäärän perusteella.
Esimerkiksi 1-bittinen resoluutio sallii vain kaksi (kaksi yhden teholle) arvoa-nolla ja yksi. 2-bittinen resoluutio sallii neljä (kaksi kahden tehoon) arvoa-nolla, yksi, kaksi ja kolme. Jos yrittäisimme mitata viiden voltin aluetta kahden bitin resoluutiolla ja mitattu jännite oli neljä volttia, ADC palauttaisi numeerisen arvon 3-kun neljä volttia on välillä 3,75-5 V. Tämä on helpompi kuvitella kuvan kanssa.
Joten esimerkissämme ADC, jossa on 2-bittinen resoluutio, se voi edustaa vain jännitettä neljällä mahdollisella tuloksella. Jos tulojännite laskee välillä 0 - 1,25, ADC palauttaa numeerisen 0; jos jännite laskee välille 1,25 - 2,5, ADC palauttaa numeerisen arvon 1. Ja niin edelleen. Arduinon ADC-alueella 0–1023-meillä on 1024 mahdollista arvoa-tai 2 teholla 10. Joten Arduinossamme on ADC 10-bittisellä resoluutiolla.
Vaihe 3: Mikä on AREF?
Pitkän tarinan lyhentämiseksi, kun Arduino ottaa analogisen lukeman, se vertaa käytettävän analogisen nastan mitattua jännitettä vertailujännitteeseen. Normaalissa analogisessa lukukäytössä vertailujännite on levyn käyttöjännite.
Suosituimpien Arduino -levyjen, kuten Uno-, Mega-, Duemilanove- ja Leonardo/Yún -levyt, käyttöjännite on 5 V. Jos sinulla on Arduino Due -kortti, käyttöjännite on 3,3 V. Jos sinulla on jotain muuta - tarkista Arduino -tuotesivu tai kysy levyn toimittajalta.
Joten jos vertailujännite on 5 V, jokainen analogRead (): n palauttama yksikkö on arvoltaan 0,00488 V. (Tämä lasketaan jakamalla 1024 5 V: ksi). Mitä jos haluamme mitata jännitteitä välillä 0 ja 2 tai 0 ja 4.6? Mistä ADC tietäisi, mikä on 100% jännitealueestamme?
Ja siinä piilee AREF -nastan syy. AREF tarkoittaa analogista viittausta. Sen avulla voimme syöttää Arduinolle vertailujännitteen ulkoisesta virtalähteestä. Jos esimerkiksi haluamme mitata jännitteitä enintään 3,3 V: n alueella, syöttäisimme AREF -nastaan mukavan tasaisen 3,3 V: n - ehkä jännitesäätimestä IC.
Tällöin ADC: n jokainen vaihe edustaa noin 3,22 millivolttia (jaa 1024 osaksi 3.3). Huomaa, että alin vertailujännite, joka sinulla voi olla, on 1,1 V. AREF -muodossa on kaksi muotoa - sisäinen ja ulkoinen, joten tarkista ne.
Vaihe 4: Ulkoinen AREF
Ulkoinen AREF on paikka, jossa syötät ulkoisen vertailujännitteen Arduino -kortille. Tämä voi tulla säännellystä virtalähteestä, tai jos tarvitset 3,3 V: n, voit saada sen Arduinon 3,3 V: n liittimestä. Jos käytät ulkoista virtalähdettä, muista kytkeä GND Arduinon GND -nastaan. Tai jos käytät Ardunon 3,3 V: n lähdettä - suorita hyppyjohdin 3,3 V: n liittimestä AREF -nastaan.
Voit aktivoida ulkoisen AREF -toiminnon käyttämällä seuraavia asetuksia tyhjäasetuksissa ():
analogReference (ULKOINEN); // käytä vertailujännitettä AREF
Tämä asettaa vertailujännitteeksi sen, mitä olet liittänyt AREF -nastaan - jonka jännite on tietysti 1,1 V: n ja levyn käyttöjännitteen välillä. ennen analogRead (): n käyttöä. Tämä estää sinua oikosulkemasta aktiivista sisäistä referenssijännitettä ja AREF -nastaa, mikä voi vahingoittaa piirilevyn mikrokontrolleria. Tarvittaessa sovelluksellesi voit palata AREF -levyn käyttöjännitteelle (eli - takaisin normaaliksi) seuraavasti:
analogReference (OLETUS);
Nyt esittelemään ulkoista AREF: ää työssä. Käyttämällä 3.3V AREF -laitetta seuraava luonnos mittaa jännitteen A0: sta ja näyttää prosentteina AREF -kokonaismäärästä ja lasketusta jännitteestä:
#include "LiquidCrystal.h"
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
int analogitulo = 0; // analoginen nastamme
int analogamount = 0; // tallentaa saapuvan arvon kelluva prosenttiosuus = 0; // käytetään prosenttiarvon tallentamiseen kelluva jännite = 0; // käytetään jännitearvon tallentamiseen
mitätön asennus ()
{lcd. alku (16, 2); analogReference (ULKOINEN); // käytä AREF -vertailujännitettä}
tyhjä silmukka ()
{lcd.clear (); analogamount = analogRead (analoginen tulo); prosenttiosuus = (analogamount/1024,00)*100; jännite = analoginen määrä*3,222; // millivoltteina lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (prosenttiosuus, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (jännite, 2); viive (250); }
Yllä olevan luonnoksen tulokset näkyvät videossa.
Vaihe 5: Sisäinen AREF
Arduino -korttiemme mikrokontrollerit voivat myös tuottaa 1,1 V: n sisäisen vertailujännitteen, ja voimme käyttää tätä AREF -työhön. Käytä vain riviä:
analogReference (INTERNAL);
Käytä Arduino Mega -levyjä:
analogReference (INTERNAL1V1);
tyhjässä asennuksessa () ja olet poissa. Jos sinulla on Arduino Mega, saatavilla on myös 2,56 V: n vertailujännite, joka aktivoidaan:
analogReference (INTERNAL2V56);
Lopuksi - ennen kuin laskeudut AREF -nastasi tuloksiin, kalibroi lukemat aina tunnetun hyvän yleismittarin mukaan.
Johtopäätös
AREF -toiminto antaa sinulle enemmän joustavuutta analogisten signaalien mittaamisessa.
Tämän viestin toi sinulle pmdway.com - kaikki valmistajille ja elektroniikan harrastajille, ilmainen toimitus maailmanlaajuisesti.
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa