Наилучший способ назначить контакты светодиодному кубу?
Я сделал светодиодный куб размером 3x3x3, и мне было интересно, есть ли способ создать функцию в среде IDE Arduino, в которой каждый слой светодиодов может быть представлен списком, в котором 1 включен, а 0 выключен:
{1, 0, 1, 0, 1, 0, 0, 1, 0}
с первым номером списка, являющимся первым столбцом, затем вторым столбцом и т. Д., И то же самое для строк, которые были бы чем-то вроде {0, 1, 0}
. Имеет ли это смысл? Если да, то есть ли идея для функции, которая могла бы принимать эти входные данные и преобразовывать их в цифровые выходные данные? Для этого я использую Arduino Nano с выводами 2, 3, 4, 5, 6, 7, 8, 9, и 11 используется для столбцов, в которых A0, A1 и A2 являются строками куба.
@S. R. Colledge, 👍1
1 ответ
Что ж, изучение битовых манипуляций и использование трех uint16_t
(так как 9 бит не поместятся в uint8_t
) для хранения состояния для всего куба намного лучше. Затем вам нужно настроить таймер ISR
, и каждый раз, когда он срабатывает, отображается только один "этаж". Мультиплексирование можно выполнять даже в цикле, но оно обычно мерцает, так как вы не можете выполнить почти идеальное время, как в ISR
.
И, например, я использовал два сегмента 2x4x4 для создания
куба 4x4x4 и один
MAX7219
для его управления, так что мне не нужно обрабатывать все мультиплексирование и так далее.
Еще один мой подход заключался в использовании индивидуально адресуемых светодиодов, таких как WS2812B
, поэтому мне нужен был только один вывод, чтобы управлять всем этим. Или, используя передачи ARM
и DMA
, я мог бы управлять 8 или 16 линиями одновременно.
- Питание светодиодной ленты - Сколько ампер?
- Как управлять встроенными светодиодами Arduino Nano 33 BLE Sense?
- Есть ли функция Adafruit для инвертирования цветов моего экрана для языка Arduino?
- Почему некоторые контакты Arduino Nano (D3, D4, A3, A4, A6, A7) не могут быть установлены на высокий уровень?
- Мигающий светодиод при движении сервопривода
- Не удалось преобразовать «digitalWrite(8u, 1u)» из «void» в «bool»
- Можно ли запитать 25 светодиодов через USB?
- Как погасить светодиод за определенное время с помощью FastLED