LCD экран работает, но ничего не выводит на экран.

Тема в разделе "Arduino & Shields", создана пользователем Оплеух, 29 дек 2018.

Метки:
  1. Оплеух

    Оплеух Нуб

    Проблема с подключением !!!
    Заказал в ЧинаТаун LCD 20x4 204b
    И шину i2c , 16pin
    Но LCD приехал 18pin , перепробывал все варианты
    Но он не поддался
    Или я Лунтик или лыжи не едут
    LCD показывает 2 полные строки и всё
     
  2. надо было покупать в амперке.
     
    Andrey12 нравится это.
  3. Оплеух

    Оплеух Нуб

    Ну ктож знал
     
  4. Оплеух

    Оплеух Нуб

    Да и проблемно с России заказать, я из ЛВ
    А у нас политический комфликт, но не об этом
     
  5. Vovka

    Vovka Гик

    Если правильно выводит две строки, то неправильно выставлены настройки в LCD-библиотеке или она не умеет с 4-мя строками работать
     
  6. Kamikadze

    Kamikadze Гик

    а че нет распиновки дисплея что ли? Типа у продавца на сайте, вы может хотя бы фото дислпея прислали. И дас строки то первые две корректно отображаются? Если да то дело в библеотеке лсд или ее инициализации как вам написали выше
     
  7. Оплеух

    Оплеух Нуб

    Распиновка есть . Но немогу понять ,на дисплее 18пинов а на i2c 16 пинов. Я препоял с 1 по 16 . Плследние 2 пина проигнорил.
    Строки прописывает через одну верхняя и 3я
     
  8. Vovka

    Vovka Гик

    Уже два человека написали, что проблема с инициализацией дисплея!!!
    "Чукча не читатель, чукча - писатель!" (с) :D
     
  9. Kamikadze

    Kamikadze Гик

    ну так вы может хотя бы фото пришлете че и как подключили? или нам догадываться? Скетч тоже бы не плохо было увидеть, хотя бы что за библиотеку используете? Вы больше инфы то дайте, тут веть не форум экстарсенсов.
     
    Оплеух нравится это.
  10. Оплеух

    Оплеух Нуб

  11. Kamikadze

    Kamikadze Гик

    Vovka нравится это.
  12. Оплеух

    Оплеух Нуб

  13. Оплеух

    Оплеух Нуб

    Библиотека LiquidCristal_i2c
    Перепробывал 8 вариантов
    Обсалютный 0
     
  14. это неправильный конвертер, там действительно распиновка другая, он для мелких ЖК.

    попробуй без I2C подключить

     
    Jevega и Kamikadze нравится это.
  15. Kamikadze

    Kamikadze Гик

    А с обратной то стороны есть обозначения выводов дисплея? Или повторюсь у продавца есть дата шит или описание?
     
  16. Оплеух

    Оплеух Нуб

    Обозначений нет, но было описание , с 1 по 16 пины всё савподает, последние 2 пина типо не обезательно
     
  17. Оплеух

    Оплеух Нуб

    Имено сейчас пробуь
     
  18. Kamikadze

    Kamikadze Гик

    Вам выше дали годный совет, без I2C подключите
     
  19. да разъем там перевернут, поэтому конвертер так просто не станет.
    если мордой вверх, 14-1,15,16 что чему соответствует есть в даташите http://winstar.com.tw/mysql/chip/WH1602L.PDF
     
  20. dimonishe

    dimonishe Нерд

    Всем привет у меня есть дисплей и конвертер на i2c .Так вот раньше отображал нормально подключаю питание и показывает верхнюю заполненную строку.
    программа:
    Код (C++):

    #include <GyverTimer.h>
    #include <dht.h>
    #include <stdint.h>
    #include "SparkFunBME280.h"
    #include "Wire.h"
    #include "SPI.h"
    #include <LiquidCrystal_I2C.h>
    int i;
    int ii;
    int iii;
    DHT sensor = DHT();
    //Global sensor object
    BME280 mySensor;
    LiquidCrystal_I2C lcd(0x27 , 16, 2); //Адрес дисплея, в моём случае 0x3F
    GTimer_ms myTimer;
    GTimer_ms myTimer1;
    GTimer_ms myTimer2;
    GTimer_ms myTimer3;
    void setup()
    {
      myTimer1.setInterval(10);
      myTimer2.setInterval(10);
      myTimer3.setInterval(10);
      myTimer.setInterval(500);
      sensor.attach(A0);
      lcd.init();
      lcd.init();
      lcd.backlight();
      mySensor.settings.commInterface = I2C_MODE;
      mySensor.settings.I2CAddress = 0x76; //Адрес датчика, в моём случае не стандартный

      //For SPI enable the following and dissable the I2C section
      //mySensor.settings.commInterface = SPI_MODE;
      //mySensor.settings.chipSelectPin = 10;

      //***Operation settings*****************************//

      //renMode can be:
      //  0, Sleep mode
      //  1 or 2, Forced mode
      //  3, Normal mode
      mySensor.settings.runMode = 3; //В примере предлагают использовать Forced mode, но при обновлении раз в секунду достаточно Normal mode

      //tStandby can be:
      //  0, 0.5ms
      //  1, 62.5ms
      //  2, 125ms
      //  3, 250ms
      //  4, 500ms
      //  5, 1000ms
      //  6, 10ms
      //  7, 20ms
      mySensor.settings.tStandby = 5; //Очевидно чаще не нужно

      //filter can be off or number of FIR coefficients to use:
      //  0, filter off
      //  1, coefficients = 2
      //  2, coefficients = 4
      //  3, coefficients = 8
      //  4, coefficients = 16
      mySensor.settings.filter = 0;

      //tempOverSample can be:
      //  0, skipped
      //  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
      mySensor.settings.tempOverSample = 1;

      //pressOverSample can be:
      //  0, skipped
      //  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
      mySensor.settings.pressOverSample = 1;

      //humidOverSample can be:
      //  0, skipped
      //  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
      mySensor.settings.humidOverSample = 1;

      //  Calling.begin();
      mySensor.begin();
    }

    void loop()
    {
      if (myTimer.isReady())
      {
        sensor.update();
        //Буквы можно вывести один раз, а далее менять показания, но показания при изменении количества значащих цифр могут сдвигать строку.
        lcd.setCursor(0, 0);
        lcd.print("H=");
        lcd.print(sensor.getHumidityInt());
        lcd.print("%");
        lcd.print(" T=");
        lcd.print(mySensor.readTempC());
        lcd.setCursor(13, 0);
        lcd.print(" P:");

        lcd.setCursor(0, 1);
        int mmH = mySensor.readFloatPressure() / 133;
        lcd.print(mmH);
        lcd.print("mmH ");
        lcd.print(mySensor.readFloatPressure());
        lcd.setCursor(14, 1);
        lcd.print("Pa");
      }
    }