Как такое реализовать код

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

  1. avgaz

    avgaz Нерд

    Здравтсвуйте, не как не могу понять как реализовать скетч, вот для примера имеется код
    Код (Text):

    void loop() {
    if(Serial.available()>0){
      val = Serial.read();
    if(val =='5')
            {
      Serial.print(sensors.getTempC(Thermometer1));      
            }
    delay(1000);
    }
    if (sensors.getTempC(Thermometer2) > sensors.getTempC(Thermometer1)){
        digitalWrite(12, LOW);
        EEPROM.write(addr, 0);
      }
    delay(30000);
    }
    То есть нужно, что бы когда на ардуину посылаешь 5 она выдавала значение, но в то же время раз в 30сек обрабатывала другие данные с датчиков.
    и вот получается, что когда посылаю запрос необходимо ждать 30сек что бы получить ответ. Как обойти это что бы ответ на запрос приходил сразу?
     
  2. видимо убрав delay(30000);
     
  3. ИгорьК

    ИгорьК Гуру

    Почитать две статьи: раз, два. Можно три. И станет все ясно.
     
  4. avgaz

    avgaz Нерд

    Как тогда сделать что бы раз в 30сек сверялись показания?
    Плохо у меня с английским, через переводчик не понял.
     
  5. ИгорьК

    ИгорьК Гуру

    Я, честно говоря, не знаю ничего подобного - простого и полезного, на русском языке.
     
  6. видимо нужно делать таймер, на millis() или по прерыванию

    с этим беда, почти всё на русском это перевод скопированный друг у друга. (
     
  7. avgaz

    avgaz Нерд

    Если не сложно можно пример под мою задачу привести?
     
  8. открываем примеры, ищем BlinkWithoutDelay
     
  9. avgaz

    avgaz Нерд

    Благодарю всё получилось. Хоть и не понял принципа работы ((