Пример 10. Светодиодная матрица
Примеры
ПРИМЕРЫ
- Пример 1. Светодиоды
- Пример 2. Подключение кнопки
- Пример 3. Переключатель
- Пример 4. Активный зуммер
- Пример 5. Пассивный зуммер
- Пример 6. Фоторезистор
- Пример 7. RGB-светодиод
- Пример 8. Семисегментный индикатор и 74HC595N
- Пример 9. Четырехразрядный 7-сегментный индикатор
- Пример 10. Светодиодная матрица
- Пример 11. Светодиодная шкала
- Пример 12. ЖК-дисплей
- Пример 13. Джойстик
- Пример 14. Вольтметр
- Пример 15. Термистор
- Пример 16. Модуль DHT11
- Пример 17. Модуль HC-SR04
- Пример 18. Датчик движения HC-SR501
- Пример 19. Матричная клавиатура
- Пример 20. ИК датчик и пульт
- Пример 21. Модуль часов DS-1302
- Пример 22. RFID-модуль RC522
- Пример 23. Сервопривод
- Пример 24. Модуль реле
- Пример 25. Двигатель постоянного тока
- Пример 26. Шаговый двигатель и драйвер ULN2003
- Пример 27. Драйвер двигателей на L298N
- Пример 28. MP3-плеер DFPlayer Mini
- Пример 29. Датчик уровня воды
- Пример 30. Serial Port
- Пример 31. Симуляция парковки
- Пример 32. Датчик температуры DS18B20
- Пример 33. Bluetooth-модуль HC-06
- Пример 34. Плата расширения с дисплеем и кнопками
- Пример 35. Плата расширения для двигателей на L293D
- Пример 36. Ethernet шилд W5100
- Пример 37. GSM/GPRS шилд SIM900
- Пример 38. GPS модуль Ublox NEO-6M
- Пример 39. Модуль считывания отпечатков пальцев
- Пример 40. Шаговый двигатель NEMA17 и драйвер TB6600
Светодиодная матрица — это графический индикатор, который можно использовать для вывода простых изображений, букв и цифр.
Более подробную информацию о светодиодных индикаторах можете найти в соответствующей заметке.
Расположение и электросхема светодиодной матрицы представлены ниже:
Описание:
В данном примере научимся пользоваться удобным матричным дисплеем 8×8 при помощи уже знакомого сдвигового регистра 74HC595N.
Компоненты:
Схема:
Скетч:
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 |
const int latchPin = 12; //пин соединяем с ST_CP сдв.регистра 74HC595 const int clockPin = 8; //пин соединяем с SH_CP сдв.регистра 74HC595 const int dataPin = 11; //пин соединяем с DS сдв.регистра 74HC595 //Столбцы int data[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//Null 0x00,0x3E,0x48,0x88,0x88,0x48,0x3E,0x00, //A 0x00,0x00,0x0C,0x12,0x12,0xFE,0x00,0x00, //d 0x00,0x00,0x7C,0x92,0x92,0x92,0x70,0x00, //e 0x00,0x00,0x7C,0x92,0x92,0x92,0x70,0x00, //e 0x00,0x00,0xFE,0x90,0x90,0x60,0x00,0x00, //p 0x00,0x00,0x10,0x10,0x7E,0x12,0x10,0x00, //t 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //Null }; //Строки unsigned char tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void setup () { //пины на вывод pinMode(latchPin,OUTPUT); pinMode(clockPin,OUTPUT); pinMode(dataPin,OUTPUT); } void loop() { for(int n = 0; n < 56; n++) { for(int t=0;t<100;t++) { for(int num=n; num < 8+n; num++) { shiftOut(dataPin,clockPin,MSBFIRST,data[num]); //посылаем данные (столбцы) функцией shiftOut ( http://arduino.ru/Reference/ShiftOut ) shiftOut(dataPin,clockPin,MSBFIRST,tab[num-n]); //посылаем данные (строки) функцией shiftOut digitalWrite(latchPin,HIGH); digitalWrite(latchPin,LOW); } } } } |
Модуль светодиодной матрицы с микросхемой MAX7219:
Гораздо проще использовать модуль матричного дисплея с микросхемой MAX7219, несколько модулей также удобно подключать в цепочку. Рассмотрим простейший пример подключения модуля к Arduino. Скачать используемые библиотеки:
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <SPI.h> #include <Adafruit_GFX.h> #include <Max72xxPanel.h> int pinCS = 9; int numberOfHorizontalDisplays = 1; // количество матриц по-горизонтали (в этом примере мы исп 1 модуль) int numberOfVerticalDisplays = 1; // количество матриц по-вертикали Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); void setup() { matrix.setIntensity(4); // яркость от 0 до 15 } void loop() { matrix.drawPixel(3, 4, HIGH); // зажигаем пиксель с координатами {3,4} matrix.write(); // вывод всех пикселей на матрицу delay(300); matrix.drawPixel(3, 4, LOW); // гасим пиксель matrix.write(); delay(300); } |