LCD 1602 бегущая строка на Ардуино

LCD 1602 Arduino бегущая строка

Бегущая строка на LCD 1602 Arduino ► может быть выполнена разными способами. Рассмотрим два варианта решения задачи с использованием цикла for в скетче.

Бегущая строка на дисплее LCD 1602 I2C Arduino может быть выполнена различными способами. Наиболее простой способ выполнить эту задачу — это использование цикла for в программе. Подробно рассмотрим два примера бегущей строчки на жк дисплее. Первый — простой скетч с циклом for. Второй, более сложный вариант, учитывающий количество символов в строке, выводимой на дисплей Arduino Uno.

Видео. Бегущая строка на LCD 1602

Мы уже рассматривали LCD 1602 подключение к Ардуино ранее в наших уроках. При использовании стандартной библиотеки LiquidCrystal.h можно использовать команду для прокрутки экрана: autoscroll();. Библиотека для дисплея Arduino с I2C модулем LiquidCrystal_I2C.h лишена этой возможности, поэтому потребуется в программе использовать цикл for или while для прокрутки строки на жк экране.

Как сделать бегущую строку на LCD 1602

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • жк дисплей LCD 1602;
  • провода папа-мама.
Подключение LCD 1602 к Arduino UNO через I²C
Подключение LCD 1602 к Arduino UNO через I²C

Напомним, что дисплей имеет 16 символов в одной строке (от 0 до 15), но в контроллере дисплея заложена память на 40 символов в строке. При использовании дисплея с модулем I2C для сборки схемы вам потребуется всего 4 провода. После подключения дисплея, загрузите следующий код. Пояснения к программе даны ниже, если у вас останутся вопросы, вы можете их оставить в комментариях к посту.

Скетч бегущей строки на LCD 1602 I2C

#include <Wire.h>                       // библиотека для протокола I2C 
#include <LiquidCrystal_I2C.h> // библиотека для дисплея

LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя дисплею

void setup() {
   LCD.init();            // инициализация LCD дисплея
   LCD.backlight(); // включение подсветки дисплея
   
   LCD.print("HELLO!"); // выводим надпись
   delay(1000);
}

void loop() {
   // передвигаем надпись вправо
   for (int i = 0; i < 10; i++) {
      LCD.setCursor(i, 0);
      LCD.print("HELLO!");
      delay(200);
      LCD.clear(); // очищаем экран
   } 
   // передвигаем надпись влево
   for (int i = 10; i > 0; i--) {
      LCD.setCursor(i, 0);
      LCD.print("HELLO!");
      delay(200);
      LCD.clear(); // очищаем экран
   }
}

Пояснения к коду:

  1. каждый раз в цикле for меняется переменная i, а значит и положение курсора. Через 200 мс надпись очищается и выводится в новом месте;
  2. бегущие буквы на дисплее можно сделать и с помощью цикла while Arduno.

В следующем примере используем команды из стандартной библиотеки LiquidCrystal.h — подключать ее в скетче не обязательно. Используем функции scrollDisplayRight и scrollDisplayLeft для перемещения строчки на дисплее в цикле for. При этом нам уже не требуется указывать местоположение надписи с помощью команды setCursor. Загрузите из следующего примера программу с перемещением надписи на дисплее.

Скетч для бегущей строчки на жк дисплее

#include <Wire.h>                       // библиотека для протокола I2C 
#include <LiquidCrystal_I2C.h> // библиотека для дисплея

LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя дисплею

void setup() {
   LCD.init();            // инициализация LCD дисплея
   LCD.backlight(); // включение подсветки дисплея
   
   LCD.print("HELLO!"); // выводим надпись
   delay(1000);
}

void loop() {
   // передвигаем надпись вправо
   for (int i = 0; i < 10; i++) {
      LCD.scrollDisplayRight();
      delay(200);
   } 
   // передвигаем надпись влево
   for (int i = 10; i > 0; i--) {
      LCD.scrollDisplayLeft();
      delay(200);
   }
}

Пояснения к коду:

  1. условия цикла for можно менять — зависит от количества символов в строчке;
  2. при использовании scrollDisplay уже не требуется очищать экран с помощью команды clear(), что уменьшает размер кода и производительность платы.
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Похожие записи по теме:

2 комментариев для “Пример: LCD 1602 бегущая строка на Ардуино”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *