Mint ígértem az előző bejegyzésben, közzéteszem, hogy lehet ampermérőt készíteni Arduinoval. Ahogyan a voltmérő esetében is , a hogyanról lesz szó, nem kész megoldással szolgálok.
Az áramkör végtelenül egyszerű, egyetlen sönt ellenállásra (R1=15 ohm) lesz szükségünk, egy Arduino Unora és az előző cikkben is használt TM1637 kijelzőre. Jelen estben nálam ezek fiókból előkotort alkatrészek lesznek, csak a mikéntjét fogom demonstrálni.
Mivel az Arduino analóg-digitál átalakítója (0-8 láb) feszültséget tud mérni, ezért Ohm törvénye lesz a barátunk. Tehát a fogyasztó által felvett áramot ezzel tudjuk kiszámolni. I=U/R ahol I- a felvett áram, U – a mért feszültség az A/D átalakító által (rajzon U2), R – a sönt ellenállásunk (rajzon R1=15 ohm)
Az ellenállás esetében minél nagyobb teljesítményűt és kis értékűt érdemes választani, főleg ha nagy áramokat szeretnénk mérni. (melegedés) Ha magasabb feszültségű áramkörön átfolyó áramot mérünk akkor ahogyan a voltmérő esetében egy feszültségosztót kell az A/D átalakító elé helyezzünk úgy számolva hogy a legmagasabb osztott feszültség 5V legyen. (ennyit bír ki az Arduino bemenete) Tehát U2 max 5V lehet, különben füst lesz. 😀
Ebben az esetben milliamperekről lesz szó, a kijelzőn is milliamperben fog megjelenni az eredmény.
Arduino programja:
#include <TM1637Display.h>
const int CLK = 2; //Kjelző CLK lába
const int DIO = 3; //Kijelző DIO lába
TM1637Display display(CLK, DIO); //Kijelző inicializálás.
int be = A0; //0 analog bemenet
int dc = 0;
float voltbex;
float voltki = 0.00;
float aram = 0.00;
float R1 = 15; // R1 ellenállás értéke ohm-ban
void setup() {
// put your setup code here, to run once
Serial.begin(9600);
pinMode(be, INPUT);
display.setBrightness(0x0a); //kijelző fényerő max
}
void loop() {
// put your main code here, to run repeatedly:
for(int m=0;m<=40;m++){ //40 mintavétel
dc = analogRead(be); //ad átalakító leolvasása
voltki = (dc * 5.0) / 1024.0; // 5.0 referencia feszültség
voltbex=voltbex+voltki;
delay(5);
}
voltbex=voltbex/40;// átlag számítás
aram=voltbex/R1;
aram = aram * 1000;//mA-é alakítás
Serial.println(aram);//mért érték kiíratása soros portra
display.showNumberDec(aram); //kiíratás kijelzőre
voltbex=0;
delay(200);
}
Videó a mérésről: