16x2LCD дисплей последовательное чтение дополнительных символов
Я получаю дополнительный символ (хмурое лицо) при отправке текста по последовательному монитору(см. Прилагаемое изображение).
Когда пустая строка передается по последовательному монитору, ЖК-дисплей все еще показывает дополнительный символ хмурого лица.
Как мне избавиться от лишнего символа?
Я использую код учебника ниже и ничего не меняю в коде. https://www.arduino.cc/en/Tutorial/LibraryExamples/LiquidCrystalSerialDisplay/
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// initialize the serial communications:
Serial.begin(9600);
}
void loop() {
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
}
@pyl, 👍1
Обсуждение1 ответ
ЖК - дисплей немного отличается от обычной консоли. Например, он не распознает символ новой строки и использует соответствующий код ASCII (10), как обычную букву. В зависимости от буквенной карты вашего дисплея (для которой на рынке есть несколько вариантов) это приведет к печати более или менее случайного символа. Чтобы избежать этого, вы должны удалить последнюю букву из входной строки перед отправкой ее на дисплей.
По той же причине отправка пустой строки ничего не делает, так как пустая строка не отправляет писем. Чтобы очистить отдельные символы на дисплее, вам нужно перезаписать их пробелом.
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
Измените "Newline" на "No Line Ending" или обработайте завершение вручную (неплохая идея)., @dandavis
Я не вижу этого символа в общих наборах символов для драйверов типа HD44780. Что это за точное отображение? А вы уже играли с генератором символов ram (custom characters)?, @timemage