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

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




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




#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(1112); // 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 
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(MuteOUTPUT);    
  
pinMode(StartOUTPUT);    
  
pinMode(StopiOUTPUT);    
  
pinMode(OpeningOUTPUT);    
  
pinMode(LightOUTPUT);  
   
pinMode(LampbatteryINPUT);  
  
digitalWrite(LampbatteryHIGH);  
  
pinMode(StopisignalINPUT);  
  
digitalWrite(StopisignalHIGH);  
  
pinMode(SpeedisensorINPUT);  
 
digitalWrite (SpeedisensorHIGH);  
  
attachInterrupt(1TimeFALLING);  
 
MsTimer2::set(500flash);  
  
MsTimer2::start();  
   
 
flag=true;  
    
digitalWrite(MuteHIGH); 

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(StartHIGH);   
    
delay(100); 
 
digitalWrite(StartLOW);  
 
flag=false
  
startflag=false;
          
digitalWrite(MuteLOW);   
          
c=0;  
        }  
     
    if ( (
digitalRead(2)==HIGH && !startflag) || digitalRead(4)==HIGH)
    
startflag=true;
     
     
     
     if (
BTSerial.available())  
   { 
   
= (char)BTSerial.read();  
    
Serial.println(c); 
   
  if (
== '1' && !flag
  { 
         
flag=true;    
     
digitalWrite(MuteHIGH);   
     
c=0
     } 
      
      
      switch(
c)   
      { 
        case 
50
      if (
stopflag
     {  
      
digitalWrite(OpeningHIGH);   
  
delay(700);   
  
digitalWrite(OpeningLOW);   
  
delay(1000); 
  
flag=false;   
          
digitalWrite(MuteLOW);   
          
com=0
            break; 
     }  
     case 
51:   
          
running = !running;     
          
digitalWrite(Lightrunning);   
          
flag=false;   
          
digitalWrite(MuteLOW);   
          
com=0;   
        break;   
      
      } 
      
           
      
     if(
flag)  
     {   
     switch(
c)   
     {   
       case 
49:  
          
flag=false;  
          
digitalWrite(MuteLOW);  
          
c=0
          break;  
          } 
          } 
   
      
      
      
      
      
  } 
   
  
   
   
   
   
  
  if (
digitalRead(4)==LOW)  
  {  
    
a=false;  
    
flag=true;  
    
digitalWrite(MuteHIGH); 
  }  
  if (
digitalRead(4)==HIGH && !a)  
  {  
    
a=true;  
    
flag=false;  
    
delay(1000); 
    
digitalWrite(MuteLOW);  
  }    

  

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

  
  if(
flag)   
  {   
     switch(
com)   
     {   
        case 
0x15:   
          
running = !running;     
          
digitalWrite(Lightrunning);   
          
flag=false;   
          
digitalWrite(MuteLOW);   
          
com=0;   
        break;   
          
          
        case 
0x11:  
        if(
stopflag && digitalRead(2)==LOW && digitalRead(4)==LOW  
         
)  
        {  
        
digitalWrite(StartHIGH);   
  
delay(100);   
 
digitalWrite(StartLOW);  
 
flag=false;   
          
digitalWrite(MuteLOW);   
          
com=0;  
        }   
        break;   
          
       case 
0x12:  
       if(
stopflag && digitalRead(2)==LOW && digitalRead(4)==HIGH  
        
)  
       {  
      
digitalWrite(StopiHIGH);   
  
delay(1000);   
 
digitalWrite(StopiLOW);   
 
flag=false;  
 
delay(1000); 
          
digitalWrite(MuteLOW);   
          
com=0;   
       }  
        break;  
         
       case 
0x14
      if (
stopflag
     {  
      
digitalWrite(OpeningHIGH);   
  
delay(700);   
  
digitalWrite(OpeningLOW);   
  
flag=false;   
          
digitalWrite(MuteLOW);   
          
com=0
     }   
        break;  
          
        case 
0x13:  
          
flag=false;  
          
digitalWrite(MuteLOW);  
          
com=0;  
       break;  
        
    


     } 
    
  }