помогите найти ошибку
- Войдите на сайт для отправки комментариев
Пнд, 15/06/2015 - 18:57
все нормально компилируется, но нормально работать не хочет работать не хочет. Иногда работает а иногда сигнал от датчиков в хаотично в неопределеннной последовательности не доходит до исполнительного выхода , датчики проверяю сигнал есть,а на выходе ни каких изменений. Просьба не сзацикливаться на дребезг он мне по барабану, система инерционна.
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;
}
}
Ошибка в 3859 строке
простите за тупость не понял как найти строку 3859
Это намек на то что тема оформлена неправильно - код нечитабельный
это не намёк :)
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
......поставить "галочки" - нумеровать и свернуть
http://arduino.ru/forum/obshchii/sokhranenie-kartinok-na-forume
Просьба не зацикливаться на дребезг он мне по барабану, система инерционна.
...а МК - не по барабану :(
простите за тупость не понял как найти строку 3859
Каким образом кто либо может сообщить Вам в каких строках ошибка? Да никак, потому здесь уже правильно сказали, что это намёк на то, что ответ проблематичен.
Копировать Ваш код, отрезать лишнее? Оформите исходники нормально, скорее всего посмотрю, а нет, не буду мешать.
Ошибка в 3859 строке
...указал виртуально же