- Materiaal vereist
- Schakelschema
- LED-staafdiagram
- Arduino-programma voor bewaking van batterijspanning:
- Werking van de batterijspanningsindicator
Batterijen hebben een bepaalde spanningslimiet en als de spanning de voorgeschreven limieten overschrijdt tijdens het opladen of ontladen, wordt de levensduur van de batterij beïnvloed of verkort. Telkens wanneer we een project op batterijen gebruiken, moeten we soms het spanningsniveau van de batterij controleren, of het nodig is om te worden opgeladen of vervangen. Dit circuit helpt u om de spanning van uw batterij te controleren. Deze Arduino-batterijspanningsindicator geeft de status van de batterij aan door middel van oplichtende LED's op een 10-segment LED-staafdiagram volgens de batterijspanning. Het toont ook uw accuspanning op het LCD-scherm dat op de Arduino is aangesloten.
Materiaal vereist
- Arduino UNO
- 10 segmenten LED-staafdiagram
- LCD (16 * 2)
- Potentiometer-10k
- Weerstand (100ohm-10; 330ohm)
- Batterij (te testen)
- Draden aansluiten
- 12v adapter voor Arduino
Schakelschema
LED-staafdiagram
Het LED-staafdiagram wordt geleverd in industriële standaardafmetingen met een laag stroomverbruik. De balk is gecategoriseerd voor lichtsterkte. Het product zelf blijft binnen de RoHS-compatibele versie. Het heeft een doorlaatspanning van maximaal 2,6 V. Het vermogensverlies per segment is 65mW. De bedrijfstemperatuur van het LED-staafdiagram is -40 ℃ tot 80 ℃. Er zijn veel toepassingen voor de LED-staafgrafiek, zoals audioapparatuur, instrumentenpanelen en digitale uitlezing.
Pin diagram
Pin-configuratie
Arduino-programma voor bewaking van batterijspanning:
De volledige Arduino-code en demonstratievideo vindt u aan het einde van dit artikel. Hier hebben we enkele belangrijke onderdelen van de code uitgelegd.
Hier definiëren we de LCD-bibliotheek en specificeren we de pinnen van het LCD-scherm die met de Arduino moeten worden gebruikt. De analoge ingang is afkomstig van pin A4 voor het controleren van de accuspanning. We hebben de waarde ingesteld als Float om de spanning tot twee decimalen te krijgen.
# omvatten
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // een reeks pincodes waaraan LED's zijn bevestigd int pinCount = 10; // het aantal pinnen (dwz de lengte van de array)
LCD en de analoge pinnen (A0, A1, A2, A3) instellen als OUTPUT-pinnen.
void setup () {Serial.begin (9600); // opent seriële poort, stelt datasnelheid in op 9600 bps lcd.begin (16, 2); //// stel het aantal kolommen en rijen van het LCD-scherm in: pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); pinMode (A3, UITGANG); pinMode (A4, INPUT); lcd.print ("Voltage Level"); }
Hier maken we een functie om de LED-staafdiagram op een eenvoudige manier te gebruiken, je kunt zelfs de LED's laten gloeien door ze een voor een te programmeren, maar de code wordt lang.
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); // vertraging (30); }} In dit deel hebben we de spanningswaarde afgelezen met behulp van de analoge pin. Vervolgens zetten we de analoge waarde om in een digitale spanningswaarde door de analoog naar digitaal conversieformule te gebruiken en deze verder op het LCD-scherm weer te geven.
// Conversieformule voor spanning analogValue = analogRead (A4); Serial.println (analogValue); vertraging (1000); input_voltage = (analogValue * 5.0) / 1024.0; lcd.setCursor (0, 1); lcd.print ("Voltage ="); lcd.print (input_voltage); Serial.println (input_voltage); vertraging (100);
Volgens de waarde van de ingangsspanning hebben we een voorwaarde gegeven om de LED-staafdiagram-LED's te regelen. De toestand die u hieronder in de code kunt controleren:
if (input_voltage <0.50 && input_voltage> = 0.00) {digitalWrite (2, HIGH); vertraging (30); digitalWrite (2, LOW); vertraging (30); // als de spanning nul of laag is, zal de 1e LED door knipperen} anders aangeven als (input_voltage <1.00 && input_voltage> = 0.50) {LED_function (2); } else if (input_voltage <1.50 && input_voltage> = 1.00) {LED_function (3); } else if (input_voltage <2.00 && input_voltage> = 1.50) {LED_function (4); } else if (input_voltage <2.50 && input_voltage> = 2.00) {LED_function (5); } else if (input_voltage <3.00 && input_voltage> = 2.50) {LED_function (6); } else if (input_voltage <3.50 && input_voltage> = 3.00) {LED_function (7); } else if (input_voltage <4.00 && input_voltage> = 3.50) {LED_function (8);} else if (input_voltage <4.50 && input_voltage> = 4.00) {LED_function (9); } else if (input_voltage <5.00 && input_voltage> = 4.50) {LED_function (10); }}
Werking van de batterijspanningsindicator
Accuspanningsindicator lees gewoon de waarde van de Arduino Analog-pin en converteer deze naar een digitale waarde met behulp van de Analog to Digital Conversion (ADC) -formule. De Arduino Uno ADC heeft een 10-bit resolutie (dus de gehele getallen van 0 - 2 ^ 10 = 1024 waarden). Dit betekent dat het ingangsspanningen tussen 0 en 5 volt zal omzetten in gehele waarden tussen 0 en 1023. Dus als we de input anlogValue vermenigvuldigen met (5/1024), dan krijgen we de digitale waarde van de ingangsspanning. Leer hier hoe u ADC-invoer in Arduino gebruikt. Vervolgens wordt de digitale waarde gebruikt om de LED-staafdiagram dienovereenkomstig te laten gloeien.
Controleer ook deze eenvoudige batterijniveau-monitor zonder enige microcontroller