int CDS_socket = 4; //analogPin setting for CDS
//-------------------------------------------------------------
void setup() {
Serial.begin(9600);
pinMode(4,OUTPUT); //CDS. in case of charging, lightning Green LED
pinMode(5,OUTPUT); //CDS. in case of stopping charging, lightning Red LED
pinMode(6,OUTPUT); // output( Battery 1 OUT)
pinMode(7,OUTPUT); // output( Battery 2 OUT)
pinMode(8,OUTPUT); // Fan Motor
pinMode(9,OUTPUT); //CDS. in case of charging, No using pin
pinMode(10,OUTPUT); //charging output BAT 1
pinMode(11,OUTPUT); // charging output BAT 2
// pinMode(12,OUTPUT); // charging output BAT 3 no using
// pinMode(13,OUTPUT); // charging output BAT 4 no using
}
void loop() {
//****************************************************************************
float value; // Setting Voltage
value= 13.2; // Setting Reference Battery voltage ****
float CDS_v;
CDS_v= 4.0; // Setting Reference CDS Voltage(3.5 to 5V)****
float degree;
degree= 28.0; //Setting Fan Motor driving
//*****************************************************************************
digitalWrite(4,LOW); //Cds sensor (Stop Main Solar Charging )
digitalWrite(5,LOW); // CDS. RED LED Lightning
digitalWrite(8,LOW); // Stoping Fan Motor
digitalWrite(9,LOW); //Cds sensor No using Pin
digitalWrite(10,LOW); // Stop Charging BAT1
digitalWrite(11,LOW); // Stop Charging BAT2
// digitalWrite(12,LOW); // Stop Charging BAT3
//digitalWrite(13,LOW); // Stop Charging BAT4
delay(10000); // waiting 10 minutes
//----------------------------------------------------------------------------
int analog_val;
float input_volt;
String message=" ";
analog_val = analogRead(CDS_socket); // socket 4 (analog pin)
input_volt=float (analog_val)*(5./1023); // input= 0 to 5V
if(input_volt>CDS_v){ //more than CDS****
message=" Soaler Charging now: ";
digitalWrite(4,HIGH); // In case of charging, lightning Green LED.
}else if(input_volt<CDS_v){
message="Stop Soaler Charging: "; //CDS
digitalWrite(5,HIGH); // In case of Stop charging, lightning Red LED.
goto label; // ----------- To label *****
}
Serial.println(" "); // Title display
Serial.println(" ");
Serial.print(" CDS Voltage "); //CDS
Serial.print(message); //CDS
Serial.print(input_volt); //CDS
Serial.print(" V"); //CDS
Serial.print(" ( CDS Setting Voltage is more than ");
Serial.print(CDS_v);
Serial.println(" v ) ");
delay(500);
Serial.print("No Voltage States of Charging");
Serial.print( " ( Setting Voltage of Each Battery is more than " );
Serial.print(value);
Serial.println(" v )");
//---------------------------------------------------------------
float battery_v[2]; // Measurement Each Voltage
for(int i=0;i<2;i++){ // i = 0 to 1
float convert_v=analogRead(i)*5./1024;
battery_v[i]=convert_v/30*130;
delay(1000);
Serial.println("------------------------------------------------------------------- ");
Serial.print(i+1); // Serial display ( i = 1 to 2 )
Serial.print(" is ");
Serial.print(battery_v[i]);
Serial.print(" V ");
delay(800);
if (battery_v[0]<value) { // Voltage Setting value
digitalWrite(10,HIGH);
Serial.print( " 1= Charge ");
}else{
Serial.print( " 1= Stop ");
}
if (battery_v[1]<value){
digitalWrite(11,HIGH);
Serial.print(" 2= Charge ");
}else{
Serial.print( " 2= Stop ");
}
Serial.println(" ");
}
label: //--------- Coming from "goto" *****
if(input_volt<CDS_v){ // Less than CDS
Serial.println("------------------------------------------------------------------ ");
Serial.println("Stop Charging all Batteries Because of DARK.");
Serial.print( " ( Setting Voltage of Each Battery is more than " );
Serial.print(value);
Serial.println(" v )");
Serial.print(" ( CDS Setting Voltage is more than ");
Serial.print(CDS_v);
Serial.println(" v ) ");
Serial.println("Status of Each Battery");
for(int i=0;i<2;i++){
float convert_v=analogRead(i)*5./1024;
battery_v[i]=convert_v/30*130;
delay(1000);
Serial.print(i+1); // Serial display
Serial.print(" is ");
Serial.print(battery_v[i]);
Serial.println(" V ");
delay(100);
}
Serial.println("--------------------------------------------------------------------");
}
//------------------------------------------------------------------------------------
int val =analogRead(A5); // Getiing tempareture now
float volt = map(val,0,1023,0,5000); //0 to 1023 0 to 5000
float temp = map(volt,300,1600,-30,100);
Serial.print("Celsius = ");
Serial.print(temp ); // Tempareture
Serial.println(" C");
delay(1000);
//-------------------------------------------------------------------------
if (temp>degree){ // Setting Fan Motor
digitalWrite( 8,HIGH);
Serial.println("Fan Motor Driving, Because of High temp more than 28 degrees");
}else {
digitalWrite( 8,LOW);
Serial.println("Fan Motor Stopping, Because of Low temp less than 28 degrees");
}
delay(1000);
//------------------------------------------------------------------------
//Getting highest voltage, Batterry's No.(0 to 1)
for(int i=0;i<2;i++){ // i = 0 to 1
float convert_v=analogRead(i)*5./1024;
battery_v[i]=convert_v/30*130;
delay(1000);
if (battery_v[0]>battery_v[1]){ //Battery1 HIGH (DC12V OUTPUT)
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
Serial.println("OUTPUT(DC12V) = BATTERY 1 ");
break;
}else if(battery_v[0]<=battery_v[1]){
digitalWrite( 6,LOW); //Battery2 HIGH (DC12V OUTPUT)
digitalWrite( 7,HIGH);
Serial.println("OUTPUT(DC12V) = BATTERY 2 ");
break;
}
}
//------------------------------------------------------------------------------------
delay(15*60*1000UL); // Waiting for 15 minutes
} // To looping
//Reference Materials Analog Pin
// analogRead(0) = Battery 1
// analogRead(1) = Battery 2
// analogRead(2) = Battery 3 Now,no using
// analogRead(3) = Battery 4 Now,no using
// analogRead(4) = CDS voltage
// analogRead(5) = LM61BIZ Temp voltage
//Reference Materials Digital Pin
// digital Pin 4 = For CDS.in case of charging, lightning GREEN LED
// digital Pin 5 = For CDS. in case of stop charging, lightning RED LED
// digital Pin 6 = DC12V OUTPUT (From Battery 1)
// digital Pin 7 = DC12V OUTPUT (From Battery 2)
// digital Pin 8 = Temp Fan Motor & YELLOW LED
// digital Pin 9 = For CDS.in case of charging, No using Pin
// digital Pin 10 =Solar input (Battery 1)
// digital Pin 11 =Solar input (Battery 2)
// digital Pin 12 =Now, no using.
// digital Pin 13 =Now, no using.