Altinkaya: турецкие корпуса для РЭА

Цветной POV дисплей 8х85 пикселов. Часть 2. Описание схемы

Продолжение
Начало читайте
здесь:

Часть 1. Описание идеи

Принципиальная схема POV дисплея

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов


Кликните для увеличения

 Перевод текста на  принципиальной схеме 

'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, 1 is GREEN LATCH ENABLE
PORTA, 2 is BLUE LATCH ENABLE
PORTA, 3 is LOW ADDRESS ENABLE
PORTA, 4 is HIGH ADDRESS ENABLE
PORTA, 5 is SENSOR INPUT
PORTA, 6 is NOT USED
PORTA, 7 is RGB DATA OUTPUT 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
I.E you need a value that will drive T1 into saturation when the LED is shining into the photo-diode
This means that the resistor needs to drop around 0.6V

Величина сопротивления 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 любезно поделился своим вариантом разводки. Все, что нужно, вы найдете здесь:

8x85_POV_PCB_layout.zip

Ниже несколько фотографий его проекта. Очень профессионально !

А отсюда можно загрузить схему в формате Eagle:

8×85_led_pov_display_schematic

Исходный код на ассемблере находится здесь:

rgb_led_pov_display

Продолжение читайте здесь

bradsprojects.com

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: 8x85 RGB POV Display. Part 2

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Блин, проблемы могут возникнуть с прошивкой 27С512.
  • Вопрос: Для чего это нужно в домашних условиях?
  • Дело не в том, для чего это нужно. Интересна сама реализация как устройтва, схемное решение, программное решение для микроконтроллера. Статья, в общем, мне понравилась.
  • Кто-нибудь сделал это? интересно.