元に戻る




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.