0

Arduino ampérmetr – měřič proudu

Ampérmetr se používá k měření průchozího proudu skrze zátěž nebo zařízení. Zde v tomto návodu o Arduino ampérmetru vysvětlíme základy měření proudu pomocí aplikace Ohmova zákona. Je to velice zajímavé, protože je to vlastně aplikace jednoduchých základů fyziky ze základní školy.

Arduino based Digital Ammeter

Předpokládáme, že všichni čtenáři dobře znají Ohmům zákon, který zjednodušeně říká „rozdíl potenciálů dvou konců vodiče je přímo úměrný množství procházejícího proudu skrze tento vodič“. Pro náš výpočet tedy využijeme základní tvar Ohmova zákona:

V = I*R

  • V je napětí připojené na vodiči ve Voltech (V)
  • I je proud, který prochází skrze vodič v Ampérech (A)
  • R je odpor vodiče v Ohmech (Ω)

Abychom byli schopni vypočítat průchozí proud skrze vodič, je nutné rovnici upravit do následujícího tvaru:

I = V / R

Pro zjištění proudu tedy potřebujeme dva údaje – napětí a odpor.

V dalším kroku budeme tedy vytvářet sériový odpor společně se zařízením. Vzhledem k tomu, že potřebujeme naměřit pokles napětí na zařízení, tak je nutné ho naměřit před a za zařízením. Díky tomu, že odpor nemá polaritu, tak máme toto měření zjednodušeno.

calculating current using ohms law

Jako na obrázku výše, potřebujeme zjistit rozdíl napětí, které vzniká na odporu R. Rozdíl napětí (V1-V2) nám dá úbytek napětí na odporu, který následně vydělíme hodnotu odporu R a získáme průchozí proud I. Nyní tedy víme, jak získat proud skrze zařízení a můžeme přejít na zapojení a realizaci.

Potřebné součástky

  • Arduino UNO (nebo jiná Arduino deska)
  • Odpor 22Ω
  • LCD displej 16×2
  • LED dioda
  • 10kΩ potenciometr
  • nepájivé propojovací pole
  • multimetr
  • propojovací vodiče

components for arduino based digital ammeter

Schéma zapojení

Schéma zapojení pro Arduino Ampérmetr je následující:

arduino based digital ammeter circuit diagram

Na schématu vidíme propojení mezi Arduinem, LCD displejem, potenciometrem, LED diodou a odporem. Arduino deska je pak zdrojem napájení pro celé zařízení.

Arduino má jak digitální, tak i analogové piny. A právě obvod pro čtení napětí je zapojen na analogové piny A0 a A1. LCD displej je pak zapojen podle tohoto návodu: http://arduinonavody.cz/zapojeni-lcd-displeje-16×2-s-arduinem/

meauring current using arduino digital ammeter

Obvod pro měření proudu

Obvod pro měření proudu se skládá z odporu a LED diody jako zátěže. Odpor je zapojen v sérii s LED diodou, takže proud teče skrze zátěž a úbytek napětí je určen velikostí odporu.

V převodníku ADC Arduina se přemění napětí na 10bit číselnou hodnotu 0 až 1023. Budeme tedy muset tuto hodnotu přepočíst na napětí. Důležitou informací je také ještě to, že Arduino ADC převodník dokáže snímat nejmenší hodnotu 4,88 mV, kterou bude zapotřebí zahrnout do výpočtu.

arduino based digital ammeter testing

Výpočty

Napětí načtené pomocí ADC převodníku v Arduinu je pohybuje v hodnotách 0-1023. Referenční napětí je pak 0-5V.

Například tedy když máme hodnotu napětí V1=710, V2=474 a odpor R=22Ω, tak rozdíl mezi napětími je 236. Pokud tuto hodnotu převedeme na reálné napětí pomocí vynásobením 0,00488, získáme úbytek napětí 1,15 V. Pokud je tedy úbytek 1,15 V, tak po podělení odporem 22Ω získáme průchozí proud 0,005 A. V tomto příkladu jsme tedy použili odpor o nízké hodnotě 22Ω jako senzor proudu.

Arduino ukázkový kód

Pro načtení napětí na obou analogových pinech jsou využity funkce analogRead(pin), které načtou digitální hodnotu vstupního napětí.

int voltage_value0 = analogRead(A0);
int voltage_value1 = analogRead(A1);

Dále si vytvoříme proměnnou pro uložení rozdílu napětí a také proměnnou typu float (desetinné číslo) pro výpočet úbytku napětí ve Voltech. Poslední výpočet pak použijeme přímo pro výpočet výsledného proudu.

int subraction_value =(voltage_value0 - voltage_value1) ;
float temp_val = (subraction_value*0.00488);
float current_value = (temp_val/22);

Celý ukázkový kód je k dispozici níže.

#include
LiquidCrystal lcd (7,8,9,10,11,12);
 
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
}
 
void loop() {
// put your main code here, to run repeatedly:
int voltage_value0 = analogRead(A0);
int voltage_value1 = analogRead(A1);
 
 int subraction_value =(voltage_value0 - voltage_value1) ;
 float temp_val = (subraction_value*0.00488);
 
 float current_value = (temp_val/22);
 Serial.print(current_value);
 lcd.setCursor(0,0);
 lcd.print("current value=");
 lcd.setCursor(0,1);
 lcd.print (current_value);
 lcd.print("A");
 delay(1000);
}

Převzato a přeloženo z:
https://circuitdigest.com/microcontroller-projects/arduino-ammeter

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Luboš

Napsat komentář

Vaše emailová adresa nebude zveřejněna.