- Nødvendig materiale
- Kretsdiagram
- LED-søylediagram
- Arduino-program for batterispenningsovervåking:
- Arbeid med batterispenningsindikator
Batteriene kommer med en viss spenningsgrense, og hvis spenningen går utover de foreskrevne grensene under lading eller utlading, blir batteriets levetid påvirket eller redusert. Hver gang vi bruker et batteridrevet prosjekt, må vi noen ganger sjekke batteriets spenningsnivå, enten det er nødvendig å lade eller skifte ut. Denne kretsen hjelper deg med å overvåke batteriets spenning. Denne Arduino-batterispenningsindikatoren indikerer batteriets status ved å lyse lysdioder på en 10-segment LED-stolpediagram i henhold til batterispenningen. Det viser også batterispenningen din på LCD-skjermen som er koblet til Arduino.
Nødvendig materiale
- Arduino UNO
- 10-segment LED stolpediagram
- LCD (16 * 2)
- Potensiometer-10k
- Motstand (100ohm-10; 330ohm)
- Batteri (skal testes)
- Koble ledninger
- 12v adapter for Arduino
Kretsdiagram
LED-søylediagram
LED-stolpediagrammet kommer i industriell standardstørrelse med lavt strømforbruk. Stangen er kategorisert for lysstyrke. Selve produktet forblir i RoHS-kompatibel versjon. Den har en fremoverspenning på opptil 2,6v. Effektavfallet per segment er 65mW. Driftstemperaturen til LED-søylediagrammet er -40 ℃ til 80 ℃. Det er mange applikasjoner for LED-søylediagrammet som lydutstyr, instrumentpaneler og digital avlesningsskjerm.
Pin Diagram
Pin-konfigurasjon
Arduino-program for batterispenningsovervåking:
Den komplette Arduino-koden og demonstrasjonsvideoen er gitt på slutten av denne artikkelen. Her har vi forklart noen viktige deler av koden.
Her definerer vi LCD-biblioteket og spesifiserer LCD-pinner som skal brukes med Arduino. Den analoge inngangen er hentet fra pin A4 for å sjekke batterispenningen. Vi har satt verdien som Float for å få spenningen opp til to desimaler.
#inkludere
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // en rekke pin-tall som lysdioder er festet til int pinCount = 10; // antall pinner (dvs. lengden på matrisen)
Sette opp LCD og analoge pinner (A0, A1, A2, A3) som OUTPUT-pinner.
ugyldig oppsett () {Serial.begin (9600); // åpner seriell port, setter datahastighet til 9600 bps lcd.begin (16, 2); //// sette opp LCD-skjermens antall kolonner og rader: pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); pinMode (A3, OUTPUT); pinMode (A4, INPUT); lcd.print ("Voltage Level"); }
Her lager vi en funksjon for å bruke LED-stolpediagrammet til å bruke på en enkel måte, du kan til og med gløde LED-ene ved å programmere dem en etter en, men koden blir lang.
ugyldig LED_funksjon (int-trinn) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } for (int i = 1, l = 2; i <= scene; i ++, l ++) {digitalWrite (l, HIGH); // forsinkelse (30); }} I denne delen har vi lest spenningsverdien ved hjelp av den analoge pinnen. Deretter konverterer vi den analoge verdien til en digital spenningsverdi ved å bruke formelen for analog til digital konvertering og vise den videre på LCD.
// Konverteringsformel for spenning analogValue = analogRead (A4); Serial.println (analogValue); forsinkelse (1000); input_voltage = (analogValue * 5.0) / 1024.0; lcd.setCursor (0, 1); lcd.print ("Voltage ="); lcd.print (input_voltage); Serial.println (input_voltage); forsinkelse (100);
I henhold til verdien av inngangsspenningen har vi gitt noen forutsetninger for å kontrollere LED-stolpediagram-LEDene. Tilstanden du kan sjekke nedenfor i koden:
hvis (input_voltage <0.50 && input_voltage> = 0.00) {digitalWrite (2, HIGH); forsinkelse (30); digitalWrite (2, LAV); forsinkelse (30); // når spenningen er null eller lav, vil første LED indikere ved å blinke} annet hvis (input_voltage <1.00 && input_voltage> = 0.50) {LED_function (2); } annet hvis (input_voltage <1.50 && input_voltage> = 1.00) {LED_function (3); } annet hvis (input_voltage <2.00 && input_voltage> = 1.50) {LED_function (4); } ellers hvis (input_voltage <2.50 && input_voltage> = 2.00) {LED_function (5); } annet hvis (input_voltage <3.00 && input_voltage> = 2.50) {LED_function (6); } annet hvis (input_voltage <3.50 && input_voltage> = 3.00) {LED_function (7); } annet hvis (input_voltage <4.00 && input_voltage> = 3.50) {LED_function (8);} ellers hvis (input_voltage <4.50 && input_voltage> = 4.00) {LED_function (9); } ellers hvis (input_voltage <5.00 && input_voltage> = 4.50) {LED_function (10); }}
Arbeid med batterispenningsindikator
Batterispenningsindikator les bare verdien fra Arduino Analog pin og konverter den til en digital verdi ved å bruke formelen Analog til Digital Conversion (ADC). Den Arduino Uno ADC er av 10-bits oppløsning (slik de heltallige verdier fra 0 - 2 ^ 10 = 1024 verdier). Dette betyr at den vil kartlegge inngangsspenninger mellom 0 og 5 volt i heltall mellom 0 og 1023. Så hvis vi multipliserer inngang anlogValue til (5/1024), så får vi den digitale verdien av inngangsspenning. Lær her hvordan du bruker ADC-innganger i Arduino. Deretter brukes den digitale verdien til å gløde LED-søylediagrammet tilsvarende.
Sjekk også denne enkle batterinivåmonitoren uten mikrokontroller