Съдържание:
Видео: Генератор на персонализирани символи (Adafruit HT16k33 Matrix): 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Отпечатването на специални знаци на LCD дисплеи и светодиодни матрици е голямо забавление. Процедурата за отпечатване на специални символи или персонализирани знаци е да се генерира масив с двоични стойности за всеки ред и колона. Може да е забързано да се намери правилния код за всеки персонализиран знак, следователно този проект ще автоматизира и генерира код за 8x8 светодиодна матрица и също така ще отпечата персонализирания символ на Adafruit HT16k33 8x8 двуцветна матрица.
Adafruit HT16k33, 1,2 -инчова 8x8 двуцветна матрица комуникира с Arduino чрез I2C комуникационен протокол
Според Adafruit, "Тази версия на LED раницата е предназначена за 1,2" 8x8 матрици. Те измерват само 1.2 "x1.2", така че е жалко да се използва огромен набор от чипове, за да се контролира. Тази раница решава досадата от използването на 16 пина или куп чипове, като I2C матричен контролер с постоянен ток седи добре на гърба на печатната платка. Чипът на контролера се грижи за всичко, рисувайки всички 64 светодиода във фонов режим. Всичко, което трябва да направите, е да запишете данни към него, използвайки 2-пинов I2C интерфейс. Има два пина за избор на адрес, така че можете да изберете един от 8 адреса, за да контролирате до 8 от тях на една 2-пинова I2C шина (както и каквито и да е други I2C чипове или сензори, които харесвате). Чипът на драйвера може да „затъмни“целия дисплей от 1/16 яркост до пълна яркост на 1/16 стъпки. Той не може да затъмни отделни светодиоди, само целия дисплей наведнъж."
В тази инструкция ще ви обясня как да получите кода за всеки персонализиран знак в реално време и да го отпечатате на Led Matrix.
Стъпка 1: Компоненти
Тази инструкция е основен проект за Adafruit HT16k33 Matrix. Имате нужда от:
- Adafruit HT16k33 1,2 "x 1,2" 8x8 двуцветна матрица.
- Arduino (всеки вариант, но Uno е за предпочитане).
- Платка
- Захранване
Стъпка 2: Схематично
Окабеляване Adafruit HT16k33 Led матрицата е много лесна, тъй като трябва да свържем часовника и пина за данни, както обикновено правим за I2C устройства. Връзките ще бъдат като:
- SCL (Часовник на Matrix), свързан към A5 (Часовник на Arduino Uno. Вижте листа с данни за други варианти на Arduino)
- SDA (Data pin на Matrix), свързан към A4. (Вижте листа с данни за други варианти на Arduino)
- VCC свързан към 5V.
- GND свързан към 0V.
Можете също да се консултирате със схемата, показана на фигурата.
Стъпка 3: Код
Кодът на Arduino
Първо, ще включим всички необходими библиотеки.
- Wire.h:- За I2C комуникация
- Adafruit_LedBackpack
- Adafruit_GFX
Всички тези библиотеки са достъпни в самата IDE на Arduino. Просто трябва да ги инсталирате от Library Manager. Скица >> Включване на библиотека >> Управление на библиотеки
Функция за настройка ()
Задаване на 8-битов масив без знак без двоични стойности strore8 за 8 реда, по 8 бита всеки (8 колони). Задайте адреса за I2C комуникация.
Циклична функция ()
Тъй като трябва да отпечатаме знака, имаме нужда от кода за знака в реално време. Най -удобният метод е да изпратите кода серийно и Arduino ще прочете серийните данни и съответно ще отпечата знака. Серийното изпращане на масив може да бъде забързана работа, следователно можем да изпратим низ с всичките 8 кода (по 8 бита всеки), разделени със запетаи.
Четене на сериен низ:
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (данни); }
След като прочетем текста, трябва да декодираме този низ и да получим обратно двоичните стойности. Както знаем, форматът на входния низ винаги ще бъде един и същ. Можем да го кодираме, за да намерим поднизове и да преобразуваме низовете в техните десетични еквивалентни стойности. След това ще предадем генерирания десетичен масив (uint8_t), за да отпечатаме знака върху матрицата.
Конвертиране на низ от 8 бита в десетична:
int val (String str) {int v = 0; for (int i = 0; i <8; i ++) {if (str == '1') {v = v+мощност (2, (7-i)); }} връщане v; }
За да оцените десетичния еквивалент, използвайки функция за мощност (pow ()), трябва да се справите със стойности с двоен тип и следователно можем да напишем нашата собствена функция на мощност като:
int мощност (int база, int експонент) {int c = 1; for (int i = 0; i {c = c*base;} връщане c;}
Сега най -накрая ще напишем кода за отпечатване на знака, използвайки генерирания масив от 8 десетични стойности (по една за всеки ред).
void print_emoji (uint8_t emoji , цвят на низа) {matrix.clear (); if (color == "red") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } matrix.writeDisplay (); забавяне (500); }
Лесно ще разберете този код, тъй като първо изчистваме матрицата и след това показваме символа, използвайки масив от емотикони, използвайки функцията matrix.drawBitmap (). Не забравяйте да напишете „matrix.writeDisplay ()“след цялото форматиране, тъй като тази функция ще показва само всички форматирания, направени досега върху матрицата.
Сега можете да изпратите низ с всички кодови стойности и Arduino ще отпечата знака в матрицата. Можете да изтеглите кода на Arduino отдолу. За експериментални цели можете да пишете
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
този низ в сериен монитор и може да види символа в матрицата.
Сега трябва да изпратим серийните данни автоматично от софтуер, когато натиснем бутона "Печат". За да автоматизираме това, ще направим демонстрационна матрица 8x8 и ще предоставим възможност на потребителя да избере кои клетки да бъдат оцветени и след това софтуерът автоматично ще генерира кода и ще изпрати данните последователно до Arduino в низов формат. Избрах Processing за останалата част от работата си. При обработката можем да направим матрица, използвайки 64 бутона (правоъгълници с натисната функция) и можем да присвоим определена стойност и цвят в началото (Нека бъде бял цвят със стойност 0). Сега, когато бутонът е натиснат, ще преобразуваме цвета на бутона в черен и ще зададем стойността на 1. Ако потребителят натисне отново същия бутон, стойността му отново ще се промени на 0 и цветът ще се превърне в бял. Това ще помогне на потребителя да променя кода отново и отново лесно и може лесно да прави промени, без да изтрива отново цялата матрица. При щракване върху бутона „Печат“ще направим низ, подобен на този, показан по -горе за демонстрацията. След това низът ще бъде изпратен до конкретния сериен порт.
Можете да изтеглите кода за обработка отдолу. Това е първият ми код в обработка. Предложенията за подобрения начин на кодиране са високо оценени.
Можете да видите как изглежда графичният интерфейс и как героят се създава с помощта на системата. Едва ли ще отнеме секунди, за да създадете същия знак в матрицата.
Можете да изтеглите кода и изображенията на този проект от моето хранилище на GitHub.
Препоръчано:
LCD Invaders: Space Invaders Like Game на 16x2 LCD дисплей със символи: 7 стъпки
LCD Invaders: Space Invaders Like Game на 16x2 LCD дисплей със символи: Няма нужда да въвеждате легендарна игра „Space Invaders“. Най -интересната характеристика на този проект е, че той използва текстов дисплей за графичен изход. Това се постига чрез внедряване на 8 персонализирани знака. Можете да изтеглите пълния Arduino
K`nex Infinity държач за символи: 4 стъпки
K`nex Infinity Character Holder: Това е K`nex Infinity Character Holder. Той е компактен и е много удобен. Препоръчвам това на хора, чиито безкрайни герои са натъпкани в чекмедже и се съсипват
Adafruit Feather NRF52 Персонализирани контроли, не се изисква кодиране: 8 стъпки (със снимки)
Персонализирани контроли на Adafruit Feather NRF52, не се изисква кодиране: Актуализация 23 април 2019 г. - За графики за дата/час, използващи само Arduino millis () вижте Arduino Начертаване на дата/час/Регистриране с помощта на Millis () и PfodApp Най -новият безплатен pfodDesigner V3.0.3610+ генериран завършете скици на Arduino, за да начертаете данни спрямо дата/час u
Как да създадете 2d символ с контролер на символи в Unreal Engine 4 с помощта на Visual Script за компютър: 11 стъпки
Как да създадете 2d символ с контролер на символи в Unreal Engine 4 Използване на Visual Script за компютър: Как да създадете 2d символ с контролер на символи в Unreal engine 4 с помощта на визуален скрипт за компютър Здравейте, аз съм Джордан Стелц. Разработвам видео игри от 15 -годишна възраст. Този урок ще ви научи как да създавате основен герой с в
Как да гледате Starwars с компютърни символи в командния ред: 3 стъпки
Как да гледате Starwars с компютърни символи в командния ред: Това е просто странен трик, който научих, затова реших да публикувам това. Можете да гледате по -голямата част от началото на първия филм на Starwars, който е епизод IV от командния ред, направен от някой човек. Това е доста готино. ОТКАЗ ОТ ОТГОВОРНОСТ: Не взимам кредит за