Ampermérő arduino

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:

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.
Megosztás: