Печально известные белые квадраты для LCD-дисплея

lcd

Я хотел бы знать, что я сделал не так. Я настроил свою схему с помощью "Hello world tutorial. У меня есть печально известный узор белого квадрата

  • D7 к контакту 2
  • D6 к контакту 3
  • D5 к контакту 4
  • D4 к контакту 5
  • E к контакту 11

Мой код:

// включите код библиотеки:
#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // введите здесь свои номера контактов

void setup() {
  // настройте количество столбцов и строк на ЖК-дисплее:
  lcd.begin(16, 2);
  // Выведите сообщение на ЖК-дисплей.
  lcd.print("hello, world!");
}

void loop() {
  // установите курсор в столбец 0, строка 1
  // (примечание: строка 1 является второй строкой, так как подсчет начинается с 0):
  lcd.setCursor(0, 0);
  // выведите количество секунд с момента сброса:
  lcd.print("hello, world!");
}

the infamous squares

, 👍2

Обсуждение

Описание карты pin'а, похоже, не соответствует легенде вашего вызова в онлайн-конструкторе ЖК-дисплея. Трудно сказать, что вы подключили без прямого угла на ЖК-модуле. В частности, чтобы увидеть проводку RS и RW. Полезны полные фотографии проводки. Это включало бы подключение к Arduino, потому что, честно говоря, мы все все испортили., @timemage

похоже, что на картинке у вас не подключена земля, @jsotola

@jsotola, мне показалось, что она это сделала, только это была красная ниточка., @timemage

Что подключено к V0 на дисплее? Где ваш 10-килограммовый тримпот, чтобы вы могли регулировать контрастность (изменяя напряжение между 0 и Vcc), пока "печально известные" белые квадраты не исчезнут., @Dougie

@Dougie контраст установлен правильно. В первой строке должны отображаться квадраты, а вторая строка пуста при включении питания., @Gerben


2 ответа


1

Ваше изображение не дает четкого представления о соединениях между Arduino Uno и ЖК-модулем. Однако, если мы хотим следовать вашему описанию ваших связей ...

D7 to pin 2
D6 to pin 3
D5 to pin 4
D4 to pin 5
E to pin 11

... и мы предполагаем, что D7, D6, D5 и D4 являются контактами на ЖК-дисплее, затем мы видим, что код неверен ...

LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // put your pin numbers here

... учитывая приведенное здесь описание LiquidCrystal синтаксиса перегруженного (означает, что существует более одного шаблона для переданных параметров конструктору с одинаковым именем) класса ...

Syntax

LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) 

... вместо этого попробуйте:

LiquidCrystal lcd(?, 11, 5, 4, 3, 2);      // put your pin numbers here

... поскольку вы не сказали нам, как вы подключили линию RS, я оставил это значение выше в качестве "?". Поэтому это не будет компилироваться, пока вы не заполните недостающую информацию.

Следует добавить, основываясь на том, что видно на рисунке, что было установлено соединение с выводами RS и RW ЖК-дисплея, и не было установлено никакого соединения с выводом E (enable) ЖК-дисплея. Но во всех перегруженных версиях конструктора всегда есть контакт E (enable). Пожалуйста, внимательно посмотрите на свой дизайн, чтобы определить, является ли это проблемой.

,

0

В моем случае проблема была тривиальной: ЖК-контакты плохо контактировали с макетом.

Надежно вставив их и загрузив повторно, вы сможете увидеть надпись "привет, мир!".

,