Подключение LCD

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

  1. ank

    ank Нуб

    Здравствуйте! Знакомлюсь с Ардуино, делаю мини-проекты из "Конспекта хакера". При работе с lcd-дисплеем (тестер батареек) проблема: вся информация отображается только в первой строке (строки налагаются друг на друга), и какое-то мерцание во втором после десятичной точки разряде измеряемого напряжения.
    Код из конспекта:
    #define DIODE_DROP 0.7
    LiquidCrystal lcd(13,12,11,10,9,8);
    void setup() {
    lcd.begin(16,2);
    lcd.print ("Battery voltage:");
    }

    void loop() {
    float voltage = analogRead(A0)/1024.0*10.0;
    if (voltage>0.1)
    voltage+=DIODE_DROP;
    lcd.setCursor(1,0);
    lcd.print(voltage,2);
    lcd.print(" Volts");
    }
    Собрал вроде правильно:
    IMG_20170225_130913[1].jpg Кто-что скажет?
    Заранее спасибо.
     
  2. vvr

    vvr Инженерище

    а так
    Код (C++):
    #include <LiquidCrystal.h>

    #define DIODE_DROP 0.7
    LiquidCrystal lcd(13,12,11,10,9,8);


    void setup()
    {
    lcd.begin(16,2);
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print ("Battery voltage:");
    }

    void loop()
    {
    float voltage = analogRead(A0)/1024.0*10.0;
    if (voltage>0.1)
    voltage+=DIODE_DROP;

    lcd.setCursor(1,1);
    lcd.print(voltage,2);
    lcd.setCursor(7,1);
    lcd.print(" Volts");
    }
     
    ank и Airbus нравится это.
  3. ank

    ank Нуб

    А так нормально! Мерцание, правда, осталось. Похоже, наводки от ПК. При выключенном ПК стабильно показывает какое-то минимальное напряжение вместо 0, но это уже другая проблема.
    Спасибо.
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    Нет там наводок, у тебя цикл пихает данные в дисплей быстрее чем он может отобразить.
    Поставь последней строкой delay (500);
     
    Airbus нравится это.