Задать вопрос
@MorUtor

Как решить проблему с игнорированием следующих проверок в цикле для ардуино?

Код и построеная схема в Wokwi

int i,j;
int start;
float time=0.00,plust=0.1;

void setup() {
for (i=13;i>8;i--)
  {
    pinMode(i,OUTPUT);
  }
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop() {
  start = digitalRead(2);
  Serial.println(start);
  if(start == 1){
    for(time=0.00; time<7.0; time+=0.1){
      Serial.print("TIME");
      Serial.println(time);
      if(time == 0.1 && time<1.6){
        for(i=8;i<=13;i++){
          digitalWrite(i, HIGH);
        }
      }
      if(time == 1.7 && time<2.4){
         digitalWrite(13, LOW);
        for(i=8;i<=12;i++){
          digitalWrite(i, HIGH);
        }
      }
      delay(500);
    }
  }
}

Игнорируется вторая проверка в цикле,не могу понять почему
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@kalapanga
float на точное равенство не сравнивают. Если надо, сравнивают их разность с некоторым малым значением. Да и само условие здесь странное какое-то - число равно 1.7 И число меньше 2.4. Вторая часть условия бессмыслена.
В первом условии, где 0.1 и 1.6 то же самое. Вы уж определитесь, что тут имелось ввиду.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы