Вопрос по циклам
- Войдите на сайт для отправки комментариев
Чт, 17/11/2016 - 23:17
Здравствуйте, в програмировании совсем не разбираюсь, прошу помощи в решении следующего вопроса:
при появлении на определенном пине HIGH должно происходить последовательность действий, при появлнии LOW ничего не происходить. при повторном появлении HIGH опять должно происходить последовательность действий. Вот отрезок кода
a = digitalRead(outPin);
if (a!=LOW)
{while(i < 1)
{ digitalWrite(outPin1, HIGH);
delay(1000);
digitalWrite(outPin1,LOW);
delay(1000);
digitalWrite(outPin2, LOW);
delay(1000);
digitalWrite(outPin2,HIGH);
delay(1000);
i++;}}
else digitalWrite(outPin2,LOW);
поблема в том что эта последовательность выполняется всего 1 раз, переменная а меняется, но цикл не запускается повторно.
Вот отрезок другого кода
a = digitalRead(outPin);
if (a!=LOW)
{digitalWrite(outPin2,HIGH);}
else digitalWrite(outPin2,LOW);
здесь все работает сколько угодно раз при изменении переменной а
в чем может быть проблема????
нужно чтоб работал первый отрезок кода.
заранее благодарен.
переменная i. будет <1 будет запускаться. а нет не будет.
если переменная i равна 2 то цикл запускается все равно единожды с той разницей что диоды промаргивают 2 раза, а при изменении переменной "a" повторно промаргивание не запускается
Про while почитайте. И при изменении i что произойдет? После первого цикла в while прошли проверку i=1, возвращаемся опять проверили цикл не выпонили, нужно обнулить i для входа в while.
я совсем чайник, подскажите пожалуйста в каком месте обнулить i