была еще одна проблемка при остановке двигателя у меня зажигание выключается на 1 секунду но до момента как включается лампочка акамулятора еще остается немного и по этому у меня появлялся щелчек в колонках как раз в эти доли секунды убрал путем задержки включения звука после команды "япошка" на две секунды щелчек исчез
скетч в последней редакции:
PHP код:
#include <MsTimer2.h>

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;


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);

  
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 (
digitalRead(4)==LOW
  { 
    
a=false
    
flag=true
    
digitalWrite(MuteHIGH);
  } 
  if (
digitalRead(4)==HIGH && !a
  { 
    
a=true
    
flag=false
    
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(2000);
          
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; 
       
   


     }
   
  } 
 
}