LCD случайным образом идет на один символ дальше в таблице ascii
Вот мой код:
#include <LiquidCrystal.h>
int rs = 11;
int rw = 10;
int en = 9;
int d0 = 1;
int d1 = 2;
int d2 = 3;
int d3 = 4;
int d4 = 5;
int d5 = 6;
int d6 = 7;
int d7 = 8;
LiquidCrystal lcd(rs, rw, en, d0, d1, d2, d3, d4, d5, d6, d7);
void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
Serial.begin(4800);
lcd.setCursor(0,0);
lcd.print("Loading...");
delay(3000);
lcd.setCursor(1,1);
lcd.print("waht");
}
void loop() {
}
И вот результат:
Также обратите внимание, что первая строка текста начинается во втором столбце. Я пробовал с другим ЖК-дисплеем, и возникает та же проблема. Кажется, что он идет на один символ дальше в ascii (например,"."становится"/"), если это какой-то ключ к тому, что происходит. В отдельной программе (точно такая же настройка) Я могу напечатать "Hello World" в первой строке без проблем. Кто-нибудь знает, почему он это делает и как это исправить? Спасибо
@user4521, 👍1
Обсуждение1 ответ
Ваш наименее значимый бит всегда равен 1 (проверьте таблицу ASCII, чтобы увидеть это). Возможно, у вас возникли проблемы с проводкой, дважды проверьте используемый вами контакт и убедитесь, что непрерывность хорошая.
Кроме того, как сказал КИИВ в комментарии, в зависимости от используемой платы у вас может возникнуть конфликт с последовательным портом (который тянет линию высоко, когда не передает, объясняя полученный результат). Попробуйте переместить штифт 1 на другой.
- Печать string and integer LCD
- Как отобразить символ º на ЖК-дисплее?
- Отправка значения с одного Arduino на другой
- Черные квадраты дисплея Arduino 16x2
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
Похоже, он ошибается на один или два наименее значимых бита. Так что проверьте проводку и так далее., @KIIV
Кстати, контакты Arduino 0 и 1 подключены к последовательному USB (на многих платах) - так что вы можете попробовать это без Serial.begin, и если это работает, просто переместите PIN(ы), чтобы не использовать pin arduino 1, @KIIV