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

Бегущая строка на дисплее 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
LCD 1602 i2c Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Напомним, что дисплей имеет 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(), что уменьшает размер кода и производительность платы.


10 Replies to “LCD 1602 бегущая строка на Ардуино”

        1. Сделайте бегущую строку на дисплее в void setup и выводите текст после этого

    1. И я тоже так думаю компилирую скетч, а он пишет Ошибка компиляции для платы Arduino Uno.

      1. Если выходит ошибка, то это еще не значит, что проблема в скетче с бегущей строкой

  1. А как сделать бегущую строку, которая выходит из левой части экрана?

  2. Добрый день подскажите у меня только одна буква бегает в лево и право 1602А дисплей. Что делать???

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.