Тема: Arduino і домашня автоматизація: питання і відповіді
Всім привіт. Почав освоювати Arduino зокрема nano. Суть така: натискаєш кнопку - вмикається режим очікування. якщо під час цього режиму спрацьовують датчики то вмикається звукове сповіщення. якщо ще раз натиснути кнопку то вимикається звукове сповіщення і режим очікування. 
це є не дуже складним завданням і є частиною більшої програми, але при симуляції в Proteus не завжди спрацьовує. в чому помилка? 
/* Main.ino file generated by New Project wizard
 *
 * Created:   Вт Лип 19 2016
 * Processor: ATmega328P
 * Compiler:  Arduino AVR
 */
byte flag = 0;
void setup()
 { // put your setup code here, to run once:
 DDRD=B01111110;
 DDRB=B00000000;
/* pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode (7, INPUT);                //кнопка, яка вмикає і вимикає режим очікування. 
 pinMode (8, INPUT);
 pinMode (9, INPUT);
 pinMode (10, INPUT);
 pinMode (11, INPUT);
 pinMode (12, INPUT);
                                       //0,1,13 входи з датчиків
 pinMode (13, INPUT);
 pinMode (0, INPUT);
 pinMode (1, INPUT);
 */
 }
void loop()
 {      
  if (digitalRead(7) == HIGH && flag==0) //увімкнення тривоги при спрaцюванні датчиків
     {flag=1;}
     if (flag==1 && digitalRead(13) == HIGH)
      {  digitalWrite(5,HIGH); }
     
     if (flag==1 && digitalRead(0) == HIGH )
     {  digitalWrite(5,HIGH); }
     
      if (flag==1 && digitalRead(1) == HIGH)
     {  digitalWrite(5,HIGH); }
  
  if (digitalRead(7) == HIGH && flag==1)
  {  digitalWrite(5,LOW); 
     flag=0; }
     
  
  
 }