Spisu treści:

Rejestrator danych monitorowania prądu AC: 9 kroków (ze zdjęciami)
Rejestrator danych monitorowania prądu AC: 9 kroków (ze zdjęciami)

Wideo: Rejestrator danych monitorowania prądu AC: 9 kroków (ze zdjęciami)

Wideo: Rejestrator danych monitorowania prądu AC: 9 kroków (ze zdjęciami)
Wideo: Ups. 2024, Lipiec
Anonim
Rejestrator danych monitorowania prądu AC
Rejestrator danych monitorowania prądu AC

Cześć wszystkim, witam w moim pierwszym instruktażu! W dzień jestem inżynierem testowym w firmie dostarczającej przemysłowe urządzenia grzewcze, w nocy zaś zapalonym hobbystą technologii i majsterkowiczem. Część mojej pracy polega na testowaniu wydajności grzałek, przy tej okazji chciałem móc monitorować pobór prądu RMS 8 urządzeń przez 1000 godzin i rejestrować dane w celu późniejszego wykresu wyników. Mam dostęp do rejestratora danych, ale był on już zaangażowany w inny projekt i potrzebowałem czegoś taniego, więc postanowiłem sklecić ten podstawowy datalogger.

Projekt wykorzystuje Arduino Uno do odczytu czujników analogowych za pomocą przetwornika analogowo-cyfrowego (ADC) i rejestruje dane ze znacznikiem czasu na karcie SD. W projektowaniu obwodów jest dużo teorii i obliczeń, więc zamiast wyjaśniać absolutnie wszystko, pokażę tylko, jak to zrobić. Jeśli jesteś zainteresowany obejrzeniem PEŁNEGO hitu, daj mi znać w komentarzach, a wyjaśnię dalej.

NOTATKA:

Miałem wiele pytań dotyczących obliczeń True RMS. To urządzenie wykorzystuje prostownik półfalowy do przechwytywania szczytowej fali, którą można następnie pomnożyć przez 0,707, aby uzyskać RMS. W konsekwencji da dokładny wynik tylko przy obciążeniach liniowych (tj. mierzony prąd jest czystą falą sinusoidalną). Zasilanie nieliniowe lub obciążenia, które dają przebiegi trójkątne, prostokątne lub inne nie sinusoidalne, nie dają prawdziwych obliczeń RMS. To urządzenie mierzy prąd przemienny tylko, że nie jest przeznaczone do pomiaru napięcia, w związku z tym nie oblicza ani nie mierzy współczynnika mocy. Zobacz moje inne instrukcje, jak stworzyć miernik współczynnika mocy, który można do tego wykorzystać. Wiele osób powiedziało również, że proste sprzężenie AC z linią środkową 2,5 V jest lepsze, jednak wprowadza to komplikacje, ponieważ wiąże się z wystarczająco dużą częstotliwością próbkowania cyfrowego, solidnym uśrednianiem/wygładzaniem danych itp., a niepewność, jaką to wprowadza, jest znacznie większa niż w przypadku pomiaru surowa wartość. Osobiście wolę rozwiązania sprzętowe i prostszy kod tam, gdzie to możliwe, więc nie jestem zainteresowany tą metodą. Pod względem dokładności uważam, że jest to znacznie lepsze niż to drugie, a później zobaczysz w moich wynikach współczynnik regresji bliski 1,0 po kalibracji.

Krok 1: Przekładniki prądowe

Transformatory prądowe
Transformatory prądowe
Transformatory prądowe
Transformatory prądowe

W projekcie zastosowano przekładnik prądowy HMCT103C 5A/5MA. Ma przełożenie 1:1000 zwojów, co oznacza, że na każde 5A prądu płynącego przez przewodnik, 5mA popłynie przez CT. Rezystor musi być podłączony do dwóch zacisków przekładnika prądowego, aby umożliwić pomiar napięcia na nim. Przy tej okazji użyłem rezystora 220 Ohm, więc używając prawa Ohma V=IR, wyjście przekładnika prądowego będzie 1,1 V AC, na każde 5mA prądu przekładnika (lub każde 5A zmierzonego prądu). Przekładniki CT zostały przylutowane do płytki z odizolowaniem z rezystorem i kablem instrumentalnym, aby utworzyć latające wyprowadzenia. Zakończyłem przewody męskimi wtykami audio jack 3,5 mm.

Oto arkusz danych dla przekładnika prądowego

Arkusz danych

Krok 2: Kondycjonowanie sygnału

Kondycjonowanie sygnału
Kondycjonowanie sygnału
Kondycjonowanie sygnału
Kondycjonowanie sygnału

Sygnał z CT będzie słaby, więc wymaga wzmocnienia. W tym celu zlutowałem prosty obwód wzmacniacza za pomocą wzmacniacza operacyjnego na dwie szyny uA741. W tym przypadku wzmocnienie jest zatem ustawione na 150 przy użyciu wzoru Rf / Rin (150k / 1k). Jednak sygnał wyjściowy ze wzmacniacza nadal jest prądem przemiennym, dioda na wyjściu wzmacniacza operacyjnego odcina ujemną połowę cyklu prądu przemiennego i przekazuje dodatnie napięcie do kondensatora 0,1 uF, aby wygładzić falę w pofalowany sygnał prądu stałego. Poniżej znajdują się części tworzące obwód:

  • V1 - To jest arbitralne na tym schemacie, po prostu reprezentuje napięcie sygnału, które jest podawane na nieodwracające wejście wzmacniacza operacyjnego.
  • R1 - Jest znany jako rezystor sprzężenia zwrotnego (Rf) i jest ustawiony na 150k
  • R2 - Jest znany jako rezystor wejściowy (Rin) i jest ustawiony na 1k
  • 741 - To jest zintegrowany obwód uA741
  • VCC - Dodatnia szyna zasilająca +12V
  • VEE - ujemna szyna zasilająca -12V
  • D1 - Czy dioda sygnalizująca prostowanie fali półfalowej 1N4001?
  • C3 - Ten kondensator utrzymuje sygnał DC przez określony czas

Na zdjęciu 2 widać, że został zmontowany przy użyciu Veroboard i ocynowanego drutu miedzianego. Wywiercono 4 otwory na podstawki do płytek PCB, aby można je było układać w stos (ponieważ jest osiem kanałów, w sumie musi być osiem obwodów wzmacniacza).

Krok 3: Zasilanie

Zasilacz
Zasilacz
Zasilacz
Zasilacz
Zasilacz
Zasilacz

Jeśli nie masz ochoty robić tego od zera, możesz kupić płytkę zmontowaną z Chin, taką jak ta na zdjęciu powyżej, ale nadal będziesz potrzebować transformatora 3VA (obniż 240V do 12V). Ten na zdjęciu kosztował mnie około £2.50

Aby zasilić projekt postanowiłem wykonać własny dwutorowy zasilacz 12VDC. Było to wygodne, ponieważ wzmacniacze operacyjne wymagają +12 V, 0 V, -12 V, a Arduino Uno może przyjmować dowolne zasilanie do 14 VDC. Poniżej znajdują się części tworzące obwód:

  • V1 - reprezentuje zasilanie z gniazdka sieciowego 240V 50Hz
  • T1 - To jest mały transformator 3VA, o którym kłamałem. Ważne jest, aby transformator miał centralny odczep na uzwojeniu wtórnym, który będzie podłączony do 0V tj. masy
  • D1 do D4 - jest to prostownik mostkowy pełnookresowy wykorzystujący diody 1N4007
  • Kondensatory elektrolityczne C1 i C2 - 35V 2200uF (musi wynosić 35V, ponieważ potencjał między dodatnim a ujemnym osiągnie 30V)
  • U2 - LM7812, to regulator napięcia dodatniego 12V
  • U3 - LM7912, to regulator napięcia ujemnego 12 V (należy zwrócić uwagę na różnice pinów między układami scalonymi 78xx i 79xx!)
  • C3 i C4 - 100nF Kondensatory wygładzające 25V elektrolityczne
  • Ceramiczne kondensatory dyskowe C5 i C6 - 10uF

Przylutowałem elementy do stripboardu i połączyłem pionowe szyny gołym jednożyłowym drutem miedzianym ocynowanym. Zdjęcie 3 powyżej pokazuje mój zasilacz DIY, przepraszam, że na zdjęciu jest dużo zworek!

Krok 4: Konwertery analogowo-cyfrowe

Konwertery analogowo-cyfrowe
Konwertery analogowo-cyfrowe
Konwertery analogowo-cyfrowe
Konwertery analogowo-cyfrowe

Arduino Uno ma już wbudowany 10-bitowy ADC, jednak jest tylko 6 wejść analogowych. Dlatego zdecydowałem się użyć dwóch wyjść ADC z 16-bitowym ADS1115. Pozwala to 2^15 = 32767 bitów reprezentować poziomy napięcia od 0-4,096V (4,096V to napięcie robocze wybicia), co oznacza, że każdy bit reprezentuje 0,000125V! Ponadto, ponieważ wykorzystuje magistralę I2C, oznacza to, że można zaadresować do 4 ADC, umożliwiając w razie potrzeby monitorowanie do 16 kanałów.

Próbowałem zilustrować połączenia za pomocą Fritzing, jednak ze względu na ograniczenia nie ma niestandardowych części do zilustrowania generatora sygnału. Fioletowy przewód jest podłączony do wyjścia obwodu wzmacniacza, czarny przewód obok niego ilustruje, że wszystkie obwody wzmacniacza muszą mieć wspólną masę. Użyłem więc tablicy prototypowej, aby zilustrować, w jaki sposób stworzyłem punkty remisowe. Jednak mój rzeczywisty projekt ma wyrwy w żeńskich nagłówkach, przylutowane do Veroboard, a wszystkie punkty wiązania są przylutowane do veroboard.

Krok 5: Mikrokontroler

Mikrokontroler
Mikrokontroler

Jak wspomniano powyżej, kontroler, który wybrałem, to Arduino Uno, był to dobry wybór, ponieważ ma wiele wbudowanych i wbudowanych funkcji, które w przeciwnym razie musiałyby być zbudowane osobno. Dodatkowo jest kompatybilny z wieloma specjalnie zbudowanymi „tarczami”. Przy tej okazji potrzebowałem zegara czasu rzeczywistego do oznaczania wszystkich wyników i rejestratora kart SD, aby zapisać wyniki do pliku.csv lub.txt. Na szczęście tarcza do rejestrowania danych Arduino ma obie osłony, które pasują do oryginalnej płyty Arduino bez dodatkowego lutowania. Osłona jest kompatybilna z bibliotekami kart RTClib i SD, więc nie jest potrzebny żaden specjalistyczny kod.

Krok 6: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Użyłem 5 mm sztywnego PVC o średniej/niskiej gęstości (czasami znanego jako płyta piankowa), aby przykręcić większość moich komponentów i przyciąć je do wygodnego rozmiaru nożem rzemieślniczym. Wszystkie komponenty zostały zbudowane w sposób modułowy dla prototypu, ponieważ pozwala to na usunięcie poszczególnych części, jeśli coś pójdzie nie tak, jednak nie jest tak wydajne ani uporządkowane jak wytrawiona płytka drukowana (dalsza praca) oznacza to również wiele zworek między części.

Krok 7: Przesyłanie kodu

Prześlij kod do Arduino lub pobierz kod z mojego repozytorium Github

github.com/smooth-jamie/datalogger.git

Krok 8: Kalibracja

Kalibrowanie
Kalibrowanie
Kalibrowanie
Kalibrowanie
Kalibrowanie
Kalibrowanie

Teoretycznie zmierzony prąd będzie wypadkową kilku rzeczy połączonych:

Mierzone ampery = (((a *0,45)/150)/(1,1/5000))/1000 gdzie „a” to napięcie sygnału ze wzmacniacza

0,45 to wartość skuteczna Vout obwodu wzmacniacza, 150 to wzmocnienie wzmacniacza operacyjnego (Rf/Rin = 150k / 1k), 1,1 to pełne napięcie wyjściowe przekładnika prądowego, gdy zmierzone ampery wynoszą 5A, 5000 to po prostu 5A w mA, a 1000 to ilość zwojów w transformatorze. Można to uprościć do:

Mierzone ampery = (b * 9.216) / 5406555 gdzie b jest wartością raportowaną przez ADC

Ta formuła została przetestowana przy użyciu 10-bitowego ADC Arduino i zaobserwowano różnicę między wartościami z multimetru a wartościami generowanymi przez Arduino o 11%, co jest niedopuszczalnym odchyleniem. Moją preferowaną metodą kalibracji jest zapisanie wartości ADC w funkcji prądu na multimetrze w arkuszu kalkulacyjnym i wykreślenie wielomianu trzeciego rzędu. Z tego wzoru sześciennego można użyć do uzyskania lepszych wyników przy obliczaniu mierzonego prądu:

(ax^3) + (bx^2) + (cx^1) + d

Współczynniki a, b, c i d są obliczane w programie Excel z prostej tabeli danych, x to wartość ADC.

Aby uzyskać dane, użyłem ceramicznego rezystora zmiennego 1k (reostat) i transformatora 12V, aby obniżyć napięcie sieciowe AC z 240V, co dało mi generowanie zmiennego źródła prądu od 13mA do 100mA. Im więcej zebranych punktów danych, tym lepiej, jednak sugeruję zebranie 10 punktów danych, aby uzyskać dokładny trend. Załączony szablon Excela obliczy dla Ciebie współczynniki, to tylko kwestia wpisania ich do kodu arduino

W linii 69 kodu zobaczysz, gdzie wpisać współczynniki

float chn0 = ((7,30315 * pow(10, -13)) * pow(adc0, 3) + (-3,72889 * pow(10, -8) * pow(adc0, 2) + (0,003985811 * adc0) + (0,663064521)));

który jest taki sam jak formuła w arkuszu 1 pliku Excel:

y = 7E-13x3 - 4E-08x2 + 0,004x + 0,663

Gdzie x = adc0 dowolnego kanału, który kalibrujesz

Krok 9: Zakończ

Skończyć
Skończyć
Skończyć
Skończyć
Skończyć
Skończyć
Skończyć
Skończyć

Umieść go w obudowie projektu. Zasilacz wykończyłem przełącznikiem dwustabilnym, aby włączyć/wyłączyć całość na zasilaczu, oraz złączem IEC „cyfra 8” dla wejścia sieciowego. Skręć to wszystko razem i jesteś gotowy, aby to przetestować.

Dalsza praca

Cały projekt został dość szybko wyśmiewany, więc jest dużo miejsca na ulepszenia, wytrawiony układ, lepsze podzespoły. Idealnie byłoby, gdyby całość była wytrawiona lub przylutowana do FR4, a nie mnóstwo zworek. Jak powiedziałem wcześniej, jest mnóstwo rzeczy, o których nie wspomniałem, ale jeśli jest coś konkretnego, co chciałbyś wiedzieć, daj mi znać w komentarzach, a zaktualizuję instrukcje!

Aktualizacja 18.12.2016

Dodałem teraz wyświetlacz LCD 16x2 za pomocą „plecaka” I2C do monitorowania pierwszych czterech kanałów, dodam kolejny, aby monitorować ostatnie cztery, gdy dotrą do poczty.

Kredyty

Ten projekt był możliwy dzięki wszystkim autorom bibliotek użytych w moim szkicu Arduino, w tym biblioteka DS3231, biblioteka Adafruit ADS1015 i biblioteka Arduino SD

Zalecana: