const int analogInPin = A0;  // Analog input pin 
float sensorValue = 0;        // value read from the pot
float outputValue = 0;
boolean charge_led = false;
void setup() 
{ 
  delay(10000);
  int led = 13;
  pinMode(36, OUTPUT);
  pinMode(37, OUTPUT);
  pinMode(32, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(34, OUTPUT);
  pinMode(35, OUTPUT);
  pinMode(45, OUTPUT); //charge
  digitalWrite(45, HIGH) ;
  pinMode(46, OUTPUT);
  pinMode(47, OUTPUT);
  
  pinMode(38, OUTPUT);
  pinMode(39, OUTPUT);
  pinMode(40, OUTPUT);
  pinMode(41, OUTPUT);
  pinMode(42, OUTPUT);
  pinMode(43, OUTPUT);
  Serial1.begin(9600);
  Serial1.flush();
  Serial.begin(9600);
  
}

void loop () {
  // read the analog in value:
  //sensorValue = analogRead(analogInPin);            
 // outputValue = map(sensorValue, 0, 1023, 0, 20);  
  // print the results to the serial monitor:
 // Serial.print("Voltage = " );                      
 // Serial.println(outputValue);  
  //delay(500); 
  
  if (charge_led) {
    
   digitalWrite(46, HIGH);
    digitalWrite(47, LOW);
    delay(300);
    digitalWrite(47, HIGH);
    digitalWrite(46, LOW);
    delay(300); 
  }
  
  
  if (Serial1.available() > 0)  { 
  int val = Serial1.read()-'0'; 
  
  
  if (val == 0)
    {
  for (int i=255; i > 0; i--){
    analogWrite(36, i);
  //digitalWrite(37, false);
  analogWrite(32, i);
 //digitalWrite(33, true);
 analogWrite(34, i);
 //digitalWrite(35, false);

 analogWrite(38, i);
  //digitalWrite(39, false);
  analogWrite(40, i);
  //digitalWrite(41, true);
  analogWrite(42, i);
  //digitalWrite(43, true); 
 //delay(200); 
   }

  
  }  
  
  
  
  
  
  
  
  
  if (val == 8)
    { 
  for (int i=0; i < 255; i++){
    analogWrite(36, i);
  digitalWrite(37, false);
  analogWrite(32, i);
  digitalWrite(33, true);
  analogWrite(34, i);
  digitalWrite(35, false);

 analogWrite(38, i);
  digitalWrite(39, false);
  analogWrite(40, i);
  digitalWrite(41, true);
  analogWrite(42, i);
  digitalWrite(43, true);
   }

  
  }  
  
  
  
  
  
  
  
  if (val == 2)
    { 
    for (int i=0; i < 255; i++){
    
    
    analogWrite(36, i);
  digitalWrite(37, true);
  analogWrite(32, i);
  digitalWrite(33, false);
  analogWrite(34, i);
  digitalWrite(35, true);

 analogWrite(38, i);
  digitalWrite(39, true);
  analogWrite(40, i);
  digitalWrite(41, false);
  analogWrite(42, i);
  digitalWrite(43, false);
   }
  }  
  
  
  
  
  
  if (val == 4)
    { 
  for (int i=0; i < 255; i++){
     analogWrite(36, i);
  digitalWrite(37, false);
  analogWrite(32, i);
  digitalWrite(33, true);
  analogWrite(34, i);
  digitalWrite(35, false);

 analogWrite(38, i);
  digitalWrite(39, true);
  analogWrite(40, i);
  digitalWrite(41, false);
  analogWrite(42, i);
  digitalWrite(43, false);
   }
  }  
  
  
  
  if (val == 6)
    { 
  for (int i=0; i <255; i++){
    analogWrite(36, i);
  digitalWrite(37, true);
  analogWrite(32, i);
  digitalWrite(33, false);
  analogWrite(34, i);
  digitalWrite(35, true);

 analogWrite(38, i);
  digitalWrite(39, false);
  analogWrite(40, i);
  digitalWrite(41, true);
  analogWrite(42, i);
  digitalWrite(43, true);
   }
  } 
  
  
  
  
  if (val == 7)
    {digitalWrite(46, HIGH);
    digitalWrite(47, HIGH);
  } 
  if (val == 9)
    {digitalWrite(46, LOW);
    digitalWrite(47, LOW);
  } 
  
  
  if (val == 1)
    {
      charge_led=true;
      digitalWrite(45, LOW);
    
    
  } 
  if (val == 3)
    {  charge_led= false;
      digitalWrite(45, HIGH);
    digitalWrite(47, LOW);
    digitalWrite(46, LOW);
  } 
  
  
  
  
  }
  //analogWrite(36, 255);
  //digitalWrite(37, false);
  //analogWrite(32, 255);
 // digitalWrite(33, true);
  //analogWrite(34, 255);
 // digitalWrite(35, false);
//
 // analogWrite(38, 255);
//  digitalWrite(39, true);
//  analogWrite(40, 255);
//  digitalWrite(41, false);
//  analogWrite(42, 255);
//  digitalWrite(43, false);
  
}
