Прокручиваемая светодиодная матрица 48 x 8 с использованием Arduino.
Компоненты и расходные материалы
| × | 1 | ||||
| × | 7 | ||||
| × | 56 | ||||
| × | 2 | ||||
| × | 21 | ||||
| × | 4 | ||||
| × | 6 | ||||
| × | 1 |
Необходимые инструменты и машины
| ||||
| ||||
|
Приложения и онлайн-сервисы
|
Об этом проекте
Всем привет!
Этот проект посвящен созданию программируемой прокручиваемой светодиодной матрицы 48x8 с использованием регистров сдвига Arduino UNO и 74HC595.
Это был мой первый проект с платой для разработки Arduino. Мой учитель бросил мне вызов - попытаться построить такую. Итак, в то время, когда я принял этот вызов, я даже не знал, как мигать светодиодом с помощью Arduino. Итак, я думаю, что даже новичок может сделать это, проявив немного терпения и понимания. Я нашел принципиальную схему в Интернете, и это была моя единственная ссылка на создание этого проекта. Я начал с небольшого исследования регистров сдвига и мультиплексирования в Arduino.
Схема
Сбор компонентов
Я собрал все компоненты из разных источников. Я купил этот светодиодный матричный дисплей с общим катодом 5 мм 8x8 на интернет-сайте.
Создание прототипа
На схеме показано, что один регистр сдвига используется для управления 8 строками, а для управления столбцами мы используем один регистр сдвига для каждых 8 столбцов.
Итак, если вы можете создать простую матрицу 8x8, вы можете просто скопировать часть схемы для управления столбцом и расширить матрицу до любого количества столбцов. Вам просто нужно добавить один 74hc595 на каждые 8 столбцов (один модуль 8x8), которые вы добавляете в схему. Помня об этом, я сделал свой прототип 8x8.
Этап пайки
Я взял отдельные точечные доски, чтобы сделать элементы управления строками и столбцами, и удлиненные провода и заголовки, чтобы соединить их вместе.
После того, как вы успешно создали матрицу 8x8, вам просто нужно последовательно подключить больше регистров сдвига с общими часами для управления столбцами. ему просто нужен один 74hc595, чтобы управлять всеми рядами. Таким образом, в зависимости от количества столбцов можно добавить больше регистров сдвига, количество столбцов, которые вы можете добавить, не ограничено.
Строительство второй половины
Поскольку в то время у меня не было доступа к 3D-печати, я обратился к местному плотнику с просьбой об этом.
Корпус, который он сделал, был намного больше, чем я ожидал, лучше спроектировать корпус меньшего размера с помощью Fusion 360 или любого другого программного обеспечения для проектирования и распечатать его на 3D-принтере. В корпусе проделаны отверстия для подключения кабеля питания и USB.
Код
Код можно найти в приложениях к этому проекту.
Здесь мы будем сканировать строки и кормить строки столбцов соответствующими логическими уровнями. Код будет определять скорость прокручиваемого сообщения, а также сообщения, которое мы собираемся отобразить. Направление прокрутки в коде по умолчанию справа налево, но с небольшими изменениями его можно реализовать и в других направлениях.
Результат
Спасибо! :)
Код
- Код Arduino для светодиодной матрицы 48x8
Код Arduino для светодиодной матрицы 48x8 C / C ++
Код Aduino для светодиодной матрицы 48x8. Соединения и код объясняются как комментарии в самом коде./ * /////////////////////////////// ///////////////////////////////////////////////// * Код Arduino для отображения прокручиваемых символов на 6 или более светодиодных матрицах 8x8. * * Количество матриц может быть увеличено с небольшим изменением кода. * * Комментарии даны для редактирования к каждому заявлению. * * Кодировано Prasanth KS * * Контакт:[email protected] * / * ////////////////////////////////// //////////////////////////////////////////////// char msg [] ="WELCOME WIZ"; // Измените текст здесь int scrollspeed =5; // Установите скорость прокрутки (ниже =быстрее) int x; int y; // Columnsint clockPin1 =2; // Вывод Arduino подключен к выводу 11 часов 74HC595int latchPin1 =3; // Вывод Arduino подключен к выводу защелки 12 74HC595int dataPin1 =4; // Вывод Arduino подключен к выводу данных 14 74HC595 // Rowsint clockPin2 =5; // Вывод Arduino подключен к выводу 11 часов 74HC595int latchPin2 =6; // Вывод Arduino подключен к выводу защелки 12 74HC595int dataPin2 =7; // Вывод Arduino, подключенный к выводу данных 14 74HC595 // BITMAP // Биты в этом массиве представляют один светодиод матрицы // 8 - это количество строк, 6 - количество светодиодных матриц, байтовое изображение [8] [7]; int numZones =sizeof (растровое изображение) / 8; // Одна зона относится к одной матрице 8 x 8 (группа из 8 столбцов) int maxZoneIndex =numZones-1; int numCols =numZones * 8; // ЗАЩИТА ШРИФТА byte alphabets [] [8] ={{0,0,0, 0,0}, // @ как ПРОБЕЛ // {8,28,54,99,65}, // <<{31, 36, 68, 36, 31}, // A {127, 73, 73, 73, 54}, // B {62, 65, 65, 65, 34}, // C {127, 65, 65, 34, 28}, // D {127, 73, 73, 65, 65}, // E {127, 72, 72, 72, 64}, // F {62, 65, 65, 69, 38}, // G {127, 8, 8, 8, 127}, // H {0 , 65, 127, 65, 0}, // I {2, 1, 1, 1, 126}, // J {127, 8, 20, 34, 65}, // K {127, 1, 1, 1, 1}, // L {127, 32, 16, 32, 127}, // M {127, 32, 16, 8, 127}, // N {62, 65, 65, 65, 62}, // O {127, 72, 72, 72, 48}, // P {62, 65, 69, 66, 61}, // Q {127, 72, 76, 74, 49}, // R {50 , 73, 73, 73, 38}, // S {64, 64, 127, 64, 64}, // T {126, 1, 1, 1, 126}, // U {124, 2, 1, 2, 124}, // V {126, 1, 6, 1, 126}, // W {99, 20, 8, 20, 99}, // X {96, 16, 15, 16, 96}, // Y {67, 69, 73, 81, 97}, // Z}; void setup () {pinMode (latchPin1, OUTPUT); pinMode (clockPin1, ВЫХОД); pinMode (dataPin1, ВЫХОД); pinMode (latchPin2, ВЫХОД); pinMode (часыPin2, ВЫХОД); pinMode (dataPin2, ВЫХОД); // Очистить растровое изображение для (int row =0; row <8; row ++) {for (int zone =0; zone <=maxZoneIndex; zone ++) {bitmap [row] [zone] =0; }}} // ФУНКЦИИ // Отображение растрового массива в матрицеvoid RefreshDisplay () {for (int row =0; row <8; row ++) {int rowbit =1 <=0; zone--) {shiftOut (dataPin1, clockPin1, MSBFIRST, битовая карта [строка] [зона]); } // переверните обе защелки одновременно, чтобы устранить мерцание digitalWrite (latchPin1, HIGH); // Верните высокий уровень на выводе защелки 1, чтобы сигнализировать микросхему digitalWrite (latchPin2, HIGH); // Верните на вывод защелки 2 высокий уровень для сигнальной микросхемы // Подождите delayMicroseconds (300); }} // Преобразует строку и столбец в бит растрового изображения и выключает / включает его, чтобы избежать Plot (int col, int row, bool isOn) {int zone =col / 8; int colBitIndex =x% 8; byte colBit =1 <
> 1; // Сдвинуть младший бит со следующей зоны на самый высокий бит этой зоны. если (зона
Схема
Только для справки. Информацию о штыревых соединениях см. В комментариях в коде.Производственный процесс
- Создание монитора Ambilight с помощью Arduino
- Arduino с Bluetooth для управления светодиодом!
- Светодиодная матрица + датчик движения дверной дисплей [Arduino Holiday]
- Четвероногий Arduino
- Управление яркостью светодиода с помощью Bolt и Arduino
- Перекидные часы Arduino с одной светодиодной матрицей
- Цветовой микшер Arduino RGB
- Управление светодиодной матрицей с помощью Arduino Uno
- FM-радио с использованием Arduino и RDA8057M
- Светодиодный уличный светодиод DMX RGB