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

Управление светодиодной матрицей 8x8 без драйверов и библиотек

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

Arduino Nano R3
× 1
Светодиодный точечно-матричный дисплей, красный
× 1
Резистор в сквозное отверстие, 330 Ом
× 1

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

В этом видео показано, как управлять светодиодной матрицей 1088AS Common Cathode 8x8 без использования каких-либо микросхем драйверов, таких как MAX7219, и соответствующих библиотек.

Вскоре я создам второе руководство по управлению той же матрицей, но на этот раз с использованием MAX7219, и сравню результаты.

Полное руководство можно найти здесь:

Если вам нравится этот контент и вы хотите поддержать меня в создании похожих видео, перейдите на мою веб-страницу Patreon

https://www.patreon.com/MariosIdeas

Или

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

Код

  • Тестирование всех 64 светодиодов светодиодной матрицы 8x8
  • Отображение изображения кошки на светодиодной матрице 8x8 (мультиплексирование)
  • Прокрутка текста на светодиодной матрице 8x8 (мультиплексирование)
Тестирование всех 64 светодиодов светодиодной матрицы 8x8 Arduino
 // Идеи Марио // Тестирование всех 64 светодиодов в светодиодной матрице 8x8, зажигая их один за другим // Raws #define R1 2 # define R2 3 # define R3 4 #define R4 5 #define R5 6 #define R6 7 # определить R7 8 # определить R8 9 // Столбцы # определить C1 10 # определить C2 11 # определить C3 12 # определить C4 13 # определить C5 A0 # определить C6 A1 # определить C7 A2 # определить C8 A3void setup () {pinMode ( R1, ВЫХОД); pinMode (R2, ВЫХОД); pinMode (R3, ВЫХОД); pinMode (R4, ВЫХОД); pinMode (R5, ВЫХОД); pinMode (R6, ВЫХОД); pinMode (R7, ВЫХОД); pinMode (R8, ВЫХОД); pinMode (C1, ВЫХОД); pinMode (C2, ВЫХОД); pinMode (C3, ВЫХОД); pinMode (C4, ВЫХОД); pinMode (C5, ВЫХОД); pinMode (C6, ВЫХОД); pinMode (C7, ВЫХОД); pinMode (C8, OUTPUT); // Выключаем все светодиоды в начале скетча digitalWrite (R1, HIGH); digitalWrite (R2, HIGH); digitalWrite (R3, ВЫСОКИЙ); digitalWrite (R4, ВЫСОКИЙ); digitalWrite (R5, ВЫСОКИЙ); digitalWrite (R6, ВЫСОКИЙ); digitalWrite (R7, ВЫСОКИЙ); digitalWrite (R8, ВЫСОКИЙ); digitalWrite (C1, LOW); digitalWrite (C2, LOW); digitalWrite (C3, LOW); digitalWrite (C4, LOW); digitalWrite (C5, LOW); digitalWrite (C6, LOW); digitalWrite (C7, LOW); digitalWrite (C8, LOW);} void SelectRow (int row) {if (row ==1) digitalWrite (R1, LOW); иначе digitalWrite (R1, HIGH); если (строка ==2) digitalWrite (R2, LOW); иначе digitalWrite (R2, HIGH); если (строка ==3) digitalWrite (R3, LOW); иначе digitalWrite (R3, HIGH); если (строка ==4) digitalWrite (R4, LOW); иначе digitalWrite (R4, HIGH); если (строка ==5) digitalWrite (R5, LOW); иначе digitalWrite (R5, HIGH); если (строка ==6) digitalWrite (R6, LOW); иначе digitalWrite (R6, HIGH); если (строка ==7) digitalWrite (R7, LOW); иначе digitalWrite (R7, HIGH); если (строка ==8) digitalWrite (R8, LOW); иначе digitalWrite (R8, HIGH);} void SelectColumn (int column) {if (column ==1) digitalWrite (C1, HIGH); иначе digitalWrite (C1, LOW); если (столбец ==2) digitalWrite (C2, HIGH); иначе digitalWrite (C2, LOW); если (столбец ==3) digitalWrite (C3, HIGH); иначе digitalWrite (C3, LOW); если (столбец ==4) digitalWrite (C4, HIGH); иначе digitalWrite (C4, LOW); если (столбец ==5) digitalWrite (C5, HIGH); иначе digitalWrite (C5, LOW); если (столбец ==6) digitalWrite (C6, HIGH); иначе digitalWrite (C6, LOW); если (столбец ==7) digitalWrite (C7, HIGH); иначе digitalWrite (C7, LOW); если (столбец ==8) digitalWrite (C8, HIGH); иначе digitalWrite (C8, LOW);} void loop () {for (int i =1; i <9; i ++) {for (int j =1; j <9; j ++) {SelectRow (i); SelectColumn (j); задержка (100); }}} 
Отображение изображения кошки на светодиодной матрице 8x8 (мультиплексирование) Arduino
 // Идеи Марио // Отображение изображения кошки на светодиодной матрице 8x8 (мультиплексирование) // Исходные данные #define R1 2 # define R2 3 # define R3 4 # define R4 5 # define R5 6 #define R6 7 #define R7 8 #define R8 9 // Столбцы # определить C1 10 # определить C2 11 # определить C3 12 # определить C4 13 # определить C5 A0 # определить C6 A1 # определить C7 A2 # определить C8 A3int pause =300; int Cat [8] [8] ={{1,0,0,0,1,0,0,0}, {1,1,1,1,1,0,0,0}, {1,0 , 1,0,1,0,0,0}, {0,1,1,1,0,0,0,1}, {0,0,1,0,0,0,0,1}, {0,1,1,1,1,0,0,1}, {0,1,1,1,1,1,0,1}, {1,0,1,1,1,1,1 , 0},}; установка void () {pinMode (R1, OUTPUT); pinMode (R2, ВЫХОД); pinMode (R3, ВЫХОД); pinMode (R4, ВЫХОД); pinMode (R5, ВЫХОД); pinMode (R6, ВЫХОД); pinMode (R7, ВЫХОД); pinMode (R8, ВЫХОД); pinMode (C1, ВЫХОД); pinMode (C2, ВЫХОД); pinMode (C3, ВЫХОД); pinMode (C4, ВЫХОД); pinMode (C5, ВЫХОД); pinMode (C6, ВЫХОД); pinMode (C7, ВЫХОД); pinMode (C8, ВЫХОД); digitalWrite (R1, ВЫСОКИЙ); digitalWrite (R2, HIGH); digitalWrite (R3, ВЫСОКИЙ); digitalWrite (R4, ВЫСОКИЙ); digitalWrite (R5, ВЫСОКИЙ); digitalWrite (R6, ВЫСОКИЙ); digitalWrite (R7, ВЫСОКИЙ); digitalWrite (R8, ВЫСОКИЙ); digitalWrite (C1, LOW); digitalWrite (C2, LOW); digitalWrite (C3, LOW); digitalWrite (C4, LOW); digitalWrite (C5, LOW); digitalWrite (C6, LOW); digitalWrite (C7, LOW); digitalWrite (C8, LOW);} void SelectRow (int row) {if (row ==1) digitalWrite (R1, LOW); иначе digitalWrite (R1, HIGH); если (строка ==2) digitalWrite (R2, LOW); иначе digitalWrite (R2, HIGH); если (строка ==3) digitalWrite (R3, LOW); иначе digitalWrite (R3, HIGH); если (строка ==4) digitalWrite (R4, LOW); иначе digitalWrite (R4, HIGH); если (строка ==5) digitalWrite (R5, LOW); иначе digitalWrite (R5, HIGH); если (строка ==6) digitalWrite (R6, LOW); иначе digitalWrite (R6, HIGH); если (строка ==7) digitalWrite (R7, LOW); иначе digitalWrite (R7, HIGH); если (строка ==8) digitalWrite (R8, LOW); иначе digitalWrite (R8, HIGH);} void Set_LED_in_Active_Row (столбец int, состояние int) {if (столбец ==1) digitalWrite (C1, состояние); если (столбец ==2) digitalWrite (C2, состояние); если (столбец ==3) digitalWrite (C3, состояние); если (столбец ==4) digitalWrite (C4, состояние); если (столбец ==5) digitalWrite (C5, состояние); если (столбец ==6) digitalWrite (C6, состояние); если (столбец ==7) digitalWrite (C7, состояние); если (столбец ==8) digitalWrite (C8, состояние); } void loop () {для (int j =0; j <8; j ++) {SelectRow (j + 1); для (int i =0; i <8; i ++) {Set_LED_in_Active_Row (i + 1, Cat [j] [i]); } задержка (2 + пауза); } if (пауза! =0 и пауза> 100) пауза =пауза-100; if (пауза! =0 и пауза <=100) пауза =пауза-10;} 
Прокрутка текста на светодиодной матрице 8x8 (мультиплексирование) Arduino
 // Идеи Марио // Прокрутка текста на светодиодной матрице 8x8 (мультиплексирование) // Исходные данные #define R1 2 # define R2 3 # define R3 4 # define R4 5 # define R5 6 #define R6 7 #define R7 8 # define R8 9 // Столбцы # определить C1 10 # определить C2 11 # определить C3 12 # определить C4 13 # определить C5 A0 # определить C6 A1 # определить C7 A2 # определить C8 A3int position =0; int Marios_ideas [8] [54] ={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 , 0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0}, {0,1,0,0,0,1,0,0,1,1,0,0,1,1,1 , 0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1 , 1,0,0,1,1,0,0,0,1,1,0,0,0,0}, {0,1,1,0,1,1,0,1,0,0 , 1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0 , 0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,1,0,1,0 , 1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0 , 0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0}, {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0 , 1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1 , 0,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1 , 0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0 , 1,0,0,0,0,1,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0 , 1,0,1,0,0,1,1,0,0,1,0,0, 1,0,0,0,1,0,1,1,1,0,0,1,0 , 0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 , 0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0}}; void setup () {pinMode (R1, ВЫВОД); pinMode (R2, ВЫХОД); pinMode (R3, ВЫХОД); pinMode (R4, ВЫХОД); pinMode (R5, ВЫХОД); pinMode (R6, ВЫХОД); pinMode (R7, ВЫХОД); pinMode (R8, ВЫХОД); pinMode (C1, ВЫХОД); pinMode (C2, ВЫХОД); pinMode (C3, ВЫХОД); pinMode (C4, ВЫХОД); pinMode (C5, ВЫХОД); pinMode (C6, ВЫХОД); pinMode (C7, ВЫХОД); pinMode (C8, ВЫХОД); digitalWrite (R1, ВЫСОКИЙ); digitalWrite (R2, HIGH); digitalWrite (R3, ВЫСОКИЙ); digitalWrite (R4, ВЫСОКИЙ); digitalWrite (R5, ВЫСОКИЙ); digitalWrite (R6, ВЫСОКИЙ); digitalWrite (R7, ВЫСОКИЙ); digitalWrite (R8, ВЫСОКИЙ); digitalWrite (C1, LOW); digitalWrite (C2, LOW); digitalWrite (C3, LOW); digitalWrite (C4, LOW); digitalWrite (C5, LOW); digitalWrite (C6, LOW); digitalWrite (C7, LOW); digitalWrite (C8, LOW);} void SelectRow (int row) {if (row ==1) digitalWrite (R1, LOW); иначе digitalWrite (R1, HIGH); если (строка ==2) digitalWrite (R2, LOW); иначе digitalWrite (R2, HIGH); если (строка ==3) digitalWrite (R3, LOW); иначе digitalWrite (R3, HIGH); если (строка ==4) digitalWrite (R4, LOW); иначе digitalWrite (R4, HIGH); если (строка ==5) digitalWrite (R5, LOW); иначе digitalWrite (R5, HIGH); если (строка ==6) digitalWrite (R6, LOW); иначе digitalWrite (R6, HIGH); если (строка ==7) digitalWrite (R7, LOW); иначе digitalWrite (R7, HIGH); если (строка ==8) digitalWrite (R8, LOW); иначе digitalWrite (R8, HIGH);} void Set_LED_in_Active_Row (столбец int, состояние int) {if (столбец ==1) digitalWrite (C1, состояние); если (столбец ==2) digitalWrite (C2, состояние); если (столбец ==3) digitalWrite (C3, состояние); если (столбец ==4) digitalWrite (C4, состояние); если (столбец ==5) digitalWrite (C5, состояние); если (столбец ==6) digitalWrite (C6, состояние); если (столбец ==7) digitalWrite (C7, состояние); если (столбец ==8) digitalWrite (C8, состояние); } void loop () {for (int x =0; x <5; x ++) {for (int j =0; j <8; j ++) {SelectRow (j + 1); for (int i =0; i <8; i ++) {Set_LED_in_Active_Row (i + 1, Marios_ideas [j] [(i + position) -abs ((i + position) / 54) * 54]); } задержка (2); }} позиция =позиция + 1;} 

Изготовленные на заказ детали и корпуса

Схема


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

  1. Светоизлучающий диод (светодиод)
  2. Компактные драйверы светодиодов Maxim обеспечивают высокую эффективность и низкий уровень электромагнитных п…
  3. Мелодия танца в гробу
  4. Игра Arduino Pong на матрице 24x16 с MAX7219
  5. Светодиодная матрица + датчик движения дверной дисплей [Arduino Holiday]
  6. 8-кратное светодиодное освещение со звуком
  7. Четвероногий Arduino
  8. Светодиодная матричная лампа с горячим клеем
  9. Управление яркостью светодиода с помощью Bolt и Arduino
  10. Управление светодиодной матрицей 8x8 без драйверов и библиотек