Feszültségmérő Arduino

Az előző bejegyzésben közölt egyszerű kijelzőt felhasználva 2 ellenállás hozzáadásával készítünk egy feszültségmérőt, (voltmérőt). Jól jöhet saját készítésű labortápegységek készítése esetén. Mivel az Arduino Uno tartalmaz 6 db analóg – digitál átalakító bemenetet, ezért akár 6 bemenetünk is lehetne. Most csak egyet mutatok meg, de apró módosítás kell csak a többi használatához.

Le kell szegeznem, hogy ez egyenfeszültség mérésére alkalmas. Nem jó váltóáram mérésére. Méréshatár főleg R1 ellenállástól függ, neked kell kiszámolnod. Jelenlegi R1=100K, R2=10K osztóval maximum 50V-ig mérhetsz biztonságosan.

Konnektorba dugni tilos, életveszélyes az váltóáram és 230-240V.

Áramkör:

R1 és R2 ellenállások kiszámításához a terheletlen feszültségosztó képletét használjuk. A pontos mérőműszer készítéséhez ellenállások értékét mérjük meg, ne a rá jelölt értékekkel számoljunk.

  • Uki = 5V – a referencia feszültségünk ami megegyezik a mikrokontroller tápfeszültségével mivel belső referenciát használunk.
  • Ube = mérni kívánt feszültség maximuma
  • R2 = 10Kohm
  • R1 = kiszámolható a lenti képlettel

Szkript:

#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 voltbe = 0.00;
float R1 = 97500.0; //  R1 ellenállás értéke ohm-ban
float R2 = 9700.0; // R2 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 
    voltbe = voltki / (R2/(R1+R2)); //kiszámolás (terheletlen feszültségosztó képlete átrendezve)
  
    voltbex=voltbex+voltbe; 
    delay(5);
  }
  voltbex=voltbex/40;// átlag számítás
Serial.println(voltbex);//mért érték kiíratása soros portra
    voltbex = voltbex * 100;//egész számmá alakítás
    display.showNumberDecEx(voltbex, 0b01000000, false, 4, 0);  //kiíratás kijelzőre  : használjuk tizedesnek
    voltbex=0;
 
    
    delay(200);
}

Nagy pontosság eléréséhez, több mintavétel és az R1,R2 ellenállás pontos kimérése szükséges. Itt a hogyanra helyeztem a hangsúlyt. Jó méricskélést mindenkinek! Lentebb egy videó a működő áramkörrel.

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

Ez a weboldal sütiket használ. Az Uniós törvények értelmében kérem, engedélyezze a sütik használatát, vagy zárja be az oldalt. További információ

Az Uniós törvények értelmében fel kell hívnunk a figyelmét arra, hogy ez a weboldal ún. "cookie"-kat vagy "sütiket" használ. A sütik kicsik, teljesen veszélytelen fájlok, amelyeket a weboldal azért helyez el az Ön számítógépén, hogy minél egyszerűbbé tegye Ön számára a böngészést. A sütiket letilthatja a böngészője beállításaiban. Amennyiben ezt nem teszi meg, illetve ha az "Elfogadom" feliratú gombra kattint, azzal elfogadja a sütik használatát.

Bezárás