Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ru_Led_Cube_0.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
139.56 Кб
Скачать

Шаг 6: Анатомия светодиодного куба

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

Светодиодный куб составлен из столбцов и слоев. Ножки катода каждого диода в слое спаяны вместе. Все ножки анода в одном столбце спаяны вместе.

Каждый из 64 столбцов связан с платой контроллера отдельным проводом. Каждым столбцом можно управлять индивидуально. У каждого из этих 8 слоев также есть отдельный провод, идущий на плату контроллера.

Каждый из слоев связан с собственным транзистором, который позволяет включать и выключать протекание тока через каждый слой.

Ток из столбцов с анодов может течь только через один слой через его открытый транзистор. Транзисторы других слоев в этот момент выключены, и изображение, существует только на одном слое.

Чтобы увидеть следующий слой, нужно выключить транзистор для текущего слоя, изменить номера светящихся светодиодов на изображение для следующего слоя и включить следующий слой открыв его транзистор.

Шаг 7: Размер куба и требующиеся порты ввода-вывода

Чтобы управлять светодиодным кубом надо два набора портов ввода-вывода. Один, источник для всех анодов, и один, для катодов.

Для анодной стороны куба, вам понадобится x ^ 2 портов ввода-вывода, где х ^ 3 – размер вашего светодиодного куба.

Для небольшого светодиодного куба, вы можете подключить столбцы и слои непосредственно к контактам микроконтроллера ввода-вывода. Для больших кубов этот ток будет слишком высокий.

Табличку сюда!!!

От 4 до 8 светодиодов!!!

Шаг 8: расширение порта io, больше мультиплексирования

Из предыдущего шага мы выяснили, что диодному кубу 8х8х8 необходимо 64+8 портов ввода-вывода. Не существует микроконтроллера AVR с таким DIP-корпусом.

Чтобы получить 64 выходные линии для анодов, необходимо создать простую схему мультиплексора. Эта схема будет мультиплексировать 11 линий ввода на 64 линий вывода.

Мультиплексор построен при помощи элемента, называемого «защелкой» или триггером. Мы будем называть их триггерами.

Этот мультиплексор использует 8-битный триггер IC, названный 74HC574. У этого чипа есть следующие контакты:

- 8 входов (D0-7)

- 8 выходов (Q0-7)

- 1 «защёлка» PIN (CP)

- 1 выход включающий PIN(OE)

Триггер служит в качестве простой памяти, которая содержит 8 бит информации, и эти 8 битов считываются на выходных контактах. Рассмотрим защелку с подключенным светодиодом к выходу Q0.

Чтобы включить его подайте V+ (1) на вход D0, затем подайте передний фронт импульса на СР. Когда напряжение на контакте (CP) изменяется с низкого на высокое, состояние входа, D0 "запоминается" на выходе Q0. Выход остается в этом состоянии независимо от будущих изменений на входе D0, пока не будут загружены новые данные, подачей переднего фронта импульса на контакт CP снова. Необходимо создать массив, который может запомнить состояния 64 LEDs, для этого нужно 8 чипов 74HC574. Входы D0-7 всех триггеров связать вместе 8-битной шиной.

Для загрузки / выключения всех 64 светодиодов необходимо: загрузить данные из первого фиксатора на шину. вытащить CP контакт первого низкой защелки затем высока. Загрузите данные второго замка на автобус. потяните булавку CP второго замка низко тогда высоко. Загрузите данные третьего замка на автобус. потяните булавку CP третьего замка низко тогда высоко. Полоскание и повторение.

Единственная проблема с этой установкой состоит в том, что мы нуждаемся в 8 линиях IO, чтобы управлять линией CP для каждого замка. Решение состоит в том, чтобы использовать 74HC138. У этого IC есть 3 входных линии и 8 продукций. Входные линии используются, чтобы управлять, какая из 8 линий продукции, которые потянутся низко в любое время. Остальные будут высоки. Каждый продукции на 74HC138 связан с булавкой CP на одном из замков.

Следующий псевдокодекс загрузит содержание буферного множества на множество замка:

//ДЕРЖИТЕ В СТРОЕВОЙ СТОЙКЕ = шина данных//ПОРТ B = адресная шина (74HC138)//, буфер случайной работы [8] держит 64 бита данных для множества замка

PORTB = 0x00;//Это надевает CP на замок 1 низко. для (i=0; я <8; я ++) {

PORTA = буфер [я];

PORTB = i+1;

}

Продукции 74HC138 активны НИЗКО. Это означает, что продукция, которая активна, потянулась НИЗКО. Булавка замка (CP) на замке является возрастающим спусковым механизмом края, означая, что данные запирают, когда это изменяется от НИЗКО до ВЫСОКО. Вызвать правильный замок, 74HC138 должно остаться один шаг перед прилавком i. Если это был активный ВЫСОКИЙ чип, мы могли бы написать PORTB = я; Вы, вероятно, думаете, что происходит, когда прилавок достигает 7, который означал бы, что продукция на PORTB равняется 8 (1000 наборов из двух предметов) на последнем повторении для () петля. Только первые 8 битов ПОРТА B связаны с 74HC138. Поэтому, когда порт B продукции 8 или 1000 в наборе из двух предметов, 74HC138 читает 000 в наборе из двух предметов, таким образом заканчивая его цикл. (это началось в 0). 74HC138 теперь производит следующую последовательность: 1 2 3 4 5 6 7 0, таким образом давая изменение от НИЗКО до ВЫСОКО для текущего замка согласно счетчику i.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]