1602 не выводит ничего

Добрый день. Не могу вывести абсолютно ничего на дисплей 1602. Подключил все перемычки согласно комментария в коде (RW на земле), прозвонил провода, замерил напряжение, проверил полярности, менял пины (с поправкой в коде, разумеется) - ничего. Горит подсветка дисплея и верхний ряд квадратиков (контрастность крутил). Интерфейс без i2c. Библиотеку скачал. Ардуино Уно. Все с алика. УНО рабочая
Код:

LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // (RS, E, DB4, DB5, DB6, DB7)
void setup(){ 
  lcd.begin(16, 2);                  // Задаем размерность экрана
 
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Hello, world!");       // Выводим текст
  lcd.setCursor(0, 1);              // Устанавливаем курсор в начало 2 строки
  lcd.print("1");         // Выводим текст
}
 
void loop(){
}

Бывает

1 лайк

Так не бывает.
Если горят “квадратики” верхней строки - значит дисплей не про инициализирован. Почему?
Показывайте схему свою соединения, фото того что собрали (ну и код научитесь вставлять ПРАВИЛЬНО).

В thinkercad все работает, что интересно. Хотя там тоже моменты интересные есть: подсветка напрямую не подключается, надо через резистор, иначе сгорает и курсор на вторую строку не переносится. Ну это ладно…


А что если убавить яркость/контрастность ?

Игрался и с яркостью, и с контрастностью - толку нет.

Я конечно понимаю, что Вы уже у себя много раз всё меняли. Но Вы же для проверки материал предоставляете, чтобы ошибку в нём нашли. А у Вас скетч один, на фото совсем другое собрано, в тинкеркаде третье. Так что первое, что в голову приходит - неправильно собрано или отражено в скетче.
(В скетче в тинкеркаде возможно из-за отсутствия lcd.begin со строками косячит)
А при правильных сборке и скетче я бы на сопли “дюпонтовые” поставил.

Еще у меня был случай с этими брэбордами - не запускался дисплей 1602 (кстати, говоря (!)) хоть тресни. Прозвонил сами соединительные провода - два в обрыве (не звонятся). Заменил и дело пошло.

1 лайк

Всё прозвонил от контаков на пинах ардуино до контаков дисплея, напряжения на дисплее есть.



#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // (RS, E, DB4, DB5, DB6, DB7)
 
void setup(){ 
  lcd.begin(16, 2);                  // Задаем размерность экрана
 
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Hello, world!");       // Выводим текст
  lcd.setCursor(0, 1);              // Устанавливаем курсор в начало 2 строки
  lcd.print("1");         // Выводим текст
}
 
void loop(){
}

Как минимум пин RW не на землю, а в плюс воткнут. И на второй фотке из последнего сообщения не внушает доверия пайка контактов к дисплею (стоит пропаять).
Если квадратики горят - это обычно хорошо, типа живой он. Где-то всё-таки неконтакт или не туда воткнуто.

1 лайк

Таки заработало!) Пин rw я пробовал в прошлый раз перетыкать. После чего пропаял контакты, а rw назад не вернул. Спасибо, что обратили на это внимание.
Чтобы ветку не создавать: можно ли как-то в thinkerсад добавить элементы? Интересует датчик ds1820. Или другие онлайн-конструкторы есть или приложения с более расширенным набором элементов?

Всем привет такая же проблема только с диспеем 2004 и модулем I2C выводятся только кубики больше ничего. вот код
"#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // Устанавливаем дисплей
#include <iarduino_RTC.h>
iarduino_RTC time(RTC_DS3231);

void setup() {
delay(300); // Ждем готовности модуля отвечать на запросы
Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бод.
time.begin(); // Инициируем работу с ds3231.
lcd.begin(); // Инициируем работу с LCD.
time.settime(0,00,6,21,4,24,4); // Записываем время в модуль: 0 сек, 00 мин, 12 час, 17, февраля, 2020 года, понедельник.
}

void loop() {
Serial.println(time.gettime(“d-m-Y, H:i:s, D”)); // Выводим время в монитор порта.
lcd.setCursor(0, 0); // Установка курсора экрана.
lcd.print(time.gettime(“d-m-Y H:i:s D”)); // Выводим время на экран.
lcd.setCursor(0, 1);
lcd.print(time.gettime(“d-m-Y H:i”));
lcd.setCursor(0, 2);
lcd.print(time.gettime(“d-m-Y D”));
time.blinktime(7, 4); // при выводе на дисплеё будут мигать дни недели с частотой 4Гц
lcd.setCursor(0, 3);
lcd.print(time.gettime(“d-m H:i”));
delay(1000); // Приостанавливаем скетч на 1 с, чтобы не выводить время несколько раз за 1мс.

}
"

Научись вставлять сначала.

1 лайк

Начать с регулировки контрастности.

регулируется только яркость

Что за микросхема i2c использована? PCF8574 или PCF8574A?

вот такая HLF8574T

Запусти из примеров “I2C Scanner” и посмотри на каком адресе отвечает твой дисплей.


прикол в том что I2C сканеры его не видят пишут просто “No I2C devices found”