Jak sprawdzić napięcie z Arduino

Czas czytania: 3 min.

Wartość napięcia i prądu są podstawowymi parametrami, których właściwe wartości zapewniają poprawną pracę urządzeń. W tym artykule przedstawiamy przykładowy projekt układu do pomiaru napięcia i prądu z wykorzystaniem płytki Arduino UNO R3 wraz z czujnikiem INA219.

W jakich celach można wykonywać pomiary prądu i napięcia?

Każde urządzenie elektryczne w Twoim domu, aby mogło funkcjonować, musi mieć doprowadzone źródło energii elektrycznej. Dotyczy to zarówno lodówki, czajnika, komputera, odkurzacza i innych odbiorników. W uproszczeniu rzecz ujmując, na podstawie pobieranej energii, która wynika z mocy elektrycznej pobieranej w określonym czasie, licznik energii elektrycznej dokonuje pomiarów rozliczeniowych. Te pomiary są wykonywane w sposób pośredni, ponieważ do obliczenia pobieranej mocy, a następne energii, ustrój pomiarowy licznika mierzy także napięcie zasilające oraz pobierany prąd. Aby zobrazować zasadę wykonywania pomiarów prądu i napięcia w prosty sposób, zbudujemy prosty układ, w którym odbiornikiem prądu pobieranego przez diodę LED zasilana napięciem z płytki Arduino.

Pomiar prądu i napięcia za pomocą Arduino - wymagania sprzętowe

Do wykonania tego projektu, niezbędne będzie użycie płytki Arduino UNO R3 oraz modułu czujnika INA219, który jest kompatybilny z Arduino i umożliwia pomiar napięcia i prądu elektrycznego. Komunikacja układu INA219 z płytką Arduino, jest realizowana poprzez interfejs I2C. Potrzebna będzie również dioda LED (np. w kolorze czerwonym), rezystor o rezystancji 470Ω wykonany w tolerancji 5% oraz płytka stykowa z przewodami połączeniowymi. Do zaprogramowania Arduino, będziemy potrzebowali standardowego środowiska Arduino IDE, które można pobrać za darmo ze strony internetowej producenta.

Sprawdzanie prawidłowości połączeń

Zanim przystąpimy do wykonywania jakichkolwiek pomiarów, musimy sprawdzić, czy czujnik INA219 prawidłowo komunikuje się z płytką Arduino przez magistralę I2C. Skonfigurowanie komunikacji czujnika z Arduino może być trudne i czasochłonne, ale podobnie jak w przypadku wielu innych modułów, firma Adafruit Industries opracowała dedykowaną bibliotekę, którą można pobrać z repozytorium GitHub pod poniższym adresem:

https://github.com/adafruit/Adafruit_INA219

Po pobraniu i rozpakowaniu wszystkich plików, zmień nazwę folderu na Adafruit_INA219 i umieść folder w folderze biblioteki swojego folderu Arduino (lub utwórz folder dla tej biblioteki, jeśli jeszcze go nie założyłeś). Następnie możesz przetestować następujący szkic (poniższy kod programu zawiera objaśnienia):

				
					#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219; //inicjalizacja biblioteki dla czujnika INA219

void setup() //wstepne ustawienia programu
{
 uint32_t currentFrequency; //deklaracja typu zmiennej dla czestotliwosci pradu
 Serial.begin(9600); //uruchomienie transmisji szeregowej
 Serial.println("Communication test with INA219 ..."); // test komunikacji z czujnikiem INA219
 ina219.begin();
}

void loop() //petla programu wlasciwego
{
 float napieciebocznikowe = 0; //deklaracja typu zmiennej dla napiecia mierzonego na boczniku
 napieciebocznikowe = ina219.getNapiecieBocznikowe_mV();
 Serial.print("Shunt Voltage: "); Serial.print(napieciebocznikowe); Serial.println(" mV");
 Serial.println(""); //wyswietlanie wyniku pomiaru napiecia w miliwoltach
delay(100); //nastepny cykl pomiarowy za 100ms
}
				
			

Po wgraniu powyższego programu, możemy obserwować komunikaty na monitorze portu szeregowego. W tym przypadku, dioda LED nie została włączona, dlatego odczytana wartość napięcia bocznikowego powinna wynosić 0mV.

Program kompletny

Po sprawdzeniu prawidłowości działania czujnika, możemy załadować kompletny program, który wykona pomiar prądu i pobór mocy przez diodę LED. W tym celu, należy podać napięcie na diodę LED z pinu cyfrowego “D2”, do którego dioda LED jest podłączona. Kompletny program uwzględniający te pomiary, będzie miał następującą postać;

				
					#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;

void setup()
{
 uint32_t currentFrequency;
 Serial.begin(9600);
 Serial.println("Pomiar napiecia i pradu za pomoca czujnika INA219 ...");
 ina219.begin();
 pinMode(2,OUTPUT);
}

void loop()
{
 digitalWrite(2,HIGH);
 float napieciebocznikowe = 0;
 float napiecie1 = 0;
 float prad = 0;
 float napiecieobciazenia = 0;
 float moc = 0;
 napieciebocznikowe = ina219.getNapiecieBocznikowe_mV();
 napiecie1 = ina219.getNapiecie1_V();
 prad = ina219.getPrad_mA();
 napiecieobciazenia = napiecie1 + (napieciebocznikowe / 1000);
 moc = prad * napiecieobciazenia;
 Serial.print("Napiecie1: "); Serial.print(napiecie1); Serial.println(" V");
 Serial.print("Napiecie bocznikowe: "); Serial.print(napieciebocznikowe); Serial.println(" mV");
 Serial.print("Napiecie obciazenia: "); Serial.print(napiecieobciazenia); Serial.println(" V");
 Serial.print("Prad: "); Serial.print(prad); Serial.println(" mA");
 Serial.print("Moc: "); Serial.print(moc); Serial.println(" mW");
 Serial.println("");
 delay(1000); //nastepny cykl pomiarowy za 1s
}
				
			

Typowo, pobór mocy przez diodę LED powinien wynosić ok. 10mW. Ta wartość może się jednak różnić w zależności od tego, jakiego koloru diodę LED zastosujemy w naszym projekcie, ponieważ inny prąd pobierać będzie dioda LED w kolorze czerwonym, a inna w kolorze żółtym. Wartość pobieranego prądu będzie także zależna od wartości rezystancji rezystora szeregowego. Nie należy podłączać diody LED bez rezystora – może to spowodować uszkodzenie diody LED, a nawet płytki Arduino.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.3 / 5. Liczba głosów: 9

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Grzegorz Galuba

Grzegorz Galuba

GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.

Zobacz więcej:

Masz pytanie techniczne?
Napisz komentarz lub zapytaj na zaprzyjaźnionym forum o elektronice.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.