Arduino Batteriindikator spänning (2 / 5 steg)
Steg 2: Arduino skiss
Ja, vill jag ladda upp denna skiss till Arduino först innan du ansluter den till ett batteri för att testa. Ladda upp detta visar ingenting innan du ansluta alla delar som behövs för detta projekt, men förr eller senare behöver du fortfarande ladda upp denna skiss. Jag vet inte vad som händer om du har ström från usb och från Vin samtidigt. Jag antar att det kommer att vara okej, Arduino designers måste ha tror denna möjlighet och förhindra denna makt konflikt. Men jag kommer aldrig prova på syftet och riskera min Arduino att få brända: P
I detta instructable, jag förklara inte om "hur du får din LCD displayen fungerar", men jag kommer att lämna några länkar här (som jag använder) för att få din LCD fungerar via I2C-anslutning:
- I2C LCD - installationsinstruktionerna för 16 x 2
- F Malpartida LCD bibliotek
- I2C Scanner
- SainSmart I2C LCD skärm 16 x 2
Skriva ut batterispänningen
16 x 2 LCD via I2C
med spänningsavdelare (2 x 10K resistor)
/*
Motstånd är justerade i serien.
Ena änden går till batteri - och också för Arduino GND
Den andra går till batteri + och också till Arduino Vin
Mitten (anslutning mellan två resistorer) går till Arduino A0
*/
#include < Wire.h >
#include < LCD.h >
#include < LiquidCrystal_I2C.h >
#define I2C_ADDR 0x27 //Add din adress här. Hitta det från I2C Scanner
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define led_pin 13
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
LCD.BEGIN (16,2); Min LCD var 16 x 2
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
LCD.Home (); Gå hem
pinMode (led_pin, produktionen);
digitalWrite (led_pin, låg);
}
void loop()
{
printVolts();
}
void printVolts()
{
int sensorValue = analogRead(A0); läsa värdet A0 pin
flyta spänning = sensorValue * (5.00 / 1023.00) * 2; konvertera värdet till en sann spänning.
lcd.setCursor(0,0);
LCD.Print ("spänning =");
LCD.Print(Voltage); skriva ut spänningen till LCD
LCD.Print ("V");
om (spänning < 6,50) //set spänningen låg batterinivå här
{
digitalWrite (led_pin, hög);
}
}