Назад

LCD 20x4 с Arduino: Hello World в Velxio

Введение

Добро пожаловать в очередной учебник Velxio! Сегодня мы соберем классический проект Hello World с использованием 20x4 LCD дисплея и Arduino Uno. Это отличный проект для новичков, желающих научиться подключать символьные LCD к микроконтроллерам. Мы будем использовать популярную библиотеку LiquidCrystal, которая значительно упрощает управление дисплеем.

К концу этой статьи вы сможете подключить 20x4 LCD, написать код для отображения текста на нескольких строках и даже показывать динамические данные, такие как время работы. Давайте начнем!

Схема подключения

Схема подключения lcd-hello на холсте симулятора Velxio

Наша схема состоит из двух основных компонентов: Arduino Uno и 20x4 LCD (модель wokwi-lcd2004). У LCD 16 контактов, но нам понадобятся только 6 для данных и управления. Вот подключение:

Мы используем 4-битный режим, который требует только четыре линии данных (D4–D7) вместо восьми. Это экономит ценные контакты ввода-вывода. LCD также требует питания (5V) и земли, но в Velxio они подключаются автоматически при размещении компонентов.

Чтобы собрать эту схему в Velxio:

  1. Откройте пример LCD Hello World или создайте новый проект.
  2. Используйте выбор компонентов, чтобы добавить Arduino Uno и 20x4 LCD. Модальное окно выбора компонентов Velxio с категориями
  3. Нажмите на контакты и перетащите провода в соответствии с подключениями выше. Вы можете изменить цвета проводов, нажав на образец цвета.
  4. Ваш холст должен выглядеть как схема выше.

Разбор кода

Исходный код lcd-hello в редакторе Monaco Velxio

Теперь давайте посмотрим на код. Откройте редактор кода в Velxio (вы увидите редактор Monaco с подсветкой синтаксиса). Вот полный скетч:

// LiquidCrystal Library - Hello World
// Demonstrates the use a 20x4 LCD display

#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(20, 4);
  // Print a message to the LCD.
  lcd.print("Hello, Arduino!");
  lcd.setCursor(0, 1);
  lcd.print("Velxio Emulator");
  lcd.setCursor(0, 2);
  lcd.print("LCD 2004 Test");
}

void loop() {
  // set the cursor to column 0, line 3
  lcd.setCursor(0, 3);
  // print the number of seconds since reset:
  lcd.print("Uptime: ");
  lcd.print(millis() / 1000);
}

Как это работает

  1. Подключение библиотеки: #include <LiquidCrystal.h> предоставляет доступ ко всем функциям LCD.
  2. Определение контактов: Мы создаем константы для номеров контактов: rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2. Они соответствуют нашей схеме.
  3. Создание объекта LCD: LiquidCrystal lcd(rs, en, d4, d5, d6, d7); сообщает библиотеке, какие контакты подключены.
  4. В setup():
    • lcd.begin(20, 4); инициализирует дисплей с 20 столбцами и 4 строками.
    • lcd.print() выводит текст на текущей позиции курсора.
    • lcd.setCursor(col, row) перемещает курсор на указанную позицию (нумерация с 0).
  5. В loop():
    • Перемещаем курсор на строку 3, столбец 0.
    • Выводим “Uptime: ” и затем millis() / 1000 (секунды с момента сброса).

Чтобы запустить код, нажмите кнопку Compile на панели инструментов, затем Run. Панель инструментов редактора Velxio с кнопками компиляции и запуска Панель инструментов холста Velxio над областью симуляции

Ключевые концепции

Частые ошибки и советы по отладке

Предлагаемые улучшения

Когда базовый Hello World заработает, попробуйте эти дополнения:

  1. Прокрутка текста: Используйте lcd.scrollDisplayLeft() или lcd.scrollDisplayRight() для создания прокручивающихся сообщений.
  2. Отображение данных с датчика: Считайте аналоговый датчик (например, потенциометр) и выведите его значение на LCD.
  3. Пользовательские символы: Создайте собственные символы с помощью lcd.createChar().
  4. Кнопочный ввод: Добавьте кнопку для смены отображаемого сообщения.
  5. Несколько экранов: Используйте конечный автомат для циклического переключения между разными страницами информации.

Попробуйте сами!

Готовы создать свой собственный проект с LCD? Откройте пример LCD Hello World в Velxio и начинайте экспериментировать. Вы можете изменять код, менять подключения или добавлять новые компоненты – все в вашем браузере, без необходимости в оборудовании.

Удачного творчества!


Поделиться:
David Montero

Автор

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Похожие статьи


Предыдущая статья
Последовательное эхо с Arduino: изучаем USART-связь
Следующая статья
Демонстрация TFT-дисплея ILI9341: графика и анимация мяча на Arduino