Arduino - měření malých proudů
Moderátor: Moderátoři
Arduino - měření malých proudů
Ahoj, potřeboval bych měřit spotřebu jedné věci napájené z baterie. Napadlo mě udělat mA měřák z arduina, jeho 10 bit ADC, a odporu. Akorát takle by to mělo rozlišení 4,88 mA. Šlo by např. přidáním tranzistoru zesílit napětí změřené na shunt rezistoru, aby to mělo rozlišení aspoň 1 mA? Akorát nevím jak to správně zapojit, aby to moc neovlivňovalo měření a jestli nebude potřeba spíš celý OZ, a tam nějak nastavovat zpětnou vazbu apod..
Jako shunt rezistor bych použil 1,2 Ohm, a měřený proud by mohl být asi mezi 0,1mA až 100mA.
Díky za případné rady
Jako shunt rezistor bych použil 1,2 Ohm, a měřený proud by mohl být asi mezi 0,1mA až 100mA.
Díky za případné rady
INA219
Kód: Vybrat vše
https://navody.arduino-shop.cz/navody-k-produktum/proudovy-snimac-ina219.html
Naposledy upravil(a) passion dne 12 kvě 2020, 13:29, celkem upraveno 1 x.
INA219 zní dobře, děkuju.
Ale stejně, než příjde, nedalo by se to zatím sestavit z věcí které mám doma?
- ESP32 s 12 bitovým ADC
- TL082 OZ
- nějaké rezistory
- nějaké kondenzátory
- (arduino nano, ale to asi nepožiju, má málo paměti pro ukládání a menší rozlišení)
Četl jsem, že ADC v ESP32 nerozezná hodnoty od 0 - 0.1V a pak 3.2 - 3.3V. Mně by se hodlo, aby právě ty malé hodnoty napětí rozpoznal. Nešlo by tedy ten OZ zapojit jako sumační zesilovač a posunout hladinu měřeného napětí ze shunt rezistoru např. o 0.1V?
Něco jsem zkusil nakreslit, ale nevím jestli tam nemám nesmysly, a jestli OZ nebude vadit, když bude bez záporného napájecího napětí?
Ale stejně, než příjde, nedalo by se to zatím sestavit z věcí které mám doma?
- ESP32 s 12 bitovým ADC
- TL082 OZ
- nějaké rezistory
- nějaké kondenzátory
- (arduino nano, ale to asi nepožiju, má málo paměti pro ukládání a menší rozlišení)
Četl jsem, že ADC v ESP32 nerozezná hodnoty od 0 - 0.1V a pak 3.2 - 3.3V. Mně by se hodlo, aby právě ty malé hodnoty napětí rozpoznal. Nešlo by tedy ten OZ zapojit jako sumační zesilovač a posunout hladinu měřeného napětí ze shunt rezistoru např. o 0.1V?
Něco jsem zkusil nakreslit, ale nevím jestli tam nemám nesmysly, a jestli OZ nebude vadit, když bude bez záporného napájecího napětí?
- Přílohy
-
- IMG_20200515_1513162.jpg
- (223.59 KiB) Staženo 111 x
Nějak se mi to s tím OZ nedaří udělat, tak OZ zatím asi nechám být.
Neměl by někdo poblíž Prahy / Slaného na půjčení tu INA219 na pár dní?
Nebo ještě zkusím projít google, jak by to šlo měřit tím komparátorem, a jestli by to zvládalo měřit pod 100 mV s rozlišením po 1 mV a s frekvencí cca 10 Hz. Rád bych zachytil i proudové špičky při vysílání NB-IoT modulu, tak odhadem bych řekl že 10 Hz je tak akorát, nebo není?
Ale INA219 by byla asi stejně pohodlnější, kdyby někdo měl a mohl půjčit =)
Neměl by někdo poblíž Prahy / Slaného na půjčení tu INA219 na pár dní?
Nebo ještě zkusím projít google, jak by to šlo měřit tím komparátorem, a jestli by to zvládalo měřit pod 100 mV s rozlišením po 1 mV a s frekvencí cca 10 Hz. Rád bych zachytil i proudové špičky při vysílání NB-IoT modulu, tak odhadem bych řekl že 10 Hz je tak akorát, nebo není?
Ale INA219 by byla asi stejně pohodlnější, kdyby někdo měl a mohl půjčit =)
předesílám, že jsem to nezkoušel...
v Arduinu by mělo jít nastavit referenční napětí
analogReference(INTERNAL) t.j. na 1,1V
a tak by analogový vstup měl 0 - 1023 na rozsahu 0 - 1V
https://www.arduino.cc/reference/en/lan ... reference/
chtělo by to konzultovat s někým, kdo s tím má nějakou zkušenost
v Arduinu by mělo jít nastavit referenční napětí
analogReference(INTERNAL) t.j. na 1,1V
a tak by analogový vstup měl 0 - 1023 na rozsahu 0 - 1V
https://www.arduino.cc/reference/en/lan ... reference/
chtělo by to konzultovat s někým, kdo s tím má nějakou zkušenost
........Nedůvěřuji velbloudům a obecně nikomu, kdo dokáže týden nepít........
tak skusenost z dnesneho rana (dost ma to zaujimalo , ja meriam od 10mA hore cez 16bit AD prevodnik, tak reku skusim co dokaze samote arduino).
meral som cez internu 1V1 referenciu aj externu 0V586.
merak som mal priamo na pinoch arduina aby som zamedzil chybam merania , vysledok arduina som si posielal na seriovy port. Prekvapila ma presnost 1V1 referencie (odporucaju si ju premerat a podla nameranej hodnoty korigovat vysledok). Tu vysledky neviem preco je to posunute raz na jednu druhykrat na druhu stranu , nechcelo sa mi stym dalej natahovat / korigovat.
kod
meral som cez internu 1V1 referenciu aj externu 0V586.
merak som mal priamo na pinoch arduina aby som zamedzil chybam merania , vysledok arduina som si posielal na seriovy port. Prekvapila ma presnost 1V1 referencie (odporucaju si ju premerat a podla nameranej hodnoty korigovat vysledok). Tu vysledky neviem preco je to posunute raz na jednu druhykrat na druhu stranu , nechcelo sa mi stym dalej natahovat / korigovat.
kod
Kód: Vybrat vše
float napetie;
void setup() {
analogReference(EXTERNAL);
Serial.begin(9600);
}
void loop() {
napetie = (0.586/1.024)*analogRead(A0);
Serial.println(napetie);
delay(200);
}
tak z toho som zatial jelen
nedali mi tie 3mV a tak som skusil 12bit DA prevodnik , ako referenciu pren mam referenciu arduina 1V1. Ked poslem na prevodnik hodnotu 200 , co by malo byt 53,7mV , posle v reale 56,1mV (merane dvoma merakmi a 16bit AD pevodnikom s vlastnou referenciou) , ale ak tuto hodnotu precitam opet arduino analogin , ta to prepocita na 53,7mV
moze byt referencia pocas citania nejaka zmenena? asi to hodim este na skop, zajtra....
necham si to asi na premyslenie![Very Happy :D](./images/smilies/icon_biggrin.gif)
nedali mi tie 3mV a tak som skusil 12bit DA prevodnik , ako referenciu pren mam referenciu arduina 1V1. Ked poslem na prevodnik hodnotu 200 , co by malo byt 53,7mV , posle v reale 56,1mV (merane dvoma merakmi a 16bit AD pevodnikom s vlastnou referenciou) , ale ak tuto hodnotu precitam opet arduino analogin , ta to prepocita na 53,7mV
moze byt referencia pocas citania nejaka zmenena? asi to hodim este na skop, zajtra....
necham si to asi na premyslenie
![Very Happy :D](./images/smilies/icon_biggrin.gif)
lesana: mam doma niekolko dosiek , dve orginal, niekolko klonov, to 1,1V som skusal zatial na dvoch , na jednom to nebolo presne 1,1V (nepametam presne kolko to bolo) na tom dnes to bolo 1,10V (presnejsie to mozem pozriet tym AD prevodnikov), aj ked som o tom hladal arduino clanky , vzdy tam davaju ze si to treba pomerat
dobrman: pravdu povediac neviem, hodnot je predsa 1024 aj ked prva je nula (neviem ci dobre pocitam ale to ci pouzijem 1023 alebo 1024 spravi chybu 0,001mV)
co ma vsak napadlo, urcite som nepouzil pridavny kondenzator medzi GND a pin referencie , zajtra ho tam pridam a skusim to znovu.
Ďakujem za postrehy![Smile :)](./images/smilies/icon_smile.gif)
dobrman: pravdu povediac neviem, hodnot je predsa 1024 aj ked prva je nula (neviem ci dobre pocitam ale to ci pouzijem 1023 alebo 1024 spravi chybu 0,001mV)
co ma vsak napadlo, urcite som nepouzil pridavny kondenzator medzi GND a pin referencie , zajtra ho tam pridam a skusim to znovu.
Ďakujem za postrehy
![Smile :)](./images/smilies/icon_smile.gif)