Точечная матрица arduino выключить прерывистый светодиод

Я сделал точечную матрицу, содержащую 10 строк и 12 столбцов, всего 120 светодиодов.

Я хочу включить светодиоды, как показано на рисунке, но когда я размыкаю землю 1, 2 и контакты 0, 1, 2

6 светодиодов загораются вместе. Какую конструкцию мне построить?

Схема:

Я попробовал построчно вот так:

 clear_cube();
 regWrite(cube[0][0], HIGH);
 set_array(4);
 // задержка (10);

clear_cube();
regWrite(cube[1][0], HIGH);
set_array(3);
// задержка (10);

clear_cube();
regWrite(cube[0][0], HIGH);
set_array(2);
// задержка (10); Когда я уменьшаю задержку, мигают 5 светодиодов.

100 50 10 0 задержка Youtube

, 👍0


2 ответа


1

Вы не можете просто включить их вот так.

Вместо этого вам нужно включить одну строку. Потом следующий ряд. Потом следующий. Очень быстро.

Итак, вы сначала отображаете:

O@OO
OOOO
OOOO

Затем вы показываете

OOOO
OO@O
OOOO

Затем вы показываете

OOOO
OOOO
O@OO

И вы проходите через это очень быстро. Обычно для запуска всего этого используется таймер. Тот факт, что вы используете '595, замедляет работу и затрудняет достаточно быстрое обновление, чтобы оно не мерцало.

,

я попробую это, @johnny003

Я пытался, но это не работает. Я обновляю код, как указано выше @Majenko♦, @johnny003

Этот код совершенно бессмыслен., @Majenko

Нет. regWrite включаю плюс и ставлю массив включаю землю. Заливаю видео 100 50 10 и 0 задержка, @johnny003

Похоже, это работает. Но, как я уже сказал, при использовании 595-го будет сложно сделать его не мерцающим. Вам нужно обновить *очень* быстро. В идеале сотни раз в секунду, хотя допустимы и десятки раз в секунду., @Majenko


0

Вы хотите мультиплексировать их по строкам или столбцам. Если вы делаете это столбцами, то сделайте следующее: Установите все столбцы на разомкнутую цепь. (все выключено.)

Установите выводы значений строки для первого столбца, затем активируйте вывод столбца для первого столбца. Загорятся светодиоды первой колонки.

Теперь задержитесь на короткий период (скажем, 20 мс) и перейдите к следующему столбцу. (Очевидно, что для этого нужно использовать цикл.) Повторите.

Вам следует писать свой код как конечный автомат с использованием millis(), а не с задержкой, иначе вы загоните себя в угол и напишете код, который полностью блокирует машину только для отображения светодиодная сетка. Если вы используете millis() и автомат для обработки сигналов, вы сможете делать другие вещи одновременно с циклическим переключением светодиодов

,