Сегодня с manu_245 допилили код под педаль тормоза в целом работает как и задумывалось есть правда пару задержек но я отписываюсь сейчас так как код уже достаточно сильно изменится и я хочу выкинуть его переходную версию что бы он был сохранен

строки которые мы добавили для работы педали
PHP код:
  if(stopflag && digitalRead(2)==LOW && digitalRead(4)==LOW && startflag
         
)  
         
        {
         
        
digitalWrite(Start, HIGH);   
    
delay(100); 
 
digitalWrite(Start, LOW);  
 
flag=false; 
  
startflag=false;
          
digitalWrite(Mute, LOW);   
          
c=0;  
        }  
     
    if ( (
digitalRead(2)==HIGH && !startflag) || digitalRead(4)==HIGH)
    
startflag=true; 




и весь код в сборе:
PHP код:
#include <MsTimer2.h> 




#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(11, 12); // RX, TX 
char c;  

int  Mute = 19;  // Pin 19 - Mute    
int  Start = 18;  // Pin 18 - Start     
int  Stopi = 17;  // Pin 17 - Stop     
int  Opening = 15;  // Pin 15 - Open    
int  Light = 16;  // Pin 16 - Light    
int  Lampbattery = 4;  
int  Stopisignal = 2;  
int  Speedisensor = 3;  
int  tick = 0 ; 
byte com = 0; //reply from voice recognition    



boolean running = false;    
boolean flag=false;  
boolean stopflag=true; 
boolean a=false; 
boolean startflag=true;

void Time()  
{  
  
tick++;  
}  
void flash()  
{  
  if(
tick<2){stopflag=true;}  
  else {
stopflag=false;}  
  
tick=0;   
}   

void setup() {    

  
// initialize the digital pins as output    
  
pinMode(Mute, OUTPUT);    
  
pinMode(Start, OUTPUT);    
  
pinMode(Stopi, OUTPUT);    
  
pinMode(Opening, OUTPUT);    
  
pinMode(Light, OUTPUT);  
   
pinMode(Lampbattery, INPUT);  
  
digitalWrite(Lampbattery, HIGH);  
  
pinMode(Stopisignal, INPUT);  
  
digitalWrite(Stopisignal, HIGH);  
  
pinMode(Speedisensor, INPUT);  
 
digitalWrite (Speedisensor, HIGH);  
  
attachInterrupt(1, Time, FALLING);  
 
MsTimer2::set(500, flash);  
  
MsTimer2::start();  
   
 
flag=true;  
    
digitalWrite(Mute, HIGH); 

BTSerial.begin(9600); 
  
Serial.begin(9600);     // Start serial communication at 9600bps   
 
delay(2000);    
 
Serial.write(0xAA);   
Serial.write(0x37);    
delay(1000);    
Serial.write(0xAA);    
Serial.write(0x21);    
}    


void loop()    // run over and over again    
{  
   
   if(
stopflag && digitalRead(2)==LOW && digitalRead(4)==LOW && startflag
         
)  
         
        {
         
        
digitalWrite(Start, HIGH);   
    
delay(100); 
 
digitalWrite(Start, LOW);  
 
flag=false; 
  
startflag=false;
          
digitalWrite(Mute, LOW);   
          
c=0;  
        }  
     
    if ( (
digitalRead(2)==HIGH && !startflag) || digitalRead(4)==HIGH)
    
startflag=true;
     
     
     
     if (
BTSerial.available())  
   { 
   
c = (char)BTSerial.read();  
    
Serial.println(c); 
   
  if (
c == '1' && !flag) 
  { 
         
flag=true;    
     
digitalWrite(Mute, HIGH);   
     
c=0; 
     } 
      
      
      switch(
c)   
      { 
        case 
50: 
      if (
stopflag) 
     {  
      
digitalWrite(Opening, HIGH);   
  
delay(700);   
  
digitalWrite(Opening, LOW);   
  
delay(1000); 
  
flag=false;   
          
digitalWrite(Mute, LOW);   
          
com=0; 
            break; 
     }  
     case 
51:   
          
running = !running;     
          
digitalWrite(Light, running);   
          
flag=false;   
          
digitalWrite(Mute, LOW);   
          
com=0;   
        break;   
      
      } 
      
           
      
     if(
flag)  
     {   
     switch(
c)   
     {   
       case 
49:  
          
flag=false;  
          
digitalWrite(Mute, LOW);  
          
c=0; 
          break;  
          } 
          } 
   
      
      
      
      
      
  } 
   
  
   
   
   
   
  
  if (
digitalRead(4)==LOW)  
  {  
    
a=false;  
    
flag=true;  
    
digitalWrite(Mute, HIGH); 
  }  
  if (
digitalRead(4)==HIGH && !a)  
  {  
    
a=true;  
    
flag=false;  
    
delay(1000); 
    
digitalWrite(Mute, LOW);  
  }    

  

      
    
  
if(
Serial.available())     
{     
  
com = Serial.read();   
  if(
com==0x13 && !flag)   
  {   
     
flag=true;    
     
digitalWrite(Mute, HIGH);   
     
com=0;  
  } 
   

  
  if(
flag)   
  {   
     switch(
com)   
     {   
        case 
0x15:   
          
running = !running;     
          
digitalWrite(Light, running);   
          
flag=false;   
          
digitalWrite(Mute, LOW);   
          
com=0;   
        break;   
          
          
        case 
0x11:  
        if(
stopflag && digitalRead(2)==LOW && digitalRead(4)==LOW  
         
)  
        {  
        
digitalWrite(Start, HIGH);   
  
delay(100);   
 
digitalWrite(Start, LOW);  
 
flag=false;   
          
digitalWrite(Mute, LOW);   
          
com=0;  
        }   
        break;   
          
       case 
0x12:  
       if(
stopflag && digitalRead(2)==LOW && digitalRead(4)==HIGH  
        
)  
       {  
      
digitalWrite(Stopi, HIGH);   
  
delay(1000);   
 
digitalWrite(Stopi, LOW);   
 
flag=false;  
 
delay(1000); 
          
digitalWrite(Mute, LOW);   
          
com=0;   
       }  
        break;  
         
       case 
0x14: 
      if (
stopflag) 
     {  
      
digitalWrite(Opening, HIGH);   
  
delay(700);   
  
digitalWrite(Opening, LOW);   
  
flag=false;   
          
digitalWrite(Mute, LOW);   
          
com=0; 
     }   
        break;  
          
        case 
0x13:  
          
flag=false;  
          
digitalWrite(Mute, LOW);  
          
com=0;  
       break;  
        
    


     } 
    
  }  
  

} 


}