Вывод различной информации на ЖК-дисплей 16×2 с Arduino (обучение работе с Proteus)

В данной статье рассматривается практический пример вывода информации на ЖК-дисплей 16×2 с использованием Arduino.
Проект создан специально для обучения работе с симулятором Proteus и демонстрирует принципы построения текстового интерфейса без использования кнопок и датчиков.

Вывод информации на LCD 16x2 Arduino

Скетч реализует автоматический вывод различной информации на экран: статус работы Arduino, время работы системы, простую визуальную индикацию активности и текстовую информационную строку. Все эффекты выполняются программно и хорошо подходят для изучения в среде Proteus.

Назначение проекта

Цель проекта — показать, как можно организовать структурированный вывод информации на стандартном ЖК-дисплее 16×2, используя только программную логику Arduino.

  • поочерёдный вывод разных экранов с информацией;
  • использование функции millis() вместо delay;
  • отображение времени работы микроконтроллера;
  • создание пользовательских символов;
  • реализация простой визуальной индикации.

Подобный принцип вывода информации применяется в индикаторах состояния, контроллерах, учебных стендах и простых встроенных устройствах.

Используемые компоненты

  • Arduino UNO;
  • ЖК-дисплей 16×2 (HD44780-совместимый);
  • Proteus 8 или 9 с поддержкой Arduino.

Принцип вывода информации

Программа выводит информацию на дисплей в виде нескольких логических экранов. Каждый экран отображает свой тип данных, а переключение между ними происходит автоматически раз в одну секунду с использованием функции millis().

  • текущий статус работы Arduino;
  • время работы системы в секундах;
  • визуальный индикатор активности;
  • информационную текстовую строку.

Перед выводом новых данных используется функция lcd.clear(), что обеспечивает корректное обновление экрана и предотвращает наложение текста.

Пользовательский символ и визуальная индикация

В скетче применяется функция lcd.createChar() для создания пользовательского символа — заполненного блока. Он используется для формирования простой визуальной индикации процесса.

Количество выводимых блоков зависит от значения счётчика времени,что позволяет наглядно показать активность работы программы. Такой приём часто используется в индикаторах выполнения и меню устройств.

Arduino-скетч

#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

unsigned long lastUpdate = 0;
int screen = 0;
int seconds = 0;

// символ анимации
byte bar[8] = {
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
};

void setup() {
  lcd.begin(16, 2);
  lcd.createChar(0, bar);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Arduino System");
  lcd.setCursor(0, 1);
  lcd.print("Starting...");
  delay(2000);
  lcd.clear();
}

void loop() {

  if (millis() - lastUpdate > 1000) {
    lastUpdate = millis();
    seconds++;
    screen++;
    if (screen > 3) screen = 0;
    lcd.clear();
  }

  switch (screen) {

    case 0:
      lcd.setCursor(0, 0);
      lcd.print("Status:");
      lcd.setCursor(0, 1);
      lcd.print("RUNNING");
      break;

    case 1:
      lcd.setCursor(0, 0);
      lcd.print("Uptime:");
      lcd.setCursor(0, 1);
      lcd.print(seconds);
      lcd.print(" sec");
      break;

    case 2:
      lcd.setCursor(0, 0);
      lcd.print("Processing");
      lcd.setCursor(0, 1);
      for (int i = 0; i < (seconds % 16); i++) {
        lcd.write(byte(0));
      }
      break;

    case 3:
      lcd.setCursor(0, 0);
      lcd.print("Website:");
      lcd.setCursor(0, 1);
      lcd.print("Arduino-Kid.ru");
      break;
  }
}

Работа проекта в Proteus

В симуляции Proteus ЖК-дисплей последовательно отображает все экраны, демонстрируя логику работы интерфейса. Переключение происходит автоматически, без использования кнопок или внешних сигналов.

Arduino к компьютеру подключать не требуется — вся работа выполняется внутри симулятора.

Запуск проекта в Proteus

  • распакуйте архив с проектом;
  • откройте файл .pdsprj;
  • проверьте путь к файлу .hex в свойствах Arduino;
  • нажмите Run Simulation;
  • смотрите автоматическое переключение экранов на ЖК-дисплее.

Если что-то не работает

Если возникают сложности с запуском проекта, рекомендуется сначала изучить базовые принципы работы с LCD.

Подробно разобран первый проект в Proteus:
Первый проект в Proteus — мигание светодиода

📁 Скачать примеры