Опрос Датчиков по времени

Тема в разделе "Arduino & Shields", создана пользователем Крапивин, 21 апр 2015.

  1. Крапивин

    Крапивин Нерд

    Не могу понять почему нет опроса датчиков, пытался сделать опрос через каждые 5 мин.
    но ничего не происходит. Прошу Подскажите что в скетче не так.

    #include <OneWire.h>
    #include <DallasTemperature.h>
    OneWire oneWire(10); // вход датчиков 18b20
    DallasTemperature ds(&oneWire);

    DeviceAddress sensor1 = {0x28, 0x6D, 0x74, 0x23, 0x05, 0x0, 0x0, 0x28};
    DeviceAddress sensor2 = {0x28, 0xB, 0x41, 0x23, 0x05, 0x0, 0x0, 0xF};

    #define POLL_INTERVAL 50000
    #define POLL_PERIOD (60*60*1000)

    bool poll_sensor = false;
    unsigned long time_start;
    unsigned long time_poll;

    void setup()
    {
    Serial.begin(38400);
    ds.begin();
    Serial.print("Zamer Dathikov Po Vremeni ******** ");

    }

    void loop()
    {
    char c = 0;
    if (Serial.available()) c = Serial.read(); // Нажать 1
    if ('1'==c)
    {
    time_start = millis();
    time_poll = time_start;
    poll_sensor = true;
    }
    else
    {
    if (0!=c) poll_sensor = false;
    if (poll_sensor && ((millis()-time_start)>POLL_PERIOD)) poll_sensor = false;
    }
    if (poll_sensor)
    {
    if ((time_poll==time_start) || ((millis()-time_poll)>POLL_INTERVAL))
    {
    ds.requestTemperatures(); // считываем температуру с датчиков
    Serial.print("Temper1 ");
    Serial.print(ds.getTempC(sensor1)); // отправляем температуру
    Serial.println(" *C");
    Serial.println();
    time_poll = millis();
    }
    }
    }
     
    Последнее редактирование: 21 апр 2015
  2. Unixon

    Unixon Оракул Модератор

    5 минут это (5*60*1000)
     
  3. Крапивин

    Крапивин Нерд

    Спасибо Вопрос снят.
    Запускается нажать надо 1

    уже исправил.
     
  4. Крапивин

    Крапивин Нерд

    Спасибо Unixon за подсказки.
    теперь на основе этого делаю авто полив.
    и электроды не так подвержены коррозии, если интервал запроса будет больше.