помогите найти ошибку

sango
Offline
Зарегистрирован: 15.06.2015

все нормально компилируется, но нормально работать не хочет работать не хочет. Иногда работает а иногда сигнал от датчиков  в хаотично в неопределеннной последовательности не доходит до исполнительного выхода , датчики проверяю сигнал есть,а на выходе ни каких изменений. Просьба не сзацикливаться  на дребезг он мне по барабану,  система инерционна.

int eStage;
enum { STAGE_0, STAGE_1, STAGE_2 };
 
void setup() {
  // выходы на моторы
  digitalWrite(26, LOW);//ладья
  pinMode(26, OUTPUT);  
  digitalWrite(28, LOW);
  pinMode(28, OUTPUT);    
  digitalWrite(30, LOW);//ферзь
  pinMode(30, OUTPUT);  
  digitalWrite(32, LOW);
  pinMode(32, OUTPUT);  
  digitalWrite(34, LOW);//конь
  pinMode(34, OUTPUT);  
  digitalWrite(36, LOW);
  pinMode(36, OUTPUT);   
  digitalWrite(38, LOW);//слон
  pinMode(38, OUTPUT);  
  digitalWrite(40, LOW);
  pinMode(40, OUTPUT); 
  
  digitalWrite(44, LOW);//управляющий сигнал на лампу
  pinMode(44, OUTPUT);  
  
  //положение фигур
  
  pinMode(22, INPUT); //гер коня     
  digitalWrite(22, HIGH);
  pinMode(23, INPUT);  //гер слона       
  digitalWrite(23, HIGH);  
  pinMode(24, INPUT); // холла конь
  digitalWrite(24,HIGH);  
  pinMode(25, INPUT);  //холла слон
  digitalWrite(25,HIGH);  
  pinMode(42, INPUT);  //гер ладья 
  digitalWrite(42, HIGH);   
  pinMode(43, INPUT); //гер ферзь       
  digitalWrite(43, HIGH);
  
  //положение датчиков движения
  
  pinMode(27, INPUT); // мотора1  к фигурам ладья     
  digitalWrite(27, HIGH);
  pinMode(29, INPUT);  // мотора1 в центр       
  digitalWrite(29, HIGH);  
  pinMode(31, INPUT);   // мотора2  к фигурам ферзь
  digitalWrite(31, HIGH);  
  pinMode(33, INPUT);  // мотора2 в центр        
  digitalWrite(33, HIGH); 
  pinMode(35, INPUT); // мотора3  к фигурам конь     
  digitalWrite(35, HIGH);
  pinMode(37, INPUT);  // мотора3 в центр       
  digitalWrite(37, HIGH);  
  pinMode(39, INPUT);   // мотора4  к фигурам слон
  digitalWrite(39, HIGH);
  pinMode(41, INPUT);  // мотора4 в центр        
  digitalWrite(41, HIGH);  
  
  eStage = STAGE_0;
}
 
void loop()
{
  switch ( eStage )
  {
    case STAGE_0://Ожидание заданного положения фигур
    {
      if ( digitalRead(42) == LOW )// && digitalRead(43) == LOW && digitalRead(24) == LOW  && digitalRead(25) == LOW && digitalRead(22) == LOW && digitalRead(23) == LOW) 
        {
         digitalWrite(26, HIGH);    // запускаем моторы к краю
         digitalWrite(28, LOW);         
         digitalWrite(30, HIGH);//ферзь
         digitalWrite(32, LOW);         
         digitalWrite(34, HIGH);//конь
         digitalWrite(36, LOW);         
         digitalWrite(38, HIGH);//слон
         digitalWrite(40, LOW);
         digitalWrite(44,HIGH);//лампа 
         eStage = STAGE_1;
        }
    }
     break;
    case STAGE_1://останавливаем моторы у фиргур
    {
      {
        if ( digitalRead(27) == LOW )
        {
         digitalWrite( 26, LOW );
         digitalWrite( 28, HIGH );           
       }
      }
      
      {
        if ( digitalRead(31) == LOW )//ферзь
         {
           digitalWrite( 30, LOW );
           digitalWrite( 32, LOW );
          }
      }
      
        {
          if ( digitalRead(37) == LOW )//конь
         {
           digitalWrite( 34, LOW );
           digitalWrite( 36, LOW );           
         }
        }
      {
        if ( digitalRead(41) == LOW )//слон
         {
         digitalWrite( 38, LOW );
         digitalWrite( 40, LOW );
         }
       }
      {
       if ( digitalRead(31) == LOW  && digitalRead(27) == LOW && digitalRead(37) == LOW  && digitalRead(41) == LOW)
      {
        digitalWrite( 26, HIGH );//запускаем моторы к центру
        digitalWrite( 28, HIGH );        
        digitalWrite( 30, HIGH );
        digitalWrite( 32, HIGH );        
        digitalWrite( 34, HIGH );
        digitalWrite( 36, HIGH );        
        digitalWrite( 38, HIGH );
        digitalWrite( 40, HIGH );        
                
        eStage = STAGE_2;
         }   
         }
    }
  break;
     
     case STAGE_2://остановка в центре
     {
       {
       if ( digitalRead(29) == LOW )
         {
          digitalWrite( 26, LOW );           
          digitalWrite( 28, LOW );
          digitalWrite(44,LOW);//лампа            
         }
       }       
       {
       if ( digitalRead(33) == LOW )
         {                 
           digitalWrite( 30, LOW );
           digitalWrite( 32, LOW );           
          }
        }        
        {
       if ( digitalRead(35) == LOW )
         {
           digitalWrite( 36, LOW );          
           digitalWrite( 34, LOW );          
         }
        }        
       {
       if ( digitalRead(39) == LOW )
         {
           digitalWrite( 38, LOW );         
           digitalWrite( 40, LOW );           
          }
       }     
     {
       if ( digitalRead(31) == HIGH  && digitalRead(33) == HIGH && digitalRead(35) == HIGH  && digitalRead(37) == HIGH)
      {
        digitalWrite( 26,LOW );//запускаем моторы к центру
        digitalWrite( 28, LOW );        
        digitalWrite( 30, LOW );
        digitalWrite( 32, LOW );        
        digitalWrite( 34, LOW );
        digitalWrite( 36, LOW  );        
        digitalWrite( 38, LOW );
        digitalWrite( 40, LOW ); eStage = STAGE_0;
      }      
     }
    }
   break;
 }

 

}
kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ошибка в 3859 строке

sango
Offline
Зарегистрирован: 15.06.2015

простите за тупость не понял как найти строку 3859

nevkon
Offline
Зарегистрирован: 20.01.2015

Это намек на то что тема оформлена неправильно - код нечитабельный

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

это не намёк :)
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
......поставить "галочки" - нумеровать и свернуть

http://arduino.ru/forum/obshchii/sokhranenie-kartinok-na-forume

Просьба не зацикливаться  на дребезг он мне по барабану,  система инерционна.
...а МК - не по барабану :(

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

sango пишет:

простите за тупость не понял как найти строку 3859


Каким образом кто либо может сообщить Вам в каких строках ошибка? Да никак, потому здесь уже правильно сказали, что это намёк на то, что ответ проблематичен.
Копировать Ваш код, отрезать лишнее? Оформите исходники нормально, скорее всего посмотрю, а нет, не буду мешать.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

kisoft пишет:

Ошибка в 3859 строке

...указал виртуально же