День 3: Заметка 1: Разбор как программировать Arduino для работы с RGB матрицей
Всем привет!
🧑💻 Урок с разбором:
👉 как подключить зависимость
👉 как подготовить код для работы rgb матрицей
👉 перекраска панели в разные цвета, тест на битые пиксели
📷 К посту приложено два видео:
👉 первое - пример lifecoding с комментариями по ходу дела
👉 второе - результат работы
#Arduino
#RGBMatrix
#LifeCoding
Всем привет!
🧑💻 Урок с разбором:
👉 как подключить зависимость
Adafruit GFX Library к проекту👉 как подготовить код для работы rgb матрицей
👉 перекраска панели в разные цвета, тест на битые пиксели
📷 К посту приложено два видео:
👉 первое - пример lifecoding с комментариями по ходу дела
👉 второе - результат работы
#Arduino
#RGBMatrix
#LifeCoding
👍1
День 5: Заметка 1: Таймер обратного отсчета на Arduino с выводом на RGB панель
🤚 Всем привет!
Давайте сегодня посмотрим, как можно создать счетчик обратного отсчета в
👨💻 Для этого напишем небольшую программу, мы рассмотрим методы для работы с текстом экземпляра
👉 Пусть у нас перменная для хранения экземляра
Как мы разобрали в прошлом уроке:
👉
Для вывода текста на экран нам будет достаточно использовать следующие функции:
👉
👉
👉
👉
Вцелом этого будет достаточно.
В методе
Заводим переменную, которая будет хранить текущее состояние счетчика
В методе
Теперь добавим вывод значения переменной на матрицу, в каждом цикле надо добавить очистку экрана, в противном случае выводимый текст
будет накладываться на тот текст, который был выведен в прошлый раз.
По идее на этом все, но есть одна проблема, если счетчик дойдет до нуля, он станет отрицательным в следующем цикле.
Давайте подправим это, то есть если таймер дошел до нуля, то пусть нуль и выводится.
Можно немного улучшить код, выделив логику смены состояния счетчика и работы с текстом в отдельные методы:
В итоге метод
📷 Пример работы на видео (в следующем сообщении)
📷 Также пример написания кода в отдельном видео(в следующем сообщении), в конце я забыл добавить метод
В приложеном файле программы с видео он есть.
#Arduino
#RGBMatrix
#LifeCoding
🤚 Всем привет!
Давайте сегодня посмотрим, как можно создать счетчик обратного отсчета в
Arduino с выводом на RBG панель.👨💻 Для этого напишем небольшую программу, мы рассмотрим методы для работы с текстом экземпляра
RGBmatrixPanel👉 Пусть у нас перменная для хранения экземляра
RGBmatrixPanel называется matrix.Как мы разобрали в прошлом уроке:
👉
matrix.Color333(int r, int g, int b) - это функция, которая описывает цвет в формате RGB, она нам сегодня пригодиться, так как мы будем подкрашивать цифры счетчика в нужный нам цвет.Для вывода текста на экран нам будет достаточно использовать следующие функции:
👉
matrix.setTextColor(matrix.Color333(r, g, b)); - указываем, какого цвета будет текст👉
matrix.setCursor(int x, int y); - указывается начальная координата текста (верхний левый угол)👉
matrix.print(string text); - выводим текст 👉
matrix.setTextSize(int size); - указывает размер текста, size изменяется [1, 8], причем символ размером 1 занимает 8 на 5 пикселей на матрице.Вцелом этого будет достаточно.
В методе
setup() подготавливаем матрицу
void setup() {
matrix.begin();
}
Заводим переменную, которая будет хранить текущее состояние счетчика
int count = 10;
В методе
loop() уменьшаем значение на единицу с задержкой в 1 секунду
void loop() {
count = count - 1;
delay(1000);
}
Теперь добавим вывод значения переменной на матрицу, в каждом цикле надо добавить очистку экрана, в противном случае выводимый текст
будет накладываться на тот текст, который был выведен в прошлый раз.
void loop() {
//очистка экрана от текста, который был показан ранее
matrix.fillScreen(0);
//вывод на экран состояния счетчика
matrix.setTextColor(matrix.Color333(7, 0, 0));
matrix.setCursor(27, 13);
matrix.print(counter);
matrix.swapBuffers(false);
//уменьшение счетчика на единицу
count = count - 1;
delay(1000);
}
По идее на этом все, но есть одна проблема, если счетчик дойдет до нуля, он станет отрицательным в следующем цикле.
Давайте подправим это, то есть если таймер дошел до нуля, то пусть нуль и выводится.
void loop() {
//уменьшение счетчка на единицу
if (count > 0) {
count = count - 1;
}
delay(1000);
}
Можно немного улучшить код, выделив логику смены состояния счетчика и работы с текстом в отдельные методы:
void changeState() {
if (count > 0) {
count = count - 1;
}
}
void printCounter() {
printText(String(count));
}
void printText(string value) {
//очистка экрана от текста, который был показан ранее
matrix.fillScreen(0);
//вывод на экран состояния счетчика
matrix.setTextColor(matrix.Color333(7, 0, 0));
matrix.setCursor(27, 13);
matrix.print(value);
}
В итоге метод
loop():
void loop() {
printCounter();
changeState();
}
📷 Пример работы на видео (в следующем сообщении)
📷 Также пример написания кода в отдельном видео(в следующем сообщении), в конце я забыл добавить метод
matrix.swapBuffers(false), просто поторопился =). В приложеном файле программы с видео он есть.
#Arduino
#RGBMatrix
#LifeCoding
👍2