- •Введение Как сделатьсветодиодный 3d Куб
- •1.Требующиеся навыки
- •2. Список компонентов
- •3. Заказ компонентов
- •4. Что является диодным кубом
- •5. Как работает светодиодный куб
- •6.Анатомия светодиодного куба
- •7. Размер куба и требующиеся порты ввода-вывода
- •8. Расширение количества портов io, за счет мультиплексирования
- •9. Расширение порта I/o, альтернативное решение
- •10. Требования к источнику питания
- •11.Создание или покупка источника питания
- •13. Выбор светодиодов
- •19.Требованияк пайке
- •20.Проверка светодиодов
- •21. Пайка слоёв
- •Начните с верхнего ряда.
- •22. Проверка площадок
- •23. Выравнивание контактов
- •24. Подгибание контактов
- •25. Спаивание слоев вместе
- •26. Создание корпуса
- •27. Установка куба
- •28. Элементы катода
- •29. Подключение кабеля
- •30.Сборка контроллера:расположение
- •31. Тактовая частота
- •32. Советы по пайке платы
- •33. Питание клеммы и фильтрующих конденсаторов
- •34. Гнезда ic, резисторы и разъёмы
- •35.Линии питания и мощность ic
- •37. Адрес селектора
- •38. Плата avr
- •39.Массив транзисторов
- •40. Кнопки и состояние светодиодов
- •42. Сделайте rs 232 кабелями
- •43.Подключение платы
- •44.Подключение куба
- •45. Программирование avr: Установка битов плавкого предохранителя
- •46. Программирование avr с тестовым кодом
- •47. Проверьте куб
- •48. Программирование avr с реальным кодом
- •49. Программное обеспечение. Введение
- •50. Программное обеспечение. Как это работает
- •51. Программное обеспечение. Инициализация портов ввода-вывода
- •52. Программное обеспечение.Метод генерации случайных чисел
- •53. Программное обеспечение. Прерывание
- •54. Программное обеспечение. Простые 3d-эффекты
- •55. Программное обеспечение. Действительное расположение куба
- •56. Программное обеспечение. Управлениеэффектами
- •5.Программное обеспечение. Эффект 1-дождь
- •58. Программное обеспечение. Эффект 2- самолет
- •59. Программное обеспечение. Эффект 3-отправление воксели в случайный z
- •60. Программное обеспечение. Эффект 4-рост и сжимание коробки
- •61. Программное обеспечение. Эффект-5, осивверх-вниз, приостановка ранда
- •62. Программное обеспечение.Эффект-6, летучая строка
- •63. Программное обеспечение. Rs 232 входа
- •64. Программное обеспечение пк. Введение
- •65. Программное обеспечение пк.Обновление темыкуба
- •66. Программное обеспечение пк. Эффект 1, рябь
- •67. Программное обеспечение pc: Эффект 2, sidewaves
- •68. Программное обеспечение pc: Эффект 3, фейерверк
- •69. Программное обеспечение pc: Эффект 4, Игра в жизнь 3d
- •70. Управляйте кубом на Arduino
- •71. Отладка аппаратных средств: сгоревшие светодиоды
8. Расширение количества портов io, за счет мультиплексирования
Из предыдущего шага ясно, что диодному кубу 8х8х8 необходимо 64+8 портов ввода-вывода. Микроконтроллера AVR с такимколичеством ног не существует.
Чтобы получить 64 выходные линии для анодов, необходимо создать простую схему мультиплексора.Эта схема будет подключать 11-ть линий вводак 64-м вывода.
Мультиплексор построен при помощи элемента, называемого«защелкой» или триггером. Мы будем называть их триггерами.
Этот мультиплексор использует 8-битныйтриггер, названный74HC574. У этой микросхемы есть следующие контакты:
- 8 входов (D0-7)
- 8 выходов (Q0-7)
- 1 «синхровход» PIN (CLK)
- 1 инверсный вход разрешения работыPIN(OE)
Микросхема 74HC574служит в качестве простой памяти,которая содержит 8 бит информации, и эти 8 бит считываются на выходных контактах. Рассмотрим первый триггер,подключив светодиод к выходуQ0.
Чтобы включить егоподайте V+ (1) на вход D0, затем подайте передний фронт импульса на СLK. Когда напряжение на контакте(CLK) изменяется с низкогона высокое, состояние входа, D0 "запоминается" и появляется на выходе Q0.Выход остается в этом состоянии независимо от будущих изменений на входе D0, пока не будутзагружены новые данные, подачей переднего фронта импульса на CLK снова. Необходимо создать массив, который сможет запомнить состояния 64 LEDs, для этого нужно у 8 чипов 74HC574входы D0-7 всех триггеров связать вместе 8-битнойшиной.
Для управления всеми светодиодами слоя, необходимо последовательно загрузить данныедляпервоймикросхемынашинуподать положительный перепад наконтакт CLKпервоготриггера. Загрузите данные второго ряда на шину подать “+” фронт импульсадля второго триггера. Загрузите данные третьего триггера на шину подать передний фронт импульса наCLKи т.д. и т.п.
Единственная проблема с этой схемой состоит в том, что мы нуждаемся в 8 линиях I/O, чтобы управлять линиями CLK каждого регистра. Решение состоит в том, чтобы использовать 74HC138. У этоймикросхемы есть 3 входных линии и 8 выходных. Входные линии используются, чтобы выбрать, какой из 8 выходов, будет в «0-м» состоянии,остальные же будут активны «1». Каждый выход на 74HC138 связан с CLK на одном из регистров.
Следующий псевдокод загрузит содержимое буфера на массив триггеров:
// PORT A = data bus, PORT B = address bus (74HC138)
// char buffer[8] holds 64 bits of data for the latch array
PORTB = 0x00; // This pulls CLK on latch 1 low.
for (i=0; i < 8; i++)
{
PORTA = buffer[i];
PORTB = i+1;
}
Активный выход 74HC138 определяется логическим «0». Запись в регистр происходит по положительному фронту.Чтобы вызвать нужныйрегистр, 74HC138 должна отставать на один шаг от счетчика i. Если бы активный уровень был ВЫСОКИМ, мы могли бы написать PORT_B = i; Вы, можете, подумать, что происходит, когда счетчик достигает 7, и на выходе PORT_B появляется 8 (1000 в двоичном коде) на последнем повторении цикла. Только первые 3 бита ПОРТА B связаны с 74HC138. Поэтому, когда на выходеPORT_B будет 8 или 1000 в двоичном коде, 74HC138 примет лишь 000, таким образом закончив цикл. (т. к. это начало в 0). Таким образом, 74HC138 будет выводить следующую последовательность: 1 2 3 4 5 6 7 0, давая возрастание импульса для текущего регистра согласно счетчику i.
