#include <LiquidCrystal.h>
int RS = 8, E = 9, D4 = 4, D5 = 5, D6 = 6, D7 = 7;
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
unsigned long oncekiZaman = 0; // Son işlem zamanı
const unsigned long aralik = 3000; // 1 saniye = 1000 ms
#define bat1 A0
#define bat2 A1
#define bat3 A2
#define bat4 A3
#define b1g 13
#define b2g 12
#define b3g 11
#define b4g 10
#define buton 2
#define buzzer A5
bool sure = false;
float d1=0.0;
float d2=0.0;
float d3=0.0;
float d4=0.0;
int durum1=0;
int durum2=0;
int durum3=0;
int durum4=0;
int art=0;
int lionmin=580;
int lionmax=850;
byte ozel1[8] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01};
byte ozel2[8] = { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10};
byte olu[8] = {0x00,0x00,0x0A,0x00,0x00,0x0E,0x11,0x00};
///////////////////////////////////////////////////////////////
void setup() {
lcd.begin(16, 2);
lcd.setCursor(2, 0);
lcd.print("Designed by");
lcd.setCursor(0, 1);
lcd.print(" Seyfi S. CAKIR");
delay(1000);
pinMode(b1g,OUTPUT);
pinMode(b2g,OUTPUT);
pinMode(b3g,OUTPUT);
pinMode(b4g,OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(buton,INPUT_PULLUP);
lcd.createChar(0, ozel1);
lcd.createChar(1, ozel2);
lcd.createChar(2, olu);
lcd.clear();
//attachInterrupt(0,kesme,FALLING);
}
void buz(){
tone(buzzer,300);
delay(200);
noTone(buzzer);
delay(200);
}
/////////////////////////////////////////////////////////////////
void loop() {
if(digitalRead(buton)==0){
lcd.clear();
lcd.setCursor(7, 0);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(7, 1);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0, 0);
lcd.print("1C=");
d1=analogRead(bat1);
lcd.print(d1/1023*5);
lcd.setCursor(9, 0);
lcd.print("2C=");
d2=analogRead(bat2);
lcd.print(d2/1023*5);
lcd.setCursor(0, 1);
lcd.print("3C=");
d3=analogRead(bat3);
lcd.print(d3/1023*5);
lcd.setCursor(9, 1);
lcd.print("4C=");
d4=analogRead(bat4);
lcd.print(d4/1023*5);
delay(1000);
}
else{
unsigned long simdikiZaman = millis();
if ((simdikiZaman - oncekiZaman) > aralik) {
oncekiZaman = simdikiZaman;
lcd.clear();
lcd.setCursor(7, 0);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(7, 1);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0, 0);
lcd.print("1C=");
d1=analogRead(bat1);
lcd.print(d1/1023*5);
lcd.setCursor(9, 0);
lcd.print("2C=");
d2=analogRead(bat2);
lcd.print(d2/1023*5);
lcd.setCursor(0, 1);
lcd.print("3C=");
d3=analogRead(bat3);
lcd.print(d3/1023*5);
lcd.setCursor(9, 1);
lcd.print("4C=");
d4=analogRead(bat4);
lcd.print(d4/1023*5);
delay(1000);
lcd.clear();
}
lcd.setCursor(7, 0);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(7, 1);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0, 0);
lcd.print("1Ch%");
lcd.setCursor(4, 0);
lcd.print(durum1);
lcd.setCursor(9, 0);
lcd.print("2Ch%");
lcd.setCursor(13, 0);
lcd.print(durum2);
lcd.setCursor(0, 1);
lcd.print("3Ch%");
lcd.setCursor(4, 1);
lcd.print(durum3);
lcd.setCursor(9, 1);
lcd.print("4Ch%");
lcd.setCursor(13, 1);
lcd.print(durum4);
durum1=map(analogRead(bat1),lionmin,lionmax,0,100);
durum2=map(analogRead(bat2),lionmin,lionmax,0,100);
durum3=map(analogRead(bat3),lionmin,lionmax,0,100);
durum4=map(analogRead(bat4),lionmin,lionmax,0,100);
//////////////////////////////////1.BATARYA///////////////////////
if(durum1>99){
durum1=100;
//lcd.setCursor(4, 0);
//lcd.print(durum1);
digitalWrite(b1g,1);
//buz();
}
else if(durum1>0&&durum1<100){
//lcd.setCursor(4, 0);
//lcd.print(durum1);
digitalWrite(b1g,0);
}
else if(durum1<0&&durum1>-180){
durum1=0;
//lcd.setCursor(4, 0);
//lcd.print(durum1);
digitalWrite(b1g,0);
}
else{
durum1=0;
//lcd.setCursor(4, 0);
//lcd.print(durum1);
digitalWrite(b1g,0);
delay(200);
digitalWrite(b1g,1);
delay(200);
}
//////////////////////////////////2.BATARYA///////////////////////
if(durum2>99){
durum2=100;
//lcd.setCursor(13, 0);
//lcd.print(durum2);
digitalWrite(b2g,1);
//buz();
}
else if(durum2>0&&durum2<100){
//lcd.setCursor(13, 0);
//lcd.print(durum2);
digitalWrite(b2g,0);
}
else if(durum2<0&&durum2>-180){
durum2=0;
//lcd.setCursor(13, 0);
//lcd.print(durum2);
digitalWrite(b2g,0);
}
else{
durum2=0;
//lcd.setCursor(13, 0);
//lcd.print(durum2);
digitalWrite(b2g,0);
delay(200);
digitalWrite(b2g,1);
delay(200);
}
//////////////////////////////////3.BATARYA///////////////////////
if(durum3>99){
durum3=100;
//lcd.setCursor(4, 1);
//lcd.print(durum3);
digitalWrite(b3g,1);
//buz();
}
else if(durum3>0&&durum3<100){
//lcd.setCursor(4, 1);
//lcd.print(durum3);
digitalWrite(b3g,0);
}
else if(durum3<0&&durum3>-180){
durum3=0;
//lcd.setCursor(4, 1);
//lcd.print(durum3);
digitalWrite(b3g,0);
}
else{
durum3=0;
//lcd.setCursor(4, 1);
//lcd.print(durum3);
digitalWrite(b3g,0);
delay(200);
digitalWrite(b3g,1);
delay(200);
}
//////////////////////////////////4.BATARYA///////////////////////
if(durum4>99){
durum4=100;
//lcd.setCursor(13, 1);
//lcd.print(durum4);
digitalWrite(b4g,1);
//buz();
}
else if(durum4>0&&durum4<100){
//lcd.setCursor(13, 1);
//lcd.print(durum4);
digitalWrite(b4g,0);
}
else if(durum4<0&&durum4>-180){
durum4=0;
//lcd.setCursor(13, 1);
//lcd.print(durum4);
digitalWrite(b4g,0);
}
else{
durum4=0;
//lcd.setCursor(13, 1);
//lcd.print(durum4);
digitalWrite(b4g,0);
delay(200);
digitalWrite(b4g,1);
delay(200);
}
}
}