Obwód woltomierza prądu stałego oparty na Arduino - szczegóły konstrukcyjne i testy

Obwód woltomierza prądu stałego oparty na Arduino - szczegóły konstrukcyjne i testy

W tym poście skonstruujemy woltomierz prądu stałego przy użyciu Arduino, w którym odczyty są wyświetlane na wyświetlaczu LCD 16x2.





Proponowana konstrukcja woltomierza może odczytywać do 30 V z tolerancją +/- 0,5 V. Zobaczymy, jak działa ta konfiguracja i zbadamy inne możliwości, które możemy osiągnąć poza pomiarem napięcia.

Ten projekt jest dość prosty, nawet początkujący mogą go z łatwością wykonać, ale należy zachować ostrożność podczas prototypowania obwodu, ponieważ zamierzamy przyłożyć zewnętrzne napięcie, każde błędne podłączenie do Arduino może doprowadzić do śmiertelnego uszkodzenia płyty.





Niech ostrzeżenie będzie stroną, zbadajmy, jak ono działa.

Tutaj używamy procesu konwersji analogowo-cyfrowej. Napięcie z dowolnego źródła jest funkcją analogową, odczyty wyświetlane na wyświetlaczu LCD 16x2 są funkcją cyfrową.



Wyzwaniem jest konwersja tych funkcji analogowych na funkcje cyfrowe. Na szczęście Arduino ma możliwość odczytu funkcji analogowych i konwersji ich na funkcje dyskretne.

Mikrokontroler Arduino wyposażony w 10-bitowy przetwornik analogowo-cyfrowy (ADC). Oznacza to, że Arduino może odczytać 2 ^ 10 = 1024 dyskretnych poziomów napięcia.

Innymi słowy, napięcie przyłożone do analogowego pinu Arduino jest próbkowane z 1024 dyskretnych poziomów napięcia w odniesieniu do napięcia odniesienia, a próbkowana wartość jest wyświetlana na wyświetlaczu LCD. To jest zasada działania tego woltomierza lub prawie każdego woltomierza cyfrowego.

Jednak przyłożone napięcie zewnętrzne nie jest bezpośrednio mierzone przez Arduino. Napięcie jest obniżane za pomocą dzielników napięcia, a program wykonuje obliczenia matematyczne, aby uzyskać rzeczywisty odczyt napięcia.

Jak to działa

Obwód składa się z dwóch rezystorów, jednego wyświetlacza LCD i Arduino, które jest mózgiem woltomierza cyfrowego. Dwa rezystory działają jako dzielnik napięcia, węzeł dzielnika jest podłączony do analogowego pinu # A0 Arduino, który odczytuje napięcie wejściowe. Między Arduino a zewnętrznym źródłem napięcia jest nawiązywane uziemienie.

Minimalne napięcie jakie może zmierzyć tym woltomierzem to 0,1V, ten próg jest ustawiony w programie tak, aby po odłączeniu źródła napięcia wskazywał 0,00V i nie wyświetlał odczytów z powodu ładunków statycznych wokół sondy pomiarowej.

Prototyp autora:

Wyniki testu woltomierza DC opartego na Arduino

Nie odwracaj polaryzacji podczas pomiaru napięcia, nie uszkodzi to obwodu, ale nie odczytuje żadnego napięcia i wyświetla 0,00 V, dopóki nie poprawisz biegunowości. Dostosuj kontrast wyświetlacza LCD do optymalnego poziomu, obracając potencjometr.

Upewnij się, że nie stosujesz żadnego źródła napięcia, które mogłoby wzrosnąć powyżej 30 V, może to spowodować uszkodzenie płyty Arduino. Technicznie można podnieść maksymalne napięcie pomiarowe tego obwodu, zmieniając wartości rezystorów i modyfikując program, ale dla pokazanej konfiguracji 30V jest limitem.

Aby uzyskać dokładny odczyt, wybierz stałe rezystory z minimalną wartością tolerancji, rezystory odgrywają ważną rolę w kalibracji odczytu napięcia.

Schemat obwodu:

Obwód woltomierza DC oparty na Arduino

Inną możliwością tego woltomierza jest to, że możemy zmodyfikować program, aby zautomatyzować niektóre zadania.

Na przykład, należy wykryć pełne napięcie akumulatora i odłączyć akumulator od ładowarki lub odłączyć akumulator, jeśli napięcie spadnie poniżej ustawionego poziomu itd. Zadanie to można wykonać nawet bez wyświetlacza LCD. Jednak jest to temat innego artykułu.

Program:

//--------Program developed by R.Girish---------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogInput = 0
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
int value = 0
void setup()
{
pinMode(analogInput, INPUT)
lcd.begin(16, 2)
lcd.print('DC VOLTMETER')
Serial.begin(9600)
}
void loop()
{
value = analogRead(analogInput)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin<0.10) {
vin=0.0
}
lcd.setCursor(0, 1)
lcd.print('INPUT V= ')
lcd.print(vin)
delay(500)
}
//--------Program developed by R.Girish---------//

Sprawdź odczyty za pomocą dobrego woltomierza / multimetru.




Poprzedni: Obwód blokady zapłonu samochodu Bluetooth - bezkluczykowa ochrona samochodu Dalej: Obwód alarmu bezpieczeństwa drzwi magnetycznych do ostrzegania o otwarciu drzwi