Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание пользовательских анимаций на LCD 16x2 с Arduino

Компоненты и материалы

Arduino UNO (или любая совместимая плата)×1
LCD-дисплей 16x2 (совместимый с HD44780), белый на синем×1
Резистор 220 Ом (можно 220–1к Ом, большее значение — тусклее подсветка)×1

Программное обеспечение и сервисы

О проекте

Библиотека LiquidCrystal упрощает работу с LCD на Arduino. Особенно интересна функция createChar(): можно создавать до 8 пользовательских символов (глифов), каждый задается массивом из 8 байт (по одному на строку). 5 младших бит каждого байта определяют пиксели в строке. Рисовать байты вручную утомительно, поэтому я сделал веб-инструмент, где можно нарисовать глифы мышкой, а код генерируется автоматически.

В этой статье показано, как создавать анимации, используя только Arduino и LCD. Это открывает возможности для игр, историй, 뮤직-клипов, декоративных панелей и многого другого.

Создание пользовательских анимаций на LCD 16x2 с Arduino
Создание пользовательских анимаций на LCD 16x2 с Arduino

Подключение LCD к Arduino

Подключение зависит от модели дисплея. Для одного из моих экранов работала схема ниже, для другого потребовался потенциометр для регулировки контраста (как в стандартном туториале).

Симуляция на TinkerCad: ссылка.

Создание пользовательских анимаций на LCD 16x2 с Arduino

Создание графики

Перейдите на инструмент и рисуйте. Одновременно можно использовать до 8 секций (глифов). Если не выбирается новый квадрат — проверьте, не заняты ли уже все 8 слотов.

Генерация кода

Когда первый кадр готов, снимите галочку «just the function». Скопируйте код в буфер обмена и загрузите в Arduino. На дисплее появится ваш кадр.

Создание дополнительных кадров

Сохраните текущий код. Нарисуйте второй кадр. Теперь поставьте галочку «just the function». Скопируйте функцию и вставьте в конец скетча. Переименуйте, например, в image01(). Перенесите вызов image() из setup() в loop(), добавьте задержку, вызов image01() и еще задержку. Для единообразия переименуйте первую функцию в image00(). Функция loop() должна выглядеть примерно так:

void loop() {
  image00(); delay(250);
  image01(); delay(250);
}

Загрузите скетч. Добавьте кадры или измените задержки.

Создание пользовательских анимаций на LCD 16x2 с Arduino

Код

Анимация метаморфозы бабочки (пример)
/* butterfly metamorphosis animation 2021 ~ by tusindfryd, public domain */
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

void setup() { lcd.begin(16, 2); }

void loop() {
  image00(); delay(250);
  image01(); delay(250);
  image02(); delay(250);
  image03(); delay(700);
  image04(); delay(250);
  image05(); delay(250);
  image06(); delay(700);
  image07(); delay(1250);
}

// Функции image00()...image07() определяют 8 пользовательских символов
// и выводят их на заданные позиции lcd.setCursor()/lcd.write().
// Полный код см. в исходнике проекта.

Полный код всех 8 кадров доступен в репозитории проекта.

Схемы

Создание пользовательских анимаций на LCD 16x2 с Arduino

Производственный процесс

  1. CDS представляет ClearVue3DP: высокояркие 3D прозрачные LCD для бесшовной интеграции
  2. Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
  3. Создание анимации и игр на LCD 16×2 с Arduino UNO
  4. Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
  5. Самодельный осциллограф на Arduino Nano (10 Гц – 50 кГц) с ЖК-дисплеем 128×64
  6. Создание PHP-веб-интерфейса для управления Arduino Uno
  7. Монитор частоты сердца на MAX30102 с Arduino Nano и дисплеем 16x2
  8. Надежная погодная станция на Arduino с датчиками DHT
  9. Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код
  10. 5 ключевых этапов проектирования прототипа печатной платы