- Wymagane materiały:
- Działanie czujnika prądu ACS712:
- Schemat obwodu:
- Symulacja:
- Programowanie mikrokontrolera PIC:
- Pracujący:
Pomiar napięcia i prądu zawsze będzie pomocny podczas tworzenia lub debugowania dowolnego systemu elektrycznego. W tym projekcie zamierzamy wykonać własny amperomierz cyfrowy przy użyciu mikrokontrolera PIC16F877A i czujnika prądu ACS712-5A. Ten projekt może mierzyć zarówno prąd przemienny, jak i stały w zakresie 0-30A z dokładnością do 0,3A. Po kilku modyfikacjach kodu można również użyć tego obwodu do pomiaru do 30A. Więc zacznijmy !!!
Wymagane materiały:
- PIC16F877A
- 7805 Regulator napięcia
- Czujnik prądu ACS712
- Wyświetlacz LCD 16 * 2
- Skrzynka połączeniowa i obciążenie (tylko do testowania)
- Przewody łączące
- Kondensatory
- Płytka prototypowa.
- Zasilanie - 12V
Działanie czujnika prądu ACS712:
Zanim zaczniemy budować projekt, bardzo ważne jest, abyśmy zrozumieli działanie czujnika prądu ACS712, ponieważ jest to kluczowy element projektu. Pomiar prądu, zwłaszcza prądu zmiennego, jest zawsze trudnym zadaniem ze względu na szum związany z nim, problem z nieprawidłową izolacją itp. Jednak z pomocą tego modułu ACS712, który został zaprojektowany przez Allegro, sprawa stała się o wiele łatwiejsza.
Moduł ten działa na zasadzie efektu Halla, którą odkrył dr Edwin Hall. Zgodnie z jego zasadą, kiedy przewodnik przewodzący prąd jest umieszczany w polu magnetycznym, napięcie jest generowane na jego krawędziach prostopadle do kierunków zarówno prądu, jak i pola magnetycznego. Nie zagłębiajmy się zbytnio w tę koncepcję, ale po prostu używamy czujnika Halla do pomiaru pola magnetycznego wokół przewodnika przewodzącego prąd. Ten pomiar będzie wyrażony w miliwoltach, które nazwaliśmy napięciem halla. To zmierzone napięcie Halla jest proporcjonalne do prądu przepływającego przez przewodnik.
Główną zaletą stosowania czujnika prądu ACS712 jest to, że może mierzyć zarówno prąd AC, jak i DC, a także zapewnia izolację między obciążeniem (obciążenie AC / DC) a jednostką pomiarową (część mikrokontrolera). Jak pokazano na rysunku, mamy trzy piny w module, które są odpowiednio Vcc, Vout i Ground.
2-pinowa listwa zaciskowa to miejsce, w którym należy przeprowadzić przewód przewodzący prąd. Moduł pracuje na + 5V więc Vcc powinno być zasilane napięciem 5V a masa powinna być podłączona do uziemienia systemu. Pin Vout ma przesunięcie napięcia 2500 mV, co oznacza, że gdy nie ma prądu przepływającego przez przewód, wówczas napięcie wyjściowe będzie wynosić 2500 mV, a gdy przepływający prąd jest dodatni, napięcie będzie większe niż 2500 mV, a gdy przepływający prąd będzie ujemny, napięcie będzie mniejsze niż 2500mV.
Będziemy używać modułu ADC mikrokontrolera PIC do odczytu napięcia wyjściowego (Vout) modułu, które będzie wynosić 512 (2500mV), gdy przez przewód nie będzie płynął prąd. Wartość ta zmniejszy się, gdy prąd płynie w kierunku ujemnym i wzrośnie, gdy prąd płynie w kierunku dodatnim. Poniższa tabela pomoże ci zrozumieć, jak zmienia się napięcie wyjściowe i wartość ADC w zależności od prądu przepływającego przez przewód.
Wartości te zostały obliczone na podstawie informacji podanych w arkuszu danych ACS712. Możesz je również obliczyć za pomocą poniższych wzorów:
Napięcie Vout (mV) = (Wartość ADC / 1023) * 5000 Prąd przepływający przez przewód (A) = (Vout (mv) -2500) / 185
Teraz, gdy wiemy, jak działa czujnik ACS712 i czego możemy się po nim spodziewać. Przejdźmy do schematu obwodu.
Schemat obwodu:
Pełny schemat obwodu tego projektu cyfrowego amperomierza pokazano na poniższym obrazku.
Cały obwód cyfrowego miernika prądu działa przy napięciu + 5 V, które jest regulowane przez regulator napięcia 7805. Użyliśmy wyświetlacza LCD 16X2 do wyświetlenia wartości prądu. Pin wyjściowy czujnika prądu (Vout) jest połączony z 7 -go pin PIC, który jest an4 do odczytu napięcia analogowego.
Ponadto w poniższej tabeli przedstawiono połączenie pinów PIC
S.No: |
Kod PIN |
Nazwa pinu |
Połączony z |
1 |
21 |
RD2 |
RS LCD |
2 |
22 |
RD3 |
E z LCD |
3 |
27 |
RD4 |
D4 wyświetlacza LCD |
4 |
28 |
RD5 |
D5 wyświetlacza LCD |
5 |
29 |
RD6 |
D6 wyświetlacza LCD |
6 |
30 |
RD7 |
D7 wyświetlacza LCD |
7 |
7 |
AN4 |
Vout of Current Sesnor |
Możesz zbudować ten cyfrowy obwód amperomierza na płytce stykowej lub użyć płytki perf. Jeśli korzystałeś z samouczków PIC, możesz również ponownie użyć sprzętu, którego używaliśmy do nauki mikrokontrolerów PIC. Tutaj użyliśmy tej samej płytki perf, którą zbudowaliśmy do migania diod LED z mikrokontrolerem PIC, jak pokazano poniżej:
Uwaga: nie jest obowiązkowe, abyś zbudował tę płytkę, możesz po prostu postępować zgodnie ze schematem obwodu i zbudować obwód na płytce chlebowej i użyć dowolnego zestawu do wywrotki, aby zrzucić program do mikrokontrolera PIC.
Symulacja:
Ten obwód miernika prądu można również zasymulować za pomocą Proteusa, zanim faktycznie przystąpisz do pracy ze sprzętem. Przypisz plik hex kodu podanego na końcu tego samouczka i kliknij przycisk odtwarzania. Powinieneś być w stanie zauważyć prąd na wyświetlaczu LCD. Użyłem lampy jako obciążenia AC, możesz zmieniać wewnętrzną rezystancję lampy, klikając na nią, aby zmieniać przepływający przez nią prąd.
Jak widać na powyższym obrazku, amperomierz pokazuje rzeczywisty prąd przepływający przez lampę, który wynosi około 3,52 A, a wyświetlacz LCD pokazuje prąd około 3,6 A. Jednak w praktycznym przypadku możemy uzyskać błąd do 0,2A. Wartość ADC i napięcie w (mV) są również pokazane na wyświetlaczu LCD dla zrozumienia.
Programowanie mikrokontrolera PIC:
Jak wspomniano wcześniej, pełny kod można znaleźć na końcu tego artykułu. Kod jest samowyjaśniony za pomocą linii komentarzy i obejmuje po prostu koncepcję połączenia wyświetlacza LCD z mikrokontrolerem PIC i użycia modułu ADC w mikrokontrolerze PIC, które już omówiliśmy w naszych poprzednich samouczkach dotyczących nauki mikrokontrolerów PIC.
Wartość odczytana z czujnika nie będzie dokładna, ponieważ prąd jest zmienny i jest również narażony na szum. Dlatego odczytujemy wartość ADC 20 razy i uśredniamy ją, aby uzyskać odpowiednią bieżącą wartość, jak pokazano w poniższym kodzie.
Użyliśmy tych samych wzorów, które wyjaśniono powyżej, aby obliczyć napięcie i wartość prądu.
for (int i = 0; i <20; i ++) // Odczytaj wartość 20 razy {adc = 0; adc = ADC_Read (4); // Przeczytaj napięcie ADC = adc * 4.8828; // Oblicz napięcie, jeśli (napięcie> = 2500) // Jeśli prąd jest dodatni w amperach + = ((napięcie-2500) /18,5); else if (Napięcie <= 2500) // Jeśli prąd jest ujemny Amper + = ((2500-Napięcie) /18,5); } Ampery / = 20; // Średnia wartość odczytana 20 razy
Ponieważ ten projekt może również odczytywać prąd AC, przepływ prądu będzie również ujemny i dodatni. Oznacza to, że wartość napięcia wyjściowego będzie powyżej i poniżej 2500 mV. Dlatego, jak pokazano poniżej, zmieniamy formuły na prąd ujemny i dodatni, aby nie uzyskać wartości ujemnej.
if (Napięcie> = 2500) // Jeśli prąd jest dodatni Amperów + = ((Napięcie-2500) /18,5); else if (Napięcie <= 2500) // Jeśli prąd jest ujemny Amper + = ((2500-Napięcie) /18,5);
Korzystanie z czujnika prądu 30 A:
Jeśli potrzebujesz zmierzyć prąd większy niż 5A, możesz po prostu kupić moduł ACS712-30A i połączyć go w ten sam sposób i zmienić poniższy wiersz kodu, zastępując 18,5 na 0,66, jak pokazano poniżej:
if (Napięcie> = 2500) // Jeśli prąd jest dodatni Amperów + = ((Napięcie-2500) /0,66); else if (Napięcie <= 2500) // Jeśli prąd jest ujemny Amperów + = ((2500-Napięcie) /0,66);
Sprawdź również amperomierz 100mA za pomocą mikrokontrolera AVR, jeśli chcesz mierzyć niski prąd.
Pracujący:
Po zaprogramowaniu mikrokontrolera PIC i przygotowaniu sprzętu. Po prostu włącz obciążenie, a mikrokontroler PIC powinien być w stanie zobaczyć prąd przepływający przez przewód wyświetlany na ekranie LCD.
UWAGA: JEŻELI używasz modułu ASC7125A, upewnij się, że obciążenie nie zużywa więcej niż 5A, również użyj przewodów o większej średnicy dla przewodów przewodzących prąd.
Pełne działanie projektu amperomierza opartego na mikrokontrolerze PIC jest pokazane na poniższym wideo. Mam nadzieję, że projekt działał i cieszył się nim. Jeśli masz jakiekolwiek wątpliwości, możesz napisać je w sekcji komentarzy poniżej lub zamieścić na naszych forach.