Циклы

Тема в разделе "Arduino & Shields", создана пользователем Yanderfall, 8 май 2018.

  1. Yanderfall

    Yanderfall Нуб

    Помогите пожалуйста с циклом на ардуино иде.
    По задумке серво должен вращаться тогда, когда влажность < 200.
    Но он вращается при любом значении.
    Что делать?
    Код (C++):
    #include <Servo.h>
    #include <LiquidCrystal.h>
    #define DT_MIN      200
    #define DT_MAX      700
    #define INTERVAL    30000 * 1
    unsigned int humidity = 0;
    unsigned long waitTime = 0;
    int analogInput = A0;
    int value = 0;
    LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
    Servo DTS;

    void setup() {
        DTS.attach(6);
       pinMode(analogInput, INPUT);
       Serial.begin(9600);
       lcd.begin(16, 2);
       lcd.print("Vlazhnost");
    }
    void loop() {
      // считывание аналогового значения
    value = analogRead(analogInput);

    Serial.println("INPUT");
    Serial.println(value);
    lcd.setCursor(0, 1);
    lcd.print("______");
    lcd.print(value);
    delay(500);
      if ((waitTime == 0 || millis() - waitTime > INTERVAL) && humidity > DT_MIN  ){
      DTS.write(90);
       waitTime = millis();
      }else if ((waitTime == 0 || millis() - waitTime > INTERVAL) && humidity < DT_MIN  ) {
       DTS.write(90);
       delay(500);
       DTS.write(180);
       waitTime = millis();
      }
    }
     
  2. ostrov

    ostrov Гуру

    Потому что влажность у вас всегда нуль, а считанное значение нигде не используется. И причем тут цикл?

    Лечится в одном месте одним исправлением.
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Немного не понял чем измеряется влажность?В смысле каким устройством?И второе влажность больше 100% не бывает.
    Код измеряет напряжение на А0 и выводит его в порт.Нормальный Вольтметер
    ostrov Лечиться другим скетчем.Другим от слова "совсем".
     
    Последнее редактирование: 8 май 2018
  4. ostrov

    ostrov Гуру

    Вот именно что вольтметр. Измеряется, пишется в порт, все. А программа работает с другой переменной, которая всегда == 0.