Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Прокручиваемая светодиодная матрица 48 x 8 с использованием Arduino.

Компоненты и расходные материалы

Arduino UNO
× 1
74HC595 8-битный регистр последовательного на параллельный сдвиг
× 7
Резистор 475 Ом
× 56
Мужской заголовок 40, позиция 1, строка (0,1 ")
× 2
Женский заголовок 8, позиция 1, строка (0,1 ")
× 21
Печатная плата общего назначения 6 "x4"
× 4
Светодиодная матрица 8X8
× 6
Транзистор BC 548
× 1

Необходимые инструменты и машины

Паяльник (общий)
Пистолет для горячего клея (общий)
Цифровой мультиметр Digilent Mastech MS8217 с автоматическим выбором диапазона

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Всем привет!

Этот проект посвящен созданию программируемой прокручиваемой светодиодной матрицы 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; // Сдвинуть младший бит со следующей зоны на самый высокий бит этой зоны. если (зона  

Схема

Только для справки. Информацию о штыревых соединениях см. В комментариях в коде.

Производственный процесс

  1. Создание монитора Ambilight с помощью Arduino
  2. Arduino с Bluetooth для управления светодиодом!
  3. Светодиодная матрица + датчик движения дверной дисплей [Arduino Holiday]
  4. Четвероногий Arduino
  5. Управление яркостью светодиода с помощью Bolt и Arduino
  6. Перекидные часы Arduino с одной светодиодной матрицей
  7. Цветовой микшер Arduino RGB
  8. Управление светодиодной матрицей с помощью Arduino Uno
  9. FM-радио с использованием Arduino и RDA8057M
  10. Светодиодный уличный светодиод DMX RGB