Проблема с дисплеем 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()
{
}
А вот моя схема:
Микроконтроллер - это ATmega32U4. Запуск кода над дисплеем полностью пуст, я также попытался изменить значения R4 и R5, но ничего не изменилось. Я ничего не вижу, даже предыстории каждого символа.
Дисплей является обычным дисплеем, совместимым с HD44780.
Я извлек выходы отсюда:
/opt/arduino-1.8.19/аппаратное обеспечение/arduino/avr/варианты/leonardo/pins_arduino.h
Я что-нибудь упускаю?
@Mark, 👍0
Обсуждение1 ответ
Лучший ответ:
Ошибка заключается в том, что V0 имеет уровень VDD, судя по тому, как вы подключили резисторы. "Нижний конец" вашей лестницы должен находиться на GND, вывод 1.
Вывод 15 (A) является анодом подсветки и не подключен к схеме драйвера ЖК-дисплея. Кстати, чтобы включить подсветку, вам также необходимо подключить контакт 16 (K). Более подробную информацию смотрите в техническом паспорте.
Используйте потенциометр для V0, стеклоочиститель для V0, а концы для VDD и GND соответственно.
Просто примечание: насколько я помню, V0 обычно можно подключить с помощью одного резистора или напрямую к GND, поскольку стеклоочиститель потенциометра был в основном на конце GND. Это даст некоторый контраст, в зависимости от температуры.
Я пытаюсь прямо сейчас и скоро напишу ответ. Я предположил, что Ви была отрицательным рельсом, моя вина. Я не хочу ставить банк, иначе мне нужно настроить каждую плату. Я собираюсь поэкспериментировать и найти правильное соотношение резисторов при комнатной температуре., @Mark
Это работает. При Vo = GND контраст будет идеальным., @Mark
- Как отобразить символ º на ЖК-дисплее?
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Как заставить ЖК-дисплей отображать китайские и японские иероглифы?
- Wemos: дисплей 16x2 ничего не показывает
- Запись значения на 7-сегментный дисплей max7219
- Тахометр на базе Леонардо?
- Адресация HD44780 DDRAM по второй линии
- Чтение текста с SD-карты возвращает странные символы
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