Проблема с дисплеем HD44780

Вот мой пример кода для пользовательской платы на базе Arduino Leonardo:

#include <LiquidCrystal.h>

const int rs = 3, en = 0, d4 = 4, d5 = 30, d6 = 12, d7 = 6;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() 
{
  pinMode(2, OUTPUT);
  digitalWrite(2, LOW);
  
  Serial.begin(115200);

  lcd.begin(16, 2);
  lcd.print("Hello world");
}
 
void loop() 
{
} 

А вот моя схема:

schematic

Микроконтроллер - это ATmega32U4. Запуск кода над дисплеем полностью пуст, я также попытался изменить значения R4 и R5, но ничего не изменилось. Я ничего не вижу, даже предыстории каждого символа.

Дисплей является обычным дисплеем, совместимым с HD44780.

Я извлек выходы отсюда:

/opt/arduino-1.8.19/аппаратное обеспечение/arduino/avr/варианты/leonardo/pins_arduino.h

Я что-нибудь упускаю?

, 👍0

Обсуждение

R4 / 5 должен быть потенциометром, а не фиксированными резисторами., @Majenko

горит ли подсветка? .... пожалуйста, разместите фотографии передней и задней частей ЖК-модуля, @jsotola

Назначения выводов схемы не соответствуют определениям выводов Arduino, которые вы использовали в своем коде. Пожалуйста, смотрите [Arduino PinMapping32u4](https://docs.arduino.cc/hacking/hardware/PinMapping32u4 ) или прочитайте правильное [отображение контактов для Leonardo](https://github.com/arduino/ArduinoCore-avr/blob/master/variants/leonardo/pins_arduino.h#L168-L184 ) из исходного кода., @hcheung

@hcheung черт возьми, я использовал именно эти два документа, чтобы получить назначение PIN! Не могли бы вы, пожалуйста, сказать мне, что не так? PD0=3, PD2 = 0, PD4 = 4, PD5= 30, PD6= 12, PD7= 6. Это то, что я прочитал из заголовочного файла., @Mark

@hcheung Я подтверждаю правильность назначений! Была только аппаратная проблема, как указал "назойливый"., @Mark

Извините, я виноват, я не понял, что ваше "d5" означает "PD5", а "30" означает D30., @hcheung


1 ответ


Лучший ответ:

3

Ошибка заключается в том, что V0 имеет уровень VDD, судя по тому, как вы подключили резисторы. "Нижний конец" вашей лестницы должен находиться на GND, вывод 1.

Вывод 15 (A) является анодом подсветки и не подключен к схеме драйвера ЖК-дисплея. Кстати, чтобы включить подсветку, вам также необходимо подключить контакт 16 (K). Более подробную информацию смотрите в техническом паспорте.

Используйте потенциометр для V0, стеклоочиститель для V0, а концы для VDD и GND соответственно.

Просто примечание: насколько я помню, V0 обычно можно подключить с помощью одного резистора или напрямую к GND, поскольку стеклоочиститель потенциометра был в основном на конце GND. Это даст некоторый контраст, в зависимости от температуры.

,

Я пытаюсь прямо сейчас и скоро напишу ответ. Я предположил, что Ви была отрицательным рельсом, моя вина. Я не хочу ставить банк, иначе мне нужно настроить каждую плату. Я собираюсь поэкспериментировать и найти правильное соотношение резисторов при комнатной температуре., @Mark

Это работает. При Vo = GND контраст будет идеальным., @Mark