Светодиодная матрица представляет собой набор светодиодов, сгруппированных в квадратную или прямоугольную матрицу. Каждый светодиод имеет отрицательный вывод (катод), который подключен к «земле», и положительный (анод), подключенный к источнику питания. Аноды и катоды соединены так, что образуют столбцы и строки. Таким образом, подавая питание от Arduino на определенные строки и столбцы, мы можем «зажигать» нужный светодиод.
Внешний вид, назначение контактов
Для управления матрицей 8×8 требуются 16 контактов (рис. L3.1, слева). Однако задействовать 16 контактов Arduino UNO для вывода символов на матрицу очень расточительно. Лучшим решением является использование специального расширителя выводов на базе микросхемы MAX7219. В этом случае для управления матрицей достаточно пяти контактов. Такие модули выпускаются в различном исполнении (рис. L3.1, справа).
Рис. L3.1. Светодиодная матрица 8×8 с модулем MAX7219
Схема подключения
Рис. L3.2. Схема подключения cветодиодной матрицы 8×8 с модулем MAX7219
Программный код
- Загрузите библиотеку LedControl для работы Arduino с модулем MAX7219. Для этого откройте Менеджер библиотек, выполнив команду Инструменты | Управлять библиотеками. Справа вверху в строке поиска введите LedControl. В открывшемся списке выберите LedControl by Eberhard Fahle. Нажмите кнопку Установка.
- Загрузите скетч из листинга L3.1 — на матрице появится смайлик, изменяющий «мимику» через каждую секунду.
Листинг L3.1. Вывод динамического смайла на светодиодную матрицу
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #include "LedControl.h" #include "binary.h" /* DIN подключен к пину 11 CLK подключен к пину 13 CS подключен к пину 8 */ LedControl matr=LedControl(11,13,8,1); // Счастливый смайл byte hf[8]= {B00111100,B01000010,B10011001,B10100101,B10000001,B10100101,B01000010,B00111100}; // Нейтральный смайл byte nf[8]= {B00111100,B01000010,B10000001,B10111101,B10000001,B10100101,B01000010,B00111100}; // Печальный смайл byte sf[8]= {B00111100,B01000010,B10100101,B10011001,B10000001,B10100101,B01000010,B00111100}; void setup() { matr.shutdown(0,false); //Включаем светодиодную матрицу matr.setIntensity(0,8); // Установка яркости на среднее значение matr.clearDisplay(0); // Очистка матрицы Serial.begin(9600); } void loop(){ //Вывод счастливого смайла matr.setRow(0,0,hf[0]); matr.setRow(0,1,hf[1]); matr.setRow(0,2,hf[2]); matr.setRow(0,3,hf[3]); matr.setRow(0,4,hf[4]); matr.setRow(0,5,hf[5]); matr.setRow(0,6,hf[6]); matr.setRow(0,7,hf[7]); delay(1000); //задержка 1 с //Вывод нейтрального смайла matr.setRow(0,0,nf[0]); matr.setRow(0,1,nf[1]); matr.setRow(0,2,nf[2]); matr.setRow(0,3,nf[3]); matr.setRow(0,4,nf[4]); matr.setRow(0,5,nf[5]); matr.setRow(0,6,nf[6]); matr.setRow(0,7,nf[7]); delay(1000); //задержка 1 с //Вывод печального смайла matr.setRow(0,0,sf[0]); matr.setRow(0,1,sf[1]); matr.setRow(0,2,sf[2]); matr.setRow(0,3,sf[3]); matr.setRow(0,4,sf[4]); matr.setRow(0,5,sf[5]); matr.setRow(0,6,sf[6]); matr.setRow(0,7,sf[7]); delay(1000); //задержка 1 с } |
Вы можете самостоятельно создавать собственные изображения для вывода на матрицу 8×8. Изображение можно смоделировать на обычном листке в клетку, в табличном редакторе MS Excel или онлайн. Например, на ресурсе http://arduino.on.kg/matrix-font можно создать и получить программный код собственного изображения или выбрать готовый символ (рис. L3.3).
Рис. L3.3. Моделирование изображения на матрице 8×8
Вам могут понадобиться
-
4-х разрядный семисегментный индикатор на базе драйвера TM1637
120₽96₽ -
Arduino. Большая книга рецептов, 3-е изд.
1925 ₽
1501 ₽ -
Умный дом на базе Arduino. Большой набор + КНИГА
15568 ₽
12454 ₽ -
Светодиодная матрица 8*8 с модулем MAX7219
140₽112₽