Обновление данных на дисплее 1602

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

  1. Sov

    Sov Нерд

    Всем привет!

    Я собрал измерялку температуры. В терминал она выдает значения температуры с интервалом примерно раз в секунду. Значения, похожие на правду. Я решил добавить к моему Arduino Uno дисплей 1602 для отображения температуры в текущий момент. Взяв из примеров Ардуины в разделе "Liquid Crisrtal" код, я собрал нечто подобное (текст, описывающий измерение температры и вывод ее в терминал убран):

    Код (C++):
    String currStr = ""; //в строке curStr будем хранить текущую строку, которую передает нам плата
    int updateTime = 0;

    #include <LiquidCrystal.h>
    const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
    LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

    /
    float myScale;                                    // Переменая для хранения значения температуры
    //----------------------

    int led = 13;

    void setup()
    {

      lcd.begin(16, 2);
      // Print a message to the LCD.
      lcd.print(myScale);

    }
    void loop()
    {
      lcd.setCursor(0, 1);
      lcd.print(myScale);
      delay(1000);

    }
     
    Код, в принципе, работает, только температуру на дисплей 1602 он выводит 1 раз без попыток обновить ее в случае потепления/похолодания. Новое значение температуры на дисплей выводится только при нажатии кнопки Reset на плате Ардуины. Как бы сделать так, чтобы температура сама обновлялась хотя бы раз в минут?
     
  2. Airbus

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

    Опрашивать датчик раз в секунду.
     
  3. Sov

    Sov Нерд

    Но ведь у меня в терминал и так раз в секунду новое значение выскакивает. А в дисплей - только одно один раз.
     
  4. Airbus

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

    Так и выводите вместо терминала на дисплей.Потом в конце loop ставим delay (60000) и все
     
    arkadyf и Sov нравится это.
  5. Sov

    Sov Нерд

    Сработало! Спасибо!