lcd.clear не работает с Serial.begin(9600) на Arduino Mega 2560

Итак, у меня есть стандартный ЖК-дисплей 16x2 с 16 контактами. ЖК-дисплей отлично работает со всеми остальными аспектами, однако функция «lcd.clear» не работает с «Serial.begin (ЛЮБОЙ БОД)». Я пытался изменить скорость передачи данных и обновить программное обеспечение платы, но это все равно не работает.

По сути, вместо того, чтобы очищать дисплей, как это должно быть, он отображает странный символ с 4 горизонтальными линиями (в одном символьном пространстве), а затем продолжает писать что-то после него.

Вот мой код:

#include <LiquidCrystal.h> 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); 

void setup() { 
 pinMode(8, INPUT);
 lcd.begin(16,2); 
 Serial.begin(9600);
}

void loop() { 
 lcd.print("incorrect"); 
 delay(3000); 
 lcd.clear(); 
 delay(100);
}

Каждый раз, когда я удаляю Serial.begin, все работает нормально, но когда я добавляю его, функция очистки больше не работает.

Итак, в этом случае происходит то, что Arduino печатает «неправильно», затем вместо очистки дисплея он печатает четыре горизонтальные строки, а затем продолжает бесконечно печатать «неправильно».

, 👍0

Обсуждение

Кажется, вы используете контакты UART для подключения ЖК-дисплея., @Dmitry Grigoryev


2 ответа


1

Контакты 0 и 1 — это аппаратные последовательные контакты на Mega. Если вы собираетесь использовать последовательный порт, вы не можете подключить ЖК-дисплей к этим контактам, иначе он не будет работать. Даже если вы подключены к Serial только через USB, контакты 0 и 1 по-прежнему действуют как Tx и Rx.

,

Правильно! Большое спасибо!, @Leo Feng

Не могли бы вы пометить ответ как принятый., @Delta_G


0

Приятель, вы используете те контакты, которые используются для связи, то есть контакты № 0 и 1 для RXD и TXD Посмотрите на изображение, вы заметите, что то, что вы пытаетесь сделать, неправильно

,