Продолжение
Начало читайте здесь:
Часть 1. Описание идеи
Принципиальная схема POV дисплея
Перевод текста на принципиальной схеме | |
'NOTES* |
Замечания |
The Leds are NOT seperate Red, Green and Blue LEDs They are just 8 RGB LEDs |
Светодиоды, изображенные на схеме, - это не 24 отдельных светодиода, а 8 RGB светодиодов |
Resistors R1 to R24 are all 100 ohm |
Все резисторы R1…R24 по 100 Ом |
V1 holds the RED LED data V2 holds the GREEN LED data V3 holds the BLUE LED data |
В регистр V1 записываются данные для КРАСНЫХ светодиодов, в регистр V2 записываются данные для ЗЕЛЕНЫХ светодиодов, в регистр V3 записываются данные для СИНИХ светодиодов |
V4 and V5 are used to access the full 16-bit address bus |
С помощью регистров V4 и V5 формируется полный 16-разрядный адрес E2PROM |
PORTA, 0 is RED LATCH ENABLE |
PORTA, 0 - разрешение записи в регистр КРАСНЫХ светодиодов PORTA, 1 - разрешение записи в регистр ЗЕЛЕНЫХ светодиодов PORTA, 2 - разрешение записи в регистр СИНИХ светодиодов PORTA, 3 - разрешение записи в регистр младшего байта адреса PORTA, 4 - разрешение записи в регистр старшего байта адреса PORTA, 5 - вход датчика вращения PORTA, 6 - не используется PORTA, 7 - разрешение отображения данных |
You need to experiment to get the correct value for R28 |
Величина сопротивления R28 подбирается опытным путем. Необходимо, чтобы при освещении фотодиода XR1 транзистор T1 входил в насыщение. Это означает, что на резисторе должно падать 0.6 В. |
Процесс рисования на самом деле довольно прост. PIC контроллер выставляет на адресную шину E2PROM код 00000000_00000000, выбирая самый первый адрес. Записанный по этому адресу байт данных выводится на шину данных, к которой подключены регистры 74373 КРАСНОГО, ЗЕЛЕНОГО и СИНЕГО цветов. Первый байт предназначается для включения красного цвета, поэтому контроллер разрешает запись в КРАСНЫЙ 74373. После того, как сигнал разрешения будет снят, в КРАСНОМ 74373 останется первый байт. Затем адрес инкрементируется (увеличивается на 1), и считанный байт данных записывается в ЗЕЛЕНЫЙ 74373, а после третьего инкремента в СИНИЙ.
Теперь, когда во все регистры 74373 записаны нужные данные, микроконтроллер выдает сигнал разрешения выходов регистров, и светодиоды включаются. Таким образом, одну колонку из 85 мы уже зажгли. Зажгли ненадолго, на маленькую долю секунды, а затем повторили процесс записи данных для следующей колонки. И так 85 раз подряд.
Самое важное тут не нарушать последовательности формирования цветов: КРАСНЫЙ, потом ЗЕЛЕНЫЙ, потом СИНИЙ.
Давайте подсчитаем. На одну колонку дисплея требуется один байт для красного цвета, один байт для зеленого и один для синего, или 24 бита на колонку. На кадр из 85 колонок нужно 3×85 = 255 байт или 2040 бит. Если использовать E2PROM типа 27E512, емкостью 64 кбит, в него можно будет записать 64К / 255 = примерно 255 кадров. Этого хватит даже для анимации !
Чтобы сообщать контроллеру, когда начинать отображение очередного кадра, я добавил к конструкции датчик положения. (Без него изображение на дисплее вращалось, как бы я ни подстраивал скорость вращения мотора). Датчик сделан из ИК светодиода, и расположенного напротив фотодиода. Пока поток излучения, идущего из светодиода, не прерван, через освещенный фотодиод идет большой ток, падение напряжения на резисторе R28 максимально, и n-p-n транзистор T1 открыт и находится в насыщении. На микроконтроллер от датчика поступает «лог. 0». На время, когда световой поток прерывается, ток через фотодиод исчезает, и транзистор открывается, посылая контроллеру «лог. 1». Таким образом контроллер узнает, когда начинать отображение следующего кадра. В качестве прерывателя я использовал обычный гвоздь.
Многие спрашивали меня, каким образом прикреплена плата к мотору. Объясняю.
За несколько долларов я купил упаковку электротехнических клеммников. Вот как выглядит один из них:
Здесь контакты вынуты из оболочки:
С помощью надфиля я немного ободрал один торец контакта клеммника и припаял его к нижней стороне печатной платы. Осталось вставить в отверстие клеммника вал мотора и затянуть два винта. И все ! Так я соединил свою плату с мотором.
К сожалению, переустанавливая систему на своем ноутбуке, я потерял файлы с топологией печатной платы. Но Dai Omie любезно поделился своим вариантом разводки. Все, что нужно, вы найдете здесь:
Ниже несколько фотографий его проекта. Очень профессионально !
А отсюда можно загрузить схему в формате Eagle:
8×85_led_pov_display_schematic
Исходный код на ассемблере находится здесь:
Продолжение читайте здесь