Жидкокристаллический ЖК-дисплей и последовательный монитор не работают вместе

На моем Arduino Uno, когда я не использую последовательный порт, все кажется в порядке:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

void setup()
{
    // поместите сюда код установки для однократного запуска:
    lcd.begin(16, 2);
    lcd.clear();
    lcd.print("Prints");
    lcd.setCursor(0, 1);
    lcd.print("Well");
}

void loop()
{
    delay(1000);
}

Однако в тот момент, когда я открываю последовательный порт с помощью:

Serial.begin(9600);

Проблема начинается.

Очистка ЖК-дисплея не очищает его, а печатает символ с 4 горизонтальными линиями. Попытка переместить курсор напечатает другой неузнаваемый символ. При отправке данных в Arduino через последовательный порт на ЖК-дисплее появляется тарабарщина.

символ с 4 горизонтальными линиями

Есть идеи, почему? Есть ли способ одновременной работы с ЖК-дисплеем и последовательным портом? Мне нужен последовательный порт для управления Arduino из NodeJS.

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

void setup()
{
    // поместите сюда код установки для однократного запуска:
    lcd.begin(16, 2);
    lcd.clear();
    lcd.print("Prints");
    lcd.setCursor(0, 1);
    lcd.print("Well");

    Serial.begin(9600);

    while (!Serial)
    {
        ; // ждем подключения последовательного порта. Требуется только для родного USB
    }
}
    
void loop()
{
    lcd.clear(); // Это напечатает символ из 4 горизонтальных строк вместо очистки
    delay(500); 
}

, 👍0

Обсуждение

Какой тип Ардуино? На некотором контакте 1 находится один из аппаратных последовательных контактов. Вы не можете использовать этот контакт для других вещей, таких как ЖК-дисплеи, если вы используете последовательный порт., @Delta_G

@Delta_G Плата Arduino Uno, и вы правы. Смена пин-кода с 1 на 3 решила проблему. Спасибо! Интересно, у скольких из 846 000 зрителей этого YouTube была такая же проблема? https://www.youtube.com/watch?v=dZZynJLmTn8&pbjreload=101 :-), @Guy

Я сделаю это ответом. Пожалуйста примите, @Delta_G

@jsotola вопрос был отклонен, поэтому я подумал, что, возможно, исказил проблему. Я восстановил прежнее название по вашему предложению. Спасибо., @Guy

кто-то, вероятно, проголосовал за сообщение, потому что вы не проверили, какие контакты используются последовательным портом, @jsotola


1 ответ


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

3

На UNO контакт 1 является одним из аппаратных последовательных контактов. Вы не можете использовать контакт 0 или контакт 1 для других целей, если вы используете Serial в своем коде.

Даже если вы не используете Serial, вы используете контакты 0 и 1 при загрузке кода, а подключение других вещей может испортить этот процесс. Как правило, рекомендуется держаться подальше от контактов 0 и 1, если только вы не обязаны их использовать.

,