Senzor napätia a Arduino Uno

senzor-napätia-arduino

Arduino Uno, rovnako ako mnoho mikrokontrolérov, má vstavaný analógovo-digitálny prevodník (ADC), ktorý dokáže previesť analógové napätie na kolíku na digitálne číslo. Maximálne napätie analógového vstupného kolíka je však obmedzené na 5V.

Tento limit sa vám môže zdať nepohodlný, ak váš projekt vyžaduje meranie napätia presahujúceho 5V. V takýchto prípadoch by ste mohli vytvoriť delič napätia pomocou diskrétnych rezistorov.

Existuje však jednoduchší spôsob merania napätia, najmä ak je nižšie ako 25 V: použite snímač napätia. Je to vopred vyrobený obvod deliča napätia, ktorý využíva presné odpory na poskytovanie presných údajov. V tomto návode sa pozrieme na to, ako používať snímač napätia s Arduinom, aby boli vaše úlohy merania napätia jednoduchšie a efektívnejšie.

Senzor napätia je v podstate jednoduchý obvod deliča napätia zložený z dvoch rezistorov.

senzor-napätia-arduino-rezistory-arduino

V obvode sú dva odpory. Rezistor (R1) najbližšie k vstupnému napätiu má hodnotu 30 KΩ a rezistor (R2) najbližšie k zemi má hodnotu 7,5 KΩ. Pokles napätia na R2 je naše rozdelené napätie. Tento signál sa rozdelí na kolík hlavičky označený S.

Delí vstupné napätie faktorom 5. To je dôvod, prečo vám tento napäťový senzor môže pomôcť merať napätia, ktoré sú menšie ako 25 voltov s Arduino.

Čítanie snímača napätia alebo akéhokoľvek deliča napätia je veľmi jednoduché. Môžeme použiť rovnicu deliča napätia.

Rovnica deliča napätia predpokladá, že poznáte tri hodnoty vyššie uvedeného obvodu: vstupné napätie (Vin) a obidve hodnoty odporu (R1 a R2). Vzhľadom na tieto hodnoty môžeme použiť túto rovnicu na nájdenie výstupného napätia (Vout):

Rovnica-deliča-napätia

V našom prípade však budeme merať výstupné napätie (Vout) z obvodu deliča napätia pomocou Arduino ADC. Preto hodnota, ktorú nepoznáme, je Vin.

Preusporiadame vyššie uvedenú rovnicu, aby sme vyriešili vstupné napätie (Vin).

Rovnica-deliča-napätia

Táto rovnica nám hovorí, že vstupné napätie (Vin) je výstupné napätie (Vout) delené zlomkom odporu druhého odporu (R2) k celkovému odporu (R1 + R2) v obvode.

piny-snímača-napätia-arduino
  • VCC : je pripojený na kladnú svorku zdroja napätia, ktorý chcete merať. Odporúčaný rozsah napätia pre tento kolík je 0 až 25V.
  • GND : je pripojený k zápornej svorke zdroja vstupného napätia.
  • S(Vout) : je výstupný kolík signálu modulu snímača napätia. Poskytuje analógové napätie, ktoré je úmerné úrovni vstupného napätia. Zvyčajne je pripojený k jednému z analógových vstupných kolíkov na Arduine.
  • +NC : nie je s ničím spojený.
  • -GND : je spoločný uzemňovací kolík.

Na začiatok pripojte zdroj napätia, ktorý chcete merať, k vstupnej skrutkovej svorke. Potom pripojte kolík „S“ na napäťovom senzore k analógovému kolíku „A0“ na Arduine a kolík „GND“ k zemi.

Obrázok ukazuje, ako všetko prepojiť:

piny-snímača-napätia-arduino

Tu je jednoduchý náčrt, ktorý načíta analógové napätie na analógovom kolíku A0, vypočíta vstupné napätie pomocou rovnice deliča napätia a vytlačí výsledky na sériový monitor.

Nahrajte skicu do svojho Arduina a sledujte výsledky. Ak chcete overiť presnosť, zmerajte skutočné napätie pomocou digitálneho multimetra. Hodnota zobrazená na multimetri by sa mala zhodovať s hodnotou zobrazenou na sériovom monitore.ort delay

Náčrt začína definíciou niekoľkých globálnych premenných, ktoré sa budú používať v celom programe.

Prvý riadok definuje analógový vstupný kolík na Arduine, ktorý používame na čítanie napätia z obvodu deliča napätia. V tomto prípade používame kolík A0.

Ďalej sa definujú dva float, adc_voltage a in_voltage, na ukladanie hodnôt napätia na ADC a vstupe deliča napätia.

Premenné R1 a R2 ukladajú hodnoty odporu pre delič napätia. Ak na vytvorenie vlastného deliča napätia používate inú sadu odporov, budete ich musieť zmeniť.

ref_voltage je referenčné napätie pre ADC, zvyčajne 5V pre Arduino Uno.

Posledná premenná adc_value sa používa na uloženie surovej digitálnej hodnoty načítanej z ADC.

V setup() sme nastavili sériovú komunikáciu na prenosovú rýchlosť 9600.

V loop() sa funkcia analogRead() používa na čítanie napätia na kolíku A0. Vrátená hodnota je uložená v premennej adc_value.

Táto hodnota sa potom prevedie na napätie (adc_voltage) vynásobením referenčným napätím a vydelením 1024 (keďže Arduino má 10-bitový ADC, teda 2^10 = 1024 rôznych hodnôt).

Vstupné napätie do deliča napätia sa potom vypočíta pomocou vzorca pre delič napätia:

vzorec-pre-delič-napätia

Nakoniec sa vypočítané vstupné napätie vytlačí na sériový monitor so zobrazením až na 2 desatinné miesta. Potom Arduino čaká 500 milisekúnd, kým zopakuje slučku.


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Nemôžete kopírovať obsah tejto stránky