Skocz do zawartości

Przenośny rejestrator mocy z zapisem wyników


crbjsfso

Pomocna odpowiedź

1. Wprowadzenie

Od czasu do czasu każdej osobie związanej z elektroniką zawodowo lub hobbystycznie zdarza się mierzyć napięcie, czy też natężenie prądu elektrycznego. Przynajmniej z moich obserwacji tak wynika. Zazwyczaj pomiary takie dokonywane są przy użyciu wszelakiej maści multimetrów, czy oscyloskopów. Czasami może zaistnieć potrzeba zapisania wyniku pomiaru i w warunkach amatorskich przeważnie dokonywane jest to ręcznie. Zastanawiałem się, czy istnieje możliwość zautomatyzowania pomiarów i zapisu wyników, zwłaszcza że czasami mierzone wartości zmieniają się w czasie. Dodatkowo urządzenie to powinno być stosunkowo niedrogie i proste do wykonania. Po przejrzeniu zasobów Internetu i kilku naprawdę ciekawych rozwiązań postanowieniem zbudować urządzenie tego typu. Więc bez dalszej zwłoki chciałbym zaprezentować poręczny, przenośny rejestrator mocy, który zapisuje mierzone wartości na karcie SD.

Autorem projektu jest GreatScott!, a oryginalna instrukcja jest dostępna tutaj.

2. Schemat

Schemat połączeń jest dość prosty i bazuje na gotowych modułach. Sercem całego systemu jest pytka oparta o chip INA219B, który jest przeznaczony do mierzenia napięcia oraz prądu stałego DC przez magistralę I2C, a jego dokładność to do 1%. Układ obsługuje prąd do 26 VDC, a zasilany jest napięciem zasilania 3,3 V. Maksymalna różnica wejściowa wzmacniacza wynosi +/- 320 mV, co oznacza, że może mierzyć natężenie prądu do +/- 3,2 A. Przy 12-bitowym ADC rozdzielczość wynosi 0,8 A. 

schemat.thumb.png.080fe0b1c4547e9c83171abc70ad1038.png

2.1. Schemat połączeń.

3. Części i narzędzia

Aby wykonać projekt będą nam potrzebne następujące elementy:

4. Oprogramowanie

Do Arduino należy załadować poniższy kod.

#include <Wire.h>
#include <Adafruit_INA219.h>
#include <Adafruit_SSD1306.h>
#include <SPI.h>
#include "SdFat.h"
SdFat SD;

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_INA219 ina219;

unsigned long previousMillis = 0;
unsigned long interval = 100;
const int chipSelect = 10;
float shuntvoltage = 0;
float busvoltage = 0;
float current_mA = 0;
float loadvoltage = 0;
float energy = 0;
File TimeFile;
File VoltFile;
File CurFile;

void setup() {
  SD.begin(chipSelect);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  ina219.begin();
}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)
  {
    previousMillis = currentMillis;
    ina219values();

    TimeFile = SD.open("TIME.txt", FILE_WRITE);
    if (TimeFile) {
      TimeFile.println(currentMillis);
      TimeFile.close();
    }

    VoltFile = SD.open("VOLT.txt", FILE_WRITE);
    if (VoltFile) {
      VoltFile.println(loadvoltage);
      VoltFile.close();
    }

    CurFile = SD.open("CUR.txt", FILE_WRITE);
    if (CurFile) {
      CurFile.println(current_mA);
      CurFile.close();
    }
    displaydata();
  }
}

void displaydata() {
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println(loadvoltage);
  display.setCursor(35, 0);
  display.println("V");
  display.setCursor(50, 0);
  display.println(current_mA);
  display.setCursor(95, 0);
  display.println("mA");
  display.setCursor(0, 10);
  display.println(loadvoltage * current_mA);
  display.setCursor(65, 10);
  display.println("mW");
  display.setCursor(0, 20);
  display.println(energy);
  display.setCursor(65, 20);
  display.println("mWh");
  display.display();
}

void ina219values() {
  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  energy = energy + loadvoltage * current_mA / 3600;
}

Kod oprócz podstawowych bibliotek wymaga dodatkowo: 

https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_INA219
https://github.com/adafruit/Adafruit_SSD1306
https://github.com/greiman/SdFat

Przed użyciem kart SD należy ją sformatować, najlepiej przy użyciu programu SD Memory Card Formatter. Ponieważ czasami karta sformatowania ręcznie spod systemu Windows może nie współpracować z czytnikiem.

5. Efekt końcowy

Poniższe zdjęcia prezentują proces budowy i gotowy układ w działaniu.

1.thumb.jpg.361460e0c92dd2ffc91e09e0ef6c83d4.jpg2.thumb.jpg.7348dbbd57bcf72d37c9e1ce428b8509.jpg3.thumb.jpg.8c9d76b62bba950cfb9375bb904ac78a.jpg4.thumb.jpg.0162936b6465154b1dd1def48f9608b9.jpg5.thumb.jpg.6aeb05e69aaf25b2c63070b961dffcda.jpg6.thumb.jpg.f0d5fbfc3e1b00fcb89ec1f1b57342ad.jpg7.thumb.jpg.c40e4d016384f6f71534131fe1788b87.jpg8.thumb.jpg.ef03bb6f8782da350a3b9cf77bb1e13a.jpg9.thumb.jpg.dcd7c9564e566908c3aec0d462041b27.jpg

Podczas pracy na karcie SD generowane są 3 pliki tekstowe zwierająca pomiary. CUR.txt - dla natężenia, VOLT.txt - dla napięcia i TIME.txt - dla czasu w milisekundach. Wszystkie nowe wartości dopisywane są do już istniejących plików, nawet po resecie urządzenia. Dzięki czemu nie ma obawy o utratę danych. Dodatkowo wszystkie wyniki z chwili obecnej pomiaru są wyświetlane na ekranie OLED.

Edytowano przez crbjsfso
Dodanie źródła oryginalnego projektu.
  • Lubię! 2
Link do komentarza
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Czy to jest Twoje dokładne odtworzenia projektu wykonanego przez GreatScotta, czy coś w nim zmieniałeś?

Porównując projekt z tym filmem oraz tą instrukcją (i umieszczonym tam programem) ciężko dostrzec jakieś większe różnice. Oczywiście doceniam fakt odtworzenia konstrukcji, fajnie, że spełnia swoją rolę. Pytam jednak w kontekście dwóch spraw. Pierwszy to nasza akcja rabatowa, do której zgłosiłeś projekt - nie wiem co z tym zrobić w takiej sytuacji. Po drugie... czy nie uważasz, że wypadałoby podpisać autora programu i ogólnie wspomnieć o fakcie, że to "gotowiec"? 😉

  • Lubię! 1
Link do komentarza
Share on other sites

13 godzin temu, crbjsfso napisał:

Schemat połączeń jest dość prosty i bazuje na gotowych modułach. Sercem całego systemu jest pytka oparta o chip INA219B, który jest przeznaczony do mierzenia napięcia oraz prądu stałego DC przez magistralę I2C, a jego dokładność to do 1%

Nie prościej i lepiej, zrobić interfejs do multimetru? Nie ma wtedy ograniczenia do pomiaru napięcia i prądu stałego jak w INA219B. Można rejestrować wszystko co potrafi mierzyć multimetr jak napięcie przemienne, częstotliwość itd. 0,1 czy 0,01% dokładności w multimetrze to nie problem, wskazania do 20'000 też nie są niczym nadzwyczajnym a i 500'000 można mieć za niekoniecznie cenę samochodu.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

5 godzin temu, Treker napisał:

Czy to jest Twoje dokładne odtworzenia projektu wykonanego przez GreatScotta, czy coś w nim zmieniałeś?

Porównując projekt z tym filmem oraz tą instrukcją (i umieszczonym tam programem) ciężko dostrzec jakieś większe różnice. Oczywiście doceniam fakt odtworzenia konstrukcji, fajnie, że spełnia swoją rolę. Pytam jednak w kontekście dwóch spraw. Pierwszy to nasza akcja rabatowa, do której zgłosiłeś projekt - nie wiem co z tym zrobić w takiej sytuacji. Po drugie... czy nie uważasz, że wypadałoby podpisać autora programu i ogólnie wspomnieć o fakcie, że to "gotowiec"? 😉

Tak, zgadzam się, masz rację. Dodałem linki do oryginalnego projektu, projekt zostanie również usunięty ze wpisu o akcji rabatowej. Pierwotnie nie dodałem linku do oryginalnego projektu, ponieważ nie jest w języku polskim.

1 godzinę temu, RFM napisał:

Nie prościej i lepiej, zrobić interfejs do multimetru? Nie ma wtedy ograniczenia do pomiaru napięcia i prądu stałego jak w INA219B. Można rejestrować wszystko co potrafi mierzyć multimetr jak napięcie przemienne, częstotliwość itd. 0,1 czy 0,01% dokładności w multimetrze to nie problem, wskazania do 20'000 też nie są niczym nadzwyczajnym a i 500'000 można mieć za niekoniecznie cenę samochodu.

Wydaje mi się, że interfejs do multimetru jest trudniejszy do wykonania. Tak naprawdę nigdy o czymś takim nie słyszałem, mógłbyś dać jakiś schemat, czy opis? Jaka taka modyfikacja wpływa na gwarancję urządzenia?

Link do komentarza
Share on other sites

15 minut temu, crbjsfso napisał:

Tak, zgadzam się, masz rację. Dodałem linki do oryginalnego projektu, projekt zostanie również usunięty ze wpisu o akcji rabatowej. Pierwotnie nie dodałem linku do oryginalnego projektu, ponieważ nie jest w języku polskim.

Wydaje mi się, że interfejs do multimetru jest trudniejszy do wykonania. Tak naprawdę nigdy o czymś takim nie słyszałem, mógłbyś dać jakiś schemat, czy opis? Jaka taka modyfikacja wpływa na gwarancję urządzenia?

Wszystko zależy jaki multimetr i jaki interfejs.

Polecam przeglądnąć film:

Oprócz tego polecam kanał tego autora. Ma tam mnóstwo bardzo pożytecznych projektów.

  • Lubię! 1
Link do komentarza
Share on other sites

30 minut temu, crbjsfso napisał:

Wydaje mi się, że interfejs do multimetru jest trudniejszy do wykonania. Tak naprawdę nigdy o czymś takim nie słyszałem, mógłbyś dać jakiś schemat, czy opis? Jaka taka modyfikacja wpływa na gwarancję urządzenia?

Multimetry mają RS232C albo USB albo oba interfejsy.

  • Lubię! 1
Link do komentarza
Share on other sites

6 godzin temu, RFM napisał:

Multimetry mają RS232C albo USB albo oba interfejsy.

W instrukcji dla tanich modeli nie ma nic o RS232C, czy USB.
https://www.atp-instrumentation.co.uk/manuals/electrical/DM-830C-Manual.pdf
https://alfaelektronik.mk/uploads/product_option_values/MS8229 manual ENG.pdf
Dopiero w droższych modelach jest wzmianka o tego rodzaju interfejsie.
https://diolut.pl/download/instrukcje/ut70b.pdf

Z moich obserwacji wynika, że dla hobbysty DIY nawet z gotowych modułów daje więcej frajdy i jest tańsza. Mimo wszystko radził bym traktować to jedynie jako moją subiektywną opinię, a nie jak wynik jakiegoś niezależnego badania na ludziach.

Link do komentarza
Share on other sites

34 minuty temu, crbjsfso napisał:

W instrukcji dla tanich modeli nie ma nic o RS232C, czy USB.

Często ten interfejs jest ale nie są zamontowane elementy izolacji optycznej no i kabelek RS232C trzeba sobie zrobić. Gdy informacje odbierane z miernika mają trafić do uC a nie na port RS232C to budowa kabelka (elektryczna) jest banalna.

  • Lubię! 1
Link do komentarza
Share on other sites

17 godzin temu, RFM napisał:

Często ten interfejs jest ale nie są zamontowane elementy izolacji optycznej no i kabelek RS232C trzeba sobie zrobić. Gdy informacje odbierane z miernika mają trafić do uC a nie na port RS232C to budowa kabelka (elektryczna) jest banalna.

Bardzo interesujące, na pewno warte głębszego zbadania, muszę w wolnej chwili poszukać jakiś schematów. Tylko pozostaje jedna kwestia, jak przy pomocy jednego multimetru mierzyć jednocześnie napięcie i natężenie?

Link do komentarza
Share on other sites

9 godzin temu, crbjsfso napisał:

Tylko pozostaje jedna kwestia, jak przy pomocy jednego multimetru mierzyć jednocześnie napięcie i natężenie?

Niestety raczej nie ma takiej możliwości (przynajmniej w takich najpopularniejszych, jednokanałowych miernikach).

  • Lubię! 1
Link do komentarza
Share on other sites

Czyli jednak zaprezentowany powyżej układ wydaje się być najrozsądniejszym rozwiązaniem, jeśli chodzi o budżetowe przenośne rejestratory mocy z zapisem wyników, które można z radością złożyć w zaciszu domowym, czy też warsztatowym. Chyba, że ktoś nie czerpie radości z tego typu hobby, to inna sprawa. Jeśli jednak cena nie ma żadnego znaczenia i nie lubimy konstruować różnych przydatnych gadżetów lepiej będzie zaopatrzyć się chociażby w coś pokroju przenośnego oscyloskopu DSO Nano v3, lub nawet coś z gołą innego.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.