Zasilacz buforowy z pomiarem napięcia,prądu i mocy

Do zasilania kilku urządzeń w moim domu potrzebuję zasilacza 12V. Moich zasobach miałem jeszcze fabryczny zasilacz buforowy MeanWell. Zasilacz jest, ale dobrze było by jeszcze podglądać parametry pracy zasilania.

Z wykorzystaniem platformy arduino stworzyłem układ do pomiaru napięcia, prądu i pobieranej mocy. W przyszłości można jeszcze pomyśleć o dopisaniu powiadamiania o zaniku zasilania lub alarmu niskiego napięcia akumulatora, czy współpracy z komputerem, ale to w przyszłości.

Wykorzystałem płytkę arduino nano i wyświetlacz LCD 16×2 + I2C interface.

Pomiar napięcia jest prosty, wystarczy przez dzielnik napięcia podłączyć wejście analogowe arduino do wyjścia zasilacza.  Z pomiarem prądy jest już inaczej. Można zastosować gotowy moduł pomiarowy lub mierzyć spadek napięcia na rezystorze mocy.

Wersja z pomiarem spadku napięcia.

 

 

 

 

 

 

 

 

Rezystory R1,R4 oraz R2iR3 stanowią dzielniki napięcia. Zakres napięć wejściowych przetwornika ADC w arduino wynosi 0 do 5V.  Nie możemy podać napięcia wyższego niż Umax wejść, dlatego niezbędny jest jakiś układ obniżający napięcie mierzone, najprostszym jest dzielnik napięcia, w tym wypadku zastosowałem dzielnik z przekładnią 10.

Jak to działa.

Do wyjścia zasilacza szeregowo podłączony jest rezystor dużej mocy, w tym układzie 1ohm. Jak widzimy na rysunku przed rezystorem R5 i za nim podłączyłem dzielniki napięcia z których wyjścia doprowadziłem do pinów A0 i A1 w arduino. Arduino porównuje napięcia przed i za rezystorem R5 i wylicza parametry pracy.

Na początek wyliczmy napięcie na rezystorze, czyli spadek napięcia U. Jak wynika z prawa oma 
U = I*R
czyli w przypadku rezystora o R5 o wartości 1ohm napięcie U = 1V będzie odpowiadało prądowi I = 1A

Napięcia na wyjściach dzielników to 1/10 napięcia zasilacza, więc program musi jeszcze dokonać kilku prostych obliczeń zanim wyświetli wartość parametrów na LCD. 

Jeszcze słowo o dzielnikach. Ze względu na tolerancję elementów, pomiary tą metodą wykazują nieznaczne błędy. Lepsze efekty daje zastosowanie w potencjometrów zamiast dzielników na rezystorach stałych, ale nawet wówczas należy w miarę dokładnie dobrać egzemplarze. Ten sposób pomiaru ma jeszcze jedną istotną wadę. Rezystor R5 wprowadza duży spadek napięcia przy większym obciążeniu zasilacza.

Program dla arduino 

 

Teraz pomiary z użyciem modułu czujnika.

W tym wypadku metoda pomiaru napięcia wyjściowego nie zmienia się, pozostaje jeden dzielnik 1/10. Pomiar prądu natomiast następuje z użyciem czujnika Halla. Specjalny układ scalony (ja wykorzystałem moduł  układem ACS712 wersja 20 amperów) mierzy prąd płynący przez niego, na podstawie pomiaru strumienia magnetycznego tworzącego się wokół przewodnika. W wersji 20 amperowej czujnika acs712, na każdy amper płynący przez czujnik, na wyjściu otrzymujemy wzrost sygnału o 100 mV. 

Uwaga: jak wspomniałem czujnik mierzy strumień magnetyczny, w związku z tym należy uważać by nie montować modułu pomiarowego w pobliżu magnesów i transformatorów, gdyż może nam podawać sygnał z błędem. Sprawdzone przeze mnie. 

Jeszcze jedna uwaga, czujnik zasilamy napięciem 5 V i najlepiej pobrać zasilanie z płytki arduino, tak by atmega w arduino i czujnik acs był zasilany z tego samego stabilizatora.

 

Jak to podłączyć.

Poniżej na schemacie przedstawiłem sposób podłączenia sensora acs712 do arduino. Jeżeli będziesz podłączał gotowy moduł z układem acs to nie musisz przejmować się kondensatoram C1, prawdopodobnie jest na płytce. Na schemacie nie narysowałem zasilania układu, wystarczy podłączyć PIN15 (Vin) do wyjścia zasilacza. Arduino NANO ma na płytce stabilizator, możemy więc zasilić układ bezpośrednio z zasilacza 14 V.

 

 

 

 

 

 

 

 

 

Podłączenie wyświetlacza z interface i2c jest proste. Pin Vcc podłączamy do 5V w Arduino, GND do GND w Arduino, SDA do A4 w Arduino i SCL do A5.

 

 

 

 

 

Wyświetlacz LCD z konwerterem i2c

 

Do współpracy z wyświetlaczem przez szynę i2c arduino potrzebujesz biblioteki LiquidCrystal_I2C oraz Wire, które możesz ściągnąć z mojego serwera, o ile już ich nie masz – sprawdź. Może Ci się przydać również skaner I2C, który znajdziesz w moim downloadzie. Skaner pozwala na odczyt adresu sprzętowego konwertera I2C.  Mój konwerter miał adres 0x27 ale prawdopodobnie będziesz miał inny. Skaner należy skompilować i załadować na płytkę arduino, otworzyć monitor portu szeregowego i odczytać adres. Adres następnie wpisać w linii programu odpowiadającej za konfigurację wyświetlacza LCD.

BIBLIOTEKI

Program dla arduino

 

Jeszcze kilka fotek z prac i gotowego „bufora”