Оглавление:
Видео: Генератор пользовательских символов (матрица Adafruit HT16k33): 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Печать специальных символов на ЖК-экранах и светодиодных матрицах - это большое развлечение. Процедура печати специальных символов или настраиваемых символов заключается в создании массива с двоичными значениями для каждой строки и столбца. Может быть сложно найти правильный код для любого настраиваемого символа, поэтому этот проект автоматизирует и сгенерирует код для светодиодной матрицы 8x8, а также напечатает настраиваемый символ на Adafruit HT16k33 8x8 Bicolor Matrix.
Adafruit HT16k33, 1,2-дюймовая двухцветная светодиодная матрица 8x8, взаимодействует с Arduino через протокол связи I2C
По словам Adafruit, «эта версия светодиодного рюкзака рассчитана на 1,2-дюймовую матрицу 8x8. Их размеры всего 1,2 "x1,2", так что жалко использовать массив микросхем для управления им. Этот рюкзак решает проблему использования 16 контактов или связки микросхем, поскольку матричный контроллер постоянного тока I2C аккуратно расположен на задней части печатной платы. Микросхема контроллера обо всем позаботится, отрисовывая все 64 светодиода на заднем плане. Все, что вам нужно сделать, это записать в него данные с помощью 2-контактного интерфейса I2C. Есть два контакта выбора адреса, поэтому вы можете выбрать один из 8 адресов для управления до 8 из них на одной 2-контактной шине I2C (а также любых других микросхемах или датчиках I2C, которые вам нравятся). Микросхема драйвера может «затемнять» весь дисплей от 1/16 яркости до полной яркости с шагом 1/16. Он не может затемнять отдельные светодиоды, а только весь дисплей сразу ».
В этом руководстве я объясню вам, как получить код для любого настраиваемого символа в реальном времени и распечатать этот символ на светодиодной матрице.
Шаг 1: Компоненты
Это руководство является базовым проектом на Adafruit HT16k33 Matrix. Тебе нужно:
- Двухцветная светодиодная матрица Adafruit HT16k33 1,2 '' x 1,2 '' 8x8.
- Arduino (предпочтительнее любой вариант, кроме Uno).
- Макетная плата
- Источник питания
Шаг 2: Схема
Подключить светодиодную матрицу Adafruit HT16k33 очень просто, так как нам нужно подключить часы и вывод данных, как мы обычно делаем для устройств I2C. Подключения будут такие:
- SCL (тактовый вывод матрицы) подключен к A5 (тактовый вывод Arduino Uno. Другие варианты Arduino см. В таблице данных)
- SDA (вывод данных матрицы) подключен к A4. (Обратитесь к таблице данных для других вариантов Arduino)
- VCC подключен к 5В.
- GND подключен к 0 В.
Вы также можете ознакомиться со схемой, показанной на рисунке.
Шаг 3: Код
Код Arduino
Во-первых, мы включим все необходимые библиотеки.
- Wire.h: - Для связи I2C
- Adafruit_LedBackpack
- Adafruit_GFX
Все эти библиотеки доступны в самой Arduino IDE. Вам просто нужно установить их из Менеджера библиотек. Эскиз >> Включить библиотеку >> Управление библиотеками
Функция настройки ()
Установка беззнакового целочисленного 8-битного массива в двоичные значения Strore8 для 8 строк по 8 бит в каждой (8 столбцов). Установите адрес для связи I2C.
Функция цикла ()
Поскольку нам нужно напечатать символ, нам нужен код символа в реальном времени. Самый удобный метод - это послать код последовательно, и Arduino прочитает последовательные данные и соответственно распечатает символ. Последовательная отправка массива может быть сложной задачей, поэтому мы можем отправить строку со всеми 8 кодами (по 8 бит каждый), разделенными запятыми.
Чтение последовательной строки:
если (Serial.available ()> 0) {данные = Serial.readStringUntil ('\ n'); Serial.println (данные); }
После прочтения текста нам нужно декодировать эту строку и вернуть двоичные значения. Как известно, формат входной строки всегда будет одинаковым. Мы можем закодировать его, чтобы найти подстроки и преобразовать строки в их десятичные эквивалентные значения. Затем мы передадим сгенерированный десятичный массив (uint8_t) для печати символа в матрице.
Преобразование строки из 8 бит в десятичную:
int val (строка str) {int v = 0; for (int i = 0; i <8; i ++) {если (str == '1') {v = v + power (2, (7-i)); }} return v; }
Для оценки десятичного эквивалента с помощью функции мощности (pow ()) вам нужно иметь дело со значениями типа double, и, следовательно, мы можем написать нашу собственную функцию мощности как:
int power (int base, int показатель степени) {int c = 1; for (int i = 0; i {c = c * base;} return c;}
Теперь, наконец, мы напишем код для печати символа, используя сгенерированный массив из 8 десятичных значений (по одному на каждую строку).
void print_emoji (uint8_t emoji , цвет строки) {matrix.clear (); если (цвет == "красный") {matrix.drawBitmap (0, 0, эмодзи, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, эмодзи, 8, 8, LED_GREEN); } matrix.writeDisplay (); задержка (500); }
Вы легко поймете этот код, поскольку мы сначала очищаем матрицу, а затем отображаем символ с помощью массива эмодзи с помощью функции matrix.drawBitmap (). Не забудьте написать «matrix.writeDisplay ()» после всего форматирования, так как эта функция будет отображать только все форматирование, выполненное на данный момент для матрицы.
Теперь вы можете отправить строку со всеми значениями кода, и Arduino напечатает символ на матрице. Вы можете скачать код Arduino снизу. В экспериментальных целях вы можете написать
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
эта строка в Serial Monitor и может видеть символ в матрице.
Теперь нам нужно автоматически отправлять последовательные данные из программного обеспечения, когда мы нажимаем кнопку «Печать». Для автоматизации этого мы создадим демонстрационную матрицу 8x8 и предоставим пользователю возможность выбирать, какие ячейки должны быть окрашены, а затем программное обеспечение автоматически сгенерирует код и отправит данные в Arduino поочередно в строковом формате. Я выбрал Обработку для остальной части моей работы. В процессе обработки мы можем сделать матрицу, используя 64 кнопки (прямоугольники с нажатой функцией) и можем назначить определенное значение и цвет в начале (пусть это будет белый цвет со значением 0). Теперь всякий раз, когда кнопка нажата, мы преобразуем цвет кнопки в черный и установим значение 1. Если пользователь снова нажмет ту же кнопку, ее значение снова изменится на 0, а цвет снова станет белым. Это поможет пользователю легко изменять код снова и снова и легко вносить поправки, не стирая заново всю матрицу. Нажав кнопку «Печать», мы создадим строку, аналогичную показанной выше для демонстрации. Затем строка будет отправлена на конкретный последовательный порт.
Вы можете скачать код обработки снизу. Это мой первый код в обработке. Мы высоко ценим предложения по усовершенствованному способу кодирования.
Вы можете увидеть, как выглядит графический интерфейс и как персонаж создается с помощью системы. Создание такого же персонажа на матрице не займет секунды.
Вы можете скачать код и изображения этого проекта из моего репозитория GitHub.
Рекомендуемые:
Esp8266 тактовый генератор и генератор импульсов: 3 шага
Генератор тактовых импульсов и импульсов Esp8266: Это руководство предназначено для простого тестового оборудования; тактовый генератор и генератор импульсов. Он использует аппаратный интерфейс i2S на esp8266 для генерации тестовых тактовых импульсов или последовательности импульсов. Это упрощает сборку, так как не требуется специального оборудования
Генератор музыки на основе погоды (генератор MIDI на основе ESP8266): 4 шага (с изображениями)
Музыкальный генератор на основе погоды (Midi-генератор на основе ESP8266): Привет, сегодня я объясню, как сделать свой собственный небольшой музыкальный генератор на основе погоды. Он основан на ESP8266, который похож на Arduino, и он реагирует на температуру, дождь. и яркость света. Не ожидайте, что он сделает целые песни или аккордовые программы
Генератор - генератор постоянного тока с использованием геркона: 3 шага
Генератор - генератор постоянного тока, использующий геркон: простой генератор постоянного тока Генератор постоянного тока (DC) - это электрическая машина, которая преобразует механическую энергию в электричество постоянного тока. Важно: генератор постоянного тока (DC) может использоваться в качестве двигателя постоянного тока без какой-либо конструкции. изменения
Как создать двумерный персонаж с помощью контроллера символов в Unreal Engine 4 с помощью Visual Script для ПК: 11 шагов
Как создать 2-мерный персонаж с помощью контроллера символов в Unreal Engine 4 с помощью Visual Script для ПК: Как создать 2-мерный персонаж с контроллером символов в Unreal Engine 4, используя визуальный скрипт для ПК Привет, я Джордан Стелц. Я занимаюсь разработкой видеоигр с 15 лет. В этом уроке вы узнаете, как создать базового персонажа с помощью
Добавление пользовательских плат в Arduino IDE: 3 шага
Добавление пользовательских плат в Arduino IDE: Версия 1.6.4 Arduino IDE представила официальную поддержку добавления сторонних плат, совместимых с Arduino, в Arduino Board Manager. Эта поддержка добавления - отличная новость, потому что она позволяет пользователям быстро добавлять собственные доски всего одним щелчком мыши