- Nødvendigt materiale
- Kredsløbsdiagram
- LED-søjlediagram
- Arduino-program til overvågning af batterispænding:
- Arbejde med batterispændingsindikator
Batterier leveres med en bestemt spændingsgrænse, og hvis spændingen går ud over de foreskrevne grænser under opladning eller afladning, påvirkes eller reduceres batteriets levetid. Når vi bruger et batteridrevet projekt, skal vi nogle gange kontrollere batterispændingsniveauet, uanset om det er nødvendigt at oplade eller udskifte det. Dette kredsløb hjælper dig med at overvåge spændingen på dit batteri. Denne Arduino-batterispændingsindikator angiver batteriets status ved at lyse lysdioder på en 10-segment LED-søjlediagram i henhold til batterispændingen. Det viser også din batterispænding på LCD'et, der er tilsluttet Arduino.
Nødvendigt materiale
- Arduino UNO
- 10-segment LED-søjlediagram
- LCD (16 * 2)
- Potentiometer-10k
- Modstand (100ohm-10; 330ohm)
- Batteri (testes)
- Tilslutning af ledninger
- 12v adapter til Arduino
Kredsløbsdiagram
LED-søjlediagram
LED-søjlediagrammet leveres i industriel standardstørrelse med et lavt strømforbrug. Linjen er kategoriseret efter lysstyrke. Selve produktet forbliver i RoHS-kompatibel version. Det har en fremadspænding på op til 2,6 v. Effektafledningen pr. Segment er 65mW. Driftstemperaturen for LED-søjlediagrammet er -40 ℃ til 80 ℃. Der er mange applikationer til LED-søjlediagram som lydudstyr, instrumentpaneler og digital aflæsningsskærm.
Pin diagram
Pin-konfiguration
Arduino-program til overvågning af batterispænding:
Den komplette Arduino-kode og demonstrationsvideo findes i slutningen af denne artikel. Her har vi forklaret nogle vigtige dele af koden.
Her definerer vi LCD-biblioteket og specificerer LCD-ben, der skal bruges sammen med Arduino. Den analoge indgang er taget fra pin A4 til kontrol af batterispændingen. Vi har indstillet værdien som Float for at få spændingen op til to decimaler.
#omfatte
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // en række pin-numre, til hvilke lysdioder er knyttet int pinCount = 10; // antallet af ben (dvs. længden på arrayet)
Opsætning af LCD og de analoge ben (A0, A1, A2, A3) som OUTPUT-ben.
ugyldig opsætning () {Serial.begin (9600); // åbner seriel port, indstiller datahastigheden til 9600 bps lcd.begin (16, 2); //// opsæt LCD's antal kolonner og rækker: pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); pinMode (A3, OUTPUT); pinMode (A4, INPUT); lcd.print ("Spændingsniveau"); }
Her laver vi en funktion til brug af LED-søjlediagrammet til at bruge på en enkel måde, du kan endda gløde LED'erne ved at programmere dem en efter en, men koden bliver lang.
ugyldig LED_funktion (int-trin) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } for (int i = 1, l = 2; i <= trin; i ++, l ++) {digitalWrite (l, HIGH); // forsinkelse (30); }} I denne del har vi læst spændingsværdien ved hjælp af den analoge pin. Derefter konverterer vi den analoge værdi til en digital spændingsværdi ved hjælp af den analoge til digitale konverteringsformel og viser den yderligere på LCD.
// Konverteringsformel for spænding analogValue = analogRead (A4); Serial.println (analogVærdi); 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 værdien af indgangsspændingen har vi givet en vis betingelse for at kontrollere LED-søjlediagram-LED'erne. Den tilstand, du kan kontrollere nedenfor i koden:
hvis (input_voltage <0,50 && input_voltage> = 0,00) {digitalWrite (2, HIGH); forsinkelse (30); digitalWrite (2, LAV); forsinkelse (30); // når spændingen er nul eller lav, vil den første LED indikere ved at blinke} ellers hvis (input_voltage <1.00 && input_voltage> = 0.50) {LED_function (2); } ellers hvis (input_voltage <1.50 && input_voltage> = 1.00) {LED_function (3); } ellers 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); } ellers hvis (input_voltage <3.00 && input_voltage> = 2.50) {LED_function (6); } ellers hvis (input_voltage <3.50 && input_voltage> = 3.00) {LED_function (7); } ellers 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); }}
Arbejde med batterispændingsindikator
Batterispændingsindikator læs bare værdien fra Arduino Analog pin og konverter den til en digital værdi ved hjælp af Analog til Digital Conversion (ADC) formlen. Den Arduino Uno ADC er af 10-bit opløsning (så de heltalsværdier fra 0 - 2 ^ 10 = 1024 værdier). Det betyder, at det vil kortlægge indgangsspændinger mellem 0 og 5 volt i heltalsværdier mellem 0 og 1023. Så hvis vi multiplicerer input anlogValue til (5/1024), så får vi den digitale værdi af indgangsspænding. Lær her, hvordan du bruger ADC-input i Arduino. Derefter bruges den digitale værdi til at lyse LED-søjlediagrammet i overensstemmelse hermed.
Tjek også denne enkle batteriniveauovervågning uden nogen mikrocontroller