- Wymagany materiał
- Schemat obwodu
- Wykres słupkowy LED
- Program Arduino do monitorowania napięcia akumulatora:
- Działanie wskaźnika napięcia akumulatora
Akumulatory mają określony limit napięcia, a jeśli napięcie przekracza określone limity podczas ładowania lub rozładowywania, żywotność akumulatora ulega pogorszeniu lub skróceniu. Ilekroć korzystamy z projektu zasilanego bateryjnie, czasami musimy sprawdzić poziom napięcia baterii, czy trzeba ją naładować, czy wymienić. Ten obwód pomoże Ci monitorować napięcie baterii. Ten wskaźnik napięcia baterii Arduino wskazuje stan baterii za pomocą świecących diod LED na 10-segmentowym wykresie słupkowym LED w zależności od napięcia baterii. Pokazuje również napięcie baterii na wyświetlaczu LCD podłączonym do Arduino.
Wymagany materiał
- Arduino UNO
- 10-segmentowy wykres słupkowy LED
- LCD (16 * 2)
- Potencjometr-10k
- Rezystor (100 omów-10; 330 omów)
- Bateria (do przetestowania)
- Przewody łączące
- Adapter 12V do Arduino
Schemat obwodu
Wykres słupkowy LED
Wykres słupkowy LED ma standardowy rozmiar przemysłowy i niskie zużycie energii. Pasek jest podzielony na kategorie pod względem natężenia światła. Sam produkt pozostaje w wersji zgodnej z RoHS. Ma napięcie przewodzenia do 2,6 V. Straty mocy na segment wynoszą 65 mW. Temperatura robocza wykresu słupkowego LED wynosi od -40 ℃ do 80 ℃. Istnieje wiele aplikacji dla wykresów słupkowych LED, takich jak sprzęt audio, panele przyrządów i wyświetlacz cyfrowy.
Schemat pinów
Konfiguracja pinów
Program Arduino do monitorowania napięcia akumulatora:
Kompletny kod Arduino i demonstracje wideo jest podany na końcu tego artykułu. Tutaj wyjaśniliśmy kilka ważnych części kodu.
Tutaj definiujemy bibliotekę LCD i określamy wyprowadzenia LCD, które mają być używane z Arduino. Wejście analogowe pobierane jest ze styku A4 w celu sprawdzenia napięcia akumulatora. Ustawiliśmy wartość Float, aby uzyskać napięcie z dokładnością do dwóch miejsc po przecinku.
#zawierać
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // tablica numerów pinów, do których są podłączone diody LED int pinCount = 10; // liczba pinów (tj. długość tablicy)
Konfiguracja wyświetlacza LCD i pinów analogowych (A0, A1, A2, A3) jako pinów OUTPUT.
void setup () {Serial.begin (9600); // otwiera port szeregowy, ustawia szybkość transmisji danych na 9600 bps lcd.begin (16, 2); //// ustaw liczbę kolumn i wierszy LCD: pinMode (A0, OUTPUT); pinMode (A1, WYJŚCIE); pinMode (A2, WYJŚCIE); pinMode (A3, WYJŚCIE); pinMode (A4, WEJŚCIE); lcd.print ("Poziom napięcia"); }
Tutaj tworzymy funkcję do używania wykresu słupkowego LED w prosty sposób, możesz nawet zapalać diody LED, programując je pojedynczo, ale kod jest długi.
void LED_function (int stage) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } for (int i = 1, l = 2; i <= stage; i ++, l ++) {digitalWrite (l, HIGH); // opóźnienie (30); }} W tej części odczytaliśmy wartość napięcia za pomocą pinu analogowego. Następnie konwertujemy wartość analogową na cyfrową wartość napięcia, używając wzoru konwersji analogowo-cyfrowej i wyświetlając ją dalej na wyświetlaczu LCD.
// Wzór na konwersję napięcia analogValue = analogRead (A4); Serial.println (analogValue); opóźnienie (1000); napięcie_wejściowe = (wartość analogowa * 5,0) / 1024,0; lcd.setCursor (0, 1); lcd.print ("Napięcie ="); lcd.print (napięcie_wejściowe); Serial.println (napięcie_wejściowe); opóźnienie (100);
W zależności od wartości napięcia wejściowego postawiliśmy warunek sterowania diodami LED na wykresie słupkowym. Stan, który możesz sprawdzić poniżej w kodzie:
if (napięcie_wejściowe <0,50 && napięcie_wejściowe> = 0,00) {digitalWrite (2, HIGH); opóźnienie (30); digitalWrite (2, NISKI); opóźnienie (30); // gdy napięcie jest zerowe lub niskie, pierwsza dioda LED zasygnalizuje miganiem} else if (napięcie_wejściowe <1,00 && napięcie_wejściowe> = 0,50) {Funkcja_LED (2); } else if (napięcie_wejściowe <1,50 && napięcie_wejściowe> = 1,00) {Funkcja_LED (3); } else if (napięcie_wejściowe <2,00 && napięcie_wejściowe> = 1,50) {Funkcja_LED (4); } else if (napięcie_wejściowe <2,50 && napięcie_wejściowe> = 2,00) {Funkcja_LED (5); } else if (napięcie_wejściowe <3,00 && napięcie_wejściowe> = 2,50) {Funkcja_LED (6); } else if (napięcie_wejściowe <3,50 && napięcie_wejściowe> = 3,00) {Funkcja_LED (7); } else if (napięcie_wejściowe <4,00 && napięcie_wejściowe> = 3,50) {Funkcja_LED (8);} else if (napięcie_wejściowe <4,50 && napięcie_wejściowe> = 4,00) {Funkcja_LED (9); } else if (napięcie_wejściowe <5,00 && napięcie_wejściowe> = 4,50) {Funkcja_LED (10); }}
Działanie wskaźnika napięcia akumulatora
Wskaźnik napięcia akumulatora po prostu odczytuje wartość z pinu analogowego Arduino i konwertuje ją na wartość cyfrową za pomocą wzoru konwersji analogowo-cyfrowej (ADC). Ciężki Uno ADC ma rozmiar 10 bitów (czyli wartości całkowite od 0 - 2 ^ 10 = 1024 wartości). Oznacza to, że odwzoruje napięcia wejściowe z zakresu od 0 do 5 woltów na wartości całkowite z przedziału od 0 do 1023. Jeśli więc pomnożymy wartość wejściową anlogValue do (5/1024), otrzymamy cyfrową wartość napięcia wejściowego. Dowiedz się, jak korzystać z wejścia ADC w Arduino. Następnie wartość cyfrowa jest używana do odpowiedniego podświetlenia wykresu słupkowego LED.
Sprawdź również ten prosty monitor poziomu baterii bez mikrokontrolera