John Erringtonin kokeiluja Arduinolla
On 28 marraskuun, 2021 by adminTarkka jännitteen mittaus Arduino-piirilevyllä.
Arduino-mikrokontrollerivalikoimassa on analogiset sisääntulot, joita voidaan käyttää jännitteen mittaamiseen. Voimme käyttää tätä jännitemittarin rakentamiseen.
AnalogRead()-funktio lukee jännitteen ja muuntaa sen luvuksi väliltä 0-1023.
Arduino tutorial (1) http://arduino.cc/en/Tutorial/ReadAnalogVoltage on tämä esimerkki:
Tämä on VÄÄRIN! Paremman tuloksen saat käyttämällä (sensorValue + 0.5) * 5.0 / 1024.0 – katso selitys täältä
Tämä johtaa meidät uskomaan, että lukema 0 vastaa 0.000 voltin tulojännitettä; ja 1023 vastaa 5.000 voltin tulojännitettä. Tämä ei ole täysin totta. Katsotaanpa tietolomaketta ja katsotaan, mitä se kertoo meille.
Arduinossa käytetyllä ATMEGA-sirulla on analogiset tulot, joita voidaan käyttää jännitteen tarkkaan mittaamiseen
Arduino-mikrokontrollerissa on peräkkäisen approksimaation tyyppinen analogi-digitaalimuunnin (ADC), jolla on seuraava erittely. Suluissa olevat viittaukset viittaavat siis (2: 26.1) AtMega 2560 -tietolehden kohtiin.
(2: 26.1): ATMega328:lla ja 32U4:llä on samanlaiset arvot.
Nämä spesifikaatiot kertovat meille, että Arduino pystyy mittaamaan jännitteitä tarkkuudella
± 2 LSB:n tarkkuudella – eli maksimivirhe on 2 bittiä (4 desimaalia) 10:ssä bitissä (1024 desimaalia).
Muuntimen pahimmassa tapauksessa muunnintarkkuus on siis 4/12424 tai 1 osa 256:sta eli 0,25 %.
Mittaustarkkuuden raja riippuu kuitenkin käytetystä jänniteviitteestä.
Arduinolla on omat jännitereferenssinsä – mutta ne eivät ole kovin tarkkoja
Piirillä on – tyypistä riippuen – JOKAINEN seuraavista referenssijännitteistä (6)
DEFAULT: oletusarvoinen analoginen referenssi 5 volttia (5V:n Arduino-levyillä) tai 3.3 volttia (3,3 V:n Arduino-piirilevyillä)
INTERNAL: sisäänrakennettu referenssi, joka vastaa 1,1 volttia ATmega168- tai ATmega328-piirilevyillä ja 2,56 volttia ATmega8- ja 32U4-piirilevyillä.
Tämä tuotetaan sisäisesti vahvistamalla 1,1 V:n referenssiä. 2,56V on vain ”tyypillinen” arvo.
EXTERNAL: AREF-pinniin syötetty jännite (vain 0-5V). (MicroPro 32U4:ssä, NodeMCU:ssa ja ESP32:ssa ei ole pinniä ulkoiselle referenssille – katso lisätietoja alla.)
Jännitteen mittaamiseen käytettävän referenssin tarkkuus – mitä tahansa edellä mainittua referenssiä käyttäen – on parhaimmillaankin vain 5,25 – 5,0/5,0 * 100 = 5 % – paljon huonompi kuin ADC:n antama 0,25 %. On selvää, että jos haluamme mitata jännitteitä Arduinon tarjoamalla tarkkuudella, piirin sisäiset referenssit eivät ole riittävän hyviä. Alla oleva kaavio osoittaa nämä virheet verrattuna alla kuvattuun 4,096V:n referenssiin.
Vastaa