Вращающийся трансформатор для часов пропеллер на 1а. Часы пропеллер на Atmega8. Вкратце об основных модулях устройства

Наконец-то реализовал свою давнишнюю мечту - сделал часы-пропеллер! Я этой идеей загорелся несколько лет назад, когда увидел работу этих часов на You Tube.
Реализация задумки осложнялась тем, что все схемы, а их в интернете просто навалом, реализованы на PIC-контроллерах, а у меня до сих пор не получалось его прошить. Я перепробовал кучу программаторов но, либо руки у меня кривые, либо так на тот момент звёзды встали, однако все мои попытки не увенчались успехом. А схем на микроконтроллерах фирмы "Atmel", с программированием которых у меня проблем не возникает, я так не нашёл. Пытался сподвигнуть знакомых программистов на написание программы для AVR, но не нашли отклика в их душах. Может идея так и осталась бы похороненной под обломками рухнувшей надежды, но недавно стал просматривал свою коллекцию всевозможных схем на дисках, которые я купил на барахолке...



Небольшое обновление . Сделанные выше часы оказались сложными для повторения нашими читателями. Поэтому был сделан упрощённый вариант, без применения станков. Подробное


Эта статья об изготовлении необычных часов. У них есть много названий – часы пропеллер, часы Боба Блика. Экран этих часов не похож ни на один из привычных нам часов. Для отображения времени используется дисплей с механической разверткой. Он представляет собой быстро вращающийся рычаг с установленными на нем светодиодами, которые и формируют изображение.
Рычаг вращается с частотой около 1500 об/мин и диоды загораются и выключаются на строго определенное время. Поскольку рычаг вращается с большой скоростью то он почти незаметен, а мы видим только вспышки светодиодов. В каждом положении рычага светодиоды горят в определенной комбинации, что позволяет формировать графическую и текстовую информацию.
В зависимости от формы рычага дисплей может быть в виде цилиндра или диска. Прямой рычаг позволяет имитировать стрелочные часы.
Считается, что первым сделал подобные часы Боб Блик. В интернете можно найти большое количество разнообразных вариантов таких часов. Эти часы были построены по образцу Хенка Сотби.

Основные функции
Ниже приведены основные функции часов:
Отображение времени и даты
Установка всех параметров с пульта ДУ типа RC-5
Отображение времени в цифровом и стрелочном режими без даты и с датой
Отображение пятиминутных делений
Использованы 5 мм сверхяркие светодиоды
Бегущая строка со знакогенератором.
Бегущая строка длиной 128 символов записывается в EEPROM.
Демо режим. Циклическое переключение между бегущей строкой, аналоговым и цифровым дисплеем.

Установка временени
Поскольку вся электроника находится на вращающемся рычаге, то возникает вопрос: Как установить время? Во многих моделях время устанавливается на самом рычаге специальными кнопками. При такой конструкции Вы сможете увидеть установленное время только после запуска рычага. В случае неверной установки придется снова остановить рычаг и опять в слепую выставлять время. В настоящих часах уставновка производится с пульта ДУ. Особенно эффектно выглядит установка времени в стрелочном режиме.

Механика


Перейдем к самому сложному этапу изготовлению часов – механике. Для начала Вам необходим вентилятор от блока питания компьютера. Очень желательно использовать качественный вентилятор с шариковыми подшипниками это значительно удлинит жизнь Ваших часов. Как правило частота вращения компьютерных вентиляторов составляет 3000 об/мин или 50 оборотов в секунду. Такая частота вращения позволяет создать очень стабильное изображение. Но вращающийся с такой скоростью рычаг создает много шума. Поэтому я понизил частоту вращения до приемлемого уровня шума.


Передавать энергию с неподвижной части на вращающуюся можно разными способами. Наиболее распространен скользящий контакт. Такой способ имеет много недостатков – нестабильность контакта, шум, механический износ. В сделаных мною часах был использован более изящный способ. Трансформатор состоящий из подвижной и неподвижной работы. Его изготовление пожалуй самый ответственный этап при изготовлении часов. Прежде всего требуется аккуратно разобрать вентилятора. Для этого нужно отклеить наклейку с задней стороны. И аккуратно вытащить стопорное кольцо. После чего можно снять крыльчатку с ротором. Плассмасовая крыльчатка нам тоже больше не нужна. Снимаем ее с металлического основания и на него наматываем вторичную обмотку. Обмотка содержит около 150 витков обмоточного провода диаметром 0.3мм. Оринтировочно это слоев 5. Каждый слой был промазан силиконовым герметиком продается на любом строительном рынке) и просушен.

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

Зазор между первичной и вторичной обмоткой должен быть минимален. Реально получается где то 0.3 – 0.7 мм. Для изготовления первичной обмотки необходимо сделать оправку. Для этого берется любой цилиндр подходящего размера (мною был использован старый конденсатор) на который плотно наматывается необходимое количество бумаги до достижения нужного диаметра. Далее на эту оправку наматывается порядка 100 витков провода аналогично вторичной обмотке. После высыхания герметика оправка аккуратно вытаскивается. Получившееся кольцо из проволки центруется и фиксируется герметиком к основанию вентилятора. Таким образом мы получили трансформатор для передачи энергии к вращающимся частям.

Далее необходимо сделать датчик положения ротора. Для этого используется любой инфракрасный светодиод и фототранзистор. Светодиод устанавливается на неподвижном основании. Фототранзистор на вращающейся части на том же радиусе. Таким образом что бы фототранзистор засвечивался один раз за оборот. Удобно использовать разрезанную оптопару.

Электроника
Электроника часов состоит из двух частей – вращающейся и неподвижной.

Неподвижная часть
Принципиальная схема неподвижной части

Выполнена на микроконтроллере pic16f628, который декодирует команды с ИК приемника. Это позволяет включать-выключать ротор часов. Во включенном режиме микроконтроллер подает ШИМ сигнал на затвор транзистора который модулирует напряжение в первичной обмотке трансформатора. Частоту ШИМ придется подобрать самостоятельно. Для каждого трансформатора она имеет свое оптимальное значение. В моем варианте она имела значение около 7 Кгц. Недостаток этого небольшой свист ротора двигателя. Лучше если она будет больше 16 Кгц.

В выключенном режиме двигатель выключается. Затем через несколько секунд снижается скважность импульсов в первичной обмотке. В этом режиме энергия нужна только для поддержания хода часов.

Для регулировки частоты вращения двигателя используется микросхема LM317 которая включается ключом на полевом транзисторе.

Вращающаяся часть
Принципиальная схема вращающейся части

Энергия к вращающейся части поступает с обмотки на роторе. Напряжение с вращающейся части поступает на выпрямитель и стабилизатор дающий 5 В для питания микроконтроллера. На входе микроконтроллера будут сигналы с ИК датчика от пульта ДУ и датчика положения рычага.

Все светодиоды подключены через транзисторы включенные в режиме источников тока. Таким образом светодиоды защищены от перенапряжения, которое может достигать 40 вольт. Это напряжение может меняться в зависимости от одновременно включенных светодиодов. Ток диодов можно принять равным 50 ма, поскольку диоды работают в импульсном режиме.

В этом видео показаны интересные часы, которые называются пропеллер. На их изготовление потрачено три вечера. Ранее не было хорошей схемы этих часов. Теперь, когда очень хорошая, простая и удобная в сборке схема найдена, появилась возможность для её повторения. К схеме идут файлы с печатными платами. Схема часов простая, доступна для начинающих радиолюбителей, которые могут делать печатные платы и прошивать контроллер.

Радиодетали дешево можно купить в этом китайском магазине .

Почему часы называются пропеллером? Эту конструкцию вращает вентилятор, то есть кулер от компьютера. Как видите, на роторе стоит управляющая плата со светодиодами. Они создают эффект часов. Светодиодами управляют микропроцессоры, которые в определенные моменты зажигают светодиоды и получается эффект изображение в пространстве циферблата.

На видео изображение немного мигает, но это только лишь эффект видеосъемки. На самом деле все светит очень ярко и четко, особенно в темноте.

На видео показано, что можно правильно настроить время, управлять мотором, который вращает светодиоды.

Получились очень красивые интересные часы с необычным механизмом и принципом действия. Про часы с автоматическим заводом .

Часы пропеллер на движке от жесткого диска

Необычные динамические светодиодные часы на моторчике от жёсткого диска.

Часы пропеллер

Схема устройства:

Принципиальная схема Фото: 1

Принципиальная схема Фото: 2

Принципиальная схема Фото: 3

Принципиальная схема Фото: 4

Что же, когда все сомнения отложены в сторону, можно начать…

Для изготовления пропеллер-часов нам понадобятся:

* 2 листа Стеклотекстолита, один- двухсторонний(45*120мм), а второй-односторонний(35*60мм).
* Утюг и Хлорное железо(для травления плат).
* Моторчик от HDD диска.
* Паяльник с тонким жалом, мини-дрель.

Для часов:

* Драйвер LED MBI5170CD(SOP16, 8 bit) – 4 штуки.
* Часы реального времени DS1307Z/ZN(SMD, SO8) – 1 штука.
* Микроконтроллер ATmega32-16AU (32K Flash, TQFP44, 16MH) – 1 штука.
* Кварцевые резонаторы 16MHz – 1 штука.
* Кварцевые резонаторы 32kHz – 1 штука.

* Кер. конденсатор 100nF (0603 SMD) – 6 штук.
* Кер. конденсатор 22pF (0603 SMD) – 2 штуки.
* Кер. конденсатор 10mF*10v (0603 SMD) – 2 штуки.
* Резистор 10kOm (0603 SMD) – 5 штук.
* Резистор 200Om (0603 SMD) – 1 штука.
* Резистор 270Om (0603 SMD) – 1 штука.
* Резистор 2kOm (0603 SMD) – 4 штуки.
* Часовая батарейка и держатель для нее
* ИК светодиод
* ИК транзистор
* Светодиоды (0850) 33 штуки (один из них(крайний) можно другого цвета)

Для драйвера моторчика:

* Драйвер двигателя TDA5140A – 1 штука.
* Линейный стабилизатор 78M05CDT – 1 штука.
* Конденсатор 100 mF полярный (0603 SMD) – 1 штука.
* Кер. конденсатор 100 nF (0603 SMD) – 1 штука.
* Конденсатор 10 mF полярный (0603 SMD) – 2 штуки.
* Кер. конденсатор 10 nF(0603 SMD) – 1 штука.
* Кер. конденсатор 220 nF(0603 SMD) – 1 штука.
* 20 nF – 2 штуки.
* Резистор 10 kOm (0603 SMD) – 1 штука.

1)Сперва нам надо изготовить 2е платы.

Печатная плата вид снизу

Печатная плата вид сверху

2)Ищем старый ненужный жесткий диск для извлечения из него моторчика, в некоторых винчестерах моторчик крепиться не болтами, а запрессован в корпус, обратите на это внимание при выборе жёсткого диска, иначе придётся вырезать:)

Привет всем! Хочу предложить Вашему вниманию простые часы-пропеллер, которые я собрал на контроллере Atmega8. Они изготовлены из доступных деталей и их легко повторить и изготовить. Единственное что - необходим программатор для прошивки контроллера часов и пульта управления.

Для основания часов был использован обычный вентилятор 120 мм (кулер). Вентиляторы для этих часов можно использовать любые, как с вращением по часовой стрелке, так и против, потому что пока собирал эти часы, программу немного переделал и сделал переключение отображения символов с пульта программно.
Схема самих часов довольно простая и собрана на микроконтроллере Atmega8, для синхронизации работы которого использован часовой кварц с частотой 32768 Гц.
Часы питаются от приёмной катушки, энергия на которую передаётся с генератора с передающей катушкой. Обе эти катушки составляют воздушный трансформатор.

Со схемой и конструкцией генератора, особых проблем не возникло, так как был использован генератор от плазменного шара.

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

При включении генератора в первый раз, ширину импульсов (скважность) ставим на минимум (ручка регулятора в верхнем по схеме положении, то есть 4 нога через резистор R7 притянута к 14, 15, 2 ноге TL-494). Частоту генератора крутим, пока не исчезнет писк, это примерно 18-20 Кгц (настройка на слух), а если есть чем измерить частоту, то настраиваем её соответственно в этих пределах.
На плате генератора ещё дополнительно собран регулятор напряжения на LM317, предназначенный для регулировки скорости вращения вентилятора.
На схеме его нет, не дорисовал
. Посмотрите демонстрационное видео работы часов.

Видео.

Плата самих часов крепится к основанию вентилятора. Я закрепил её двухсторонним скотчем.

Потом переделал немного схему часов с фоторезистора на инфракрасный фотодиод (рисунок ниже).
В передатчике вместо простого светодиода, у меня теперь стоит инфракрасный.
Резистор вместо 2к поставил 100к.


Ответственными моментами при изготовлении часов являются - изготовление воздушного трансформатора и центровка (вернее балансировка) платы часов на основании вентилятора.

К этим моментам отнеситесь серьёзнее.

Воздушный трансформатор.

В основу взял кулер 120 мм обычный с бронзовыми втулками. Плата часов к основанию приклеена на двусторонний скотч.
С кулера откусываем лопасти и обтачиваем и выравниваем напильником, наждачкой. Катушки сделаны на каркасе из кабельного канала. Придумал такую конструкцию не я, просто взял эту идею из инета. Для намотки трансформатора делается основа из кабельного канала. Через каждые 5 мм на бортиках канала делаем надрез и аккуратно сворачиваем его в круг, диаметр подберите так, чтоб он плотно сел на пластмассовое основание вентилятора.

Далее на оправку из кабельного канала, наматываем 100 витков эмалированного провода, диаметром 0.25.
Ток потребления собранного трансформатора, у меня получился 200 мА (это с довольно заметным зазором между катушками).
В целом вместе с двигателем вентилятора, ток потребления получается в районе 0.4-0.5А.
Первичную (передающую) катушку делаем также, но стараемся сделать минимальный зазор между катушками. Передающая катушка тоже содержит 100 витков провода 0.3 (можно тем-же 0.25).
На схеме у меня немного другие моточные данные этих катушек.

Плата часов.

Планка со светодиодами сделана на стеклотекстолите. В ней сверлится отверстие, в это отверстие вставляется кусок трубки от телескопической антенны и припаивается к плате (трубочку антенны нужно зачистить от блестящего покрытия). Можно использовать любую подходящую трубочку, или прикрепить плату другим способом, например с помощью винта с гайками.
Плату со светодиодами соединил с платой часов обычным эмалированным (намоточным) проводом, он более жёсткий по сравнении с монтажным и не трепится при вращении.

Для балансировки всей платы, с другой её стороны приклеиваем термоклеем винт, диаметром 3-4 мм, накручивая с другой стороны на винт различные гайки - добиваемся минимальной вибрации.
Для проверки работоспособности платы часов - коротим фоторезистор отверткой, пинцетом, светодиоды при этом должны моргнуть.
Часы начинают работать при появлении 5В (логическая единица) на 5 ноге атмеги. То есть при освещении фоторезистора - на 5 ноге должно быть 5В,
Когда фоторезистор не освещён, на 5-й ноге атмеги должен быть логический 0 (около 0В), для этого подбираем резистор на землю с 5 ноги. На схеме стоит 2 кОм, у меня получилось 2.5 Ком.
Внизу на основании вентилятора приклеиваем светодиод так, чтобы при каждом обороте двигателя вентилятора - фоторезистор проходил как можно ближе к источнику света (светодиоду).

Пульт управления.

Пульт управления предназначен для управления работой часов, переключения режимов отображения индикацией (смена направления вращения вентилятора), установки времени часов.

Схема пульта собрана на микроконтроллере ATTINY2313. На плате установлен сам МК с обвязкой и шесть кнопок, предназначенных для управления часами.

Корпус для пульта собирать не стал, поэтому только фото самой платы.

Информация по назначению кнопок пульта;
H+ и Н- настройка часов
М+ и М- настройка минут
R/L смена направления (для винтов крутящихся по часовой и против часовой)
font смена шрифта (тонкий, жирный и надпись сайт)
при надписи сайт кнопками H+ и H - регулируется ширина надписи.

В прикреплённом архиве содержатся все необходимые файлы для сборки часов;

Архив для статьи

Если у Вас возникнут какие либо вопросы по конструкции часов, задавайте их на форуме, постараюсь по возможности помочь и ответить на возникшие вопросы.

В данном проекте часов-пропеллера используется так называемый POV (P ersistence O f V ision)-эффект или говоря по русски: эффект персистенции. Эффект основан на возможности нашего мозга и глаз соединять в одно изображение быстро меняющиеся (движущиеся или мерцающие) картинки. К примеру на этом основан эффект кинематографа.

На ютубе представлено множество различных видеороликов с POV-эффектом, однако среди них мало информации как сделать такие устройства своими руками. В нижеприведенном проекте я постараюсь описать процесс создания POV-устройства.

Цели и задачи проекта

Целью данного проекта является создание часов-пропеллера, использующих один цвет, с использованием POV-эффекта для создания оптической иллюзии. Устройство должно отображать изображение (точнее его часть в определенной точке) по всей окружности от 0° до 360° с точностью 1°. ИК-передатчик в паре с ИК-приемником, образуют нулевую точку для отслеживания местоположения пропеллера.

В нашем POV-девайсе используется два источника питания: один находится на плате пропеллера, второй управляет моторчиком, который вращает пропеллер. Принцип работы POV будет следующий: старт с нулевой точки, затем каждый 1° будут загораться в зависимости от местоположения пропеллера в круге 360°.

Используемые радиоэлементы

PIC18F252 - микроконтроллер. Основной элемент нашего устройства.

74LS373 (отечественный аналог 555ИР22) - регистр-защелка для управления светодиодами.

Компьютерный вентилятор (3800 об/мин) - я выбрал вентилятор с встроенным контроллером скорости и питания. Для POV-эффект требуется вентилятор с скоростью вращения не менее 3600 об/мин.

Инфракрасный светодиод и фототранзистор - пара этих элементов предназначена для отслеживания нулевой точки. Когда пропеллер пересекает нулевую точку, то в микроконтроллере срабатывает прерывание, по которому программа визуализации начинается с 0°.

Также, в проекте используются:
7805 +5В преобразователь
47мкФ конденсатор
40 МГц кварц
2x 330 резисторы
16x зеленые LED
ИК-диод
Фототранзистор
Макетная плата
Соединительные провода
9В держатель батарейки
PICkit2 программатор

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

Схема устройства не сложная и содержит три основных компонента: преобразователь 7805 в источнике питания, микроконтроллер PIC18F252 и регистр 74LS373 для управления светодиодами и ИК-диод и фототранзистор для отслеживания нулевой точки.

Вкратце об основных модулях устройства:

Источник питания
Стандартные +5В для питания микроконтроллера получаем через преобразователь LM7805 (корпус Т220). Выходной конденсатор служит для фильтрации бросков напряжения.

Управление светодиодами
В PIC18F252 использована 8-бит шина данных с 2 линиями управления 74LS373, которые включают или выключают светодиоды, в зависимости от пришедших данных. При данном схемотехническом решении в один момент времени возможно управление только одной микросхемой 74LS373, поэтому светодиоды загораются не со 100% синхронностью.

Отслеживание нулевой точки
Синхронизации изображения осуществляется при помощи нулевой точки, для отслеживания которой используется ИК-диод и фототранзистор. Когда свет от диода попадает на транзистор, он открывается и +5В от коллектора идут к +0В эмиттера. Контроллер PIC обнаруживает спад сигнала и отрабатывает программу возврата к нулевой точке.

О микросхеме 74LS373

Микросхема 74LS373 (отечественный аналог 555ИР22) представляет собой регистр-защелку с тремя состояниями выходов, содержащая в себе 8 D-триггеров. Даташит PDF .

Данную микросхему я использовал в качестве LED-драйвера. Выхода м/с включают или выключают соответствующие светодиоды. Каждая м/с имеет два входа управления: LE (Latch Enable) и OE (Output Enable). Ниже, я кратко опишу как применять эти входы в нашем проекте.

Output Enable (OE) - подключает/отключает выхода микросхемы. Вход инверсный. Если на входе 1, то выхода имеет состояние высокого сопротивления, если на входе 0, то данные передаются от входа к выходу (см. таблицу истинности в даташите).

Latch Enable (LE) - вход, в зависимости от состоянии которого м/с будет сохранять текущее состояние выходов, либо устанавливать новое состояние выходов, в зависимости от данных на входе. Если вход LE активен (логическая 1 на входе), то данные свободно передаются от входа к выходу. Если на входе 0, то данные не передаются, а выходное состояние зависит от предыдущего значения входов.

Расчет таймингов POV

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

Частота вращения вентилятора = 3800 об/мин
Найдем частоту вращения в секунду 3800/60 = 63.3333 об/сек.
1 полный круг = 1/63.3333 = 0.015789 секунд
1° вращения = 0.015789/360 = 0.000043859 секунд
Частота выполнения инструкции 40 МГц/4 = 10 МГц
Инструкций на 1° вращения = 43.86 мкс/10000000 = 438.6
Получается 438 инструкций на каждый 1° вращения

Т.о. зная частоту вращения вентилятора, мы можем найти время для поворота на 1°. У нас получилось значение 43.86 мкс, это будет интервал вызова прерывания микроконтроллера, по которому будет обновляться состояние светодиодов. Для получения полной картинки, нам нужно будет выводить для каждого из 360 градусов свое состояние светодиодов.

Отслеживание нулевой позиции

Для того, чтобы наш POV-проект был более точен в отображении картинки, я использовал контроль нулевой точки при помощи ИК-светодиода и фототранзистора. После того, как точка 0° пройдена, изображение сбрасывается и начинается новый цикл.

На видео выше показан пример простой схемы с использованием ИК светодиода. Когда ИК светодиод включен, фототранзистор детектирует излучение и выключает красный светодиод. Такой же принцип и используется в нашем проекте для обнаружения нулевой позиции.

На картинке выше показано, как реализовано отслеживание нулевой точки в нашем POV-проекте. Всякий раз, когда пропеллер проходит над ИК-светодиодом, транзистор открывается соединяя +5В с коллектора к земле эмиттера. Микроконтроллер PIC обнаруживает данный переход состояния и т.о. определяет нулевую точку.

Изготовление платформы пропеллера

На картинке ниже я собрал все детали, которые будут нужны нам для изготовления POV. Не показан только источник питания для вентилятора и ИК-диод.

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

Для этого, в основе сверлим четыре отверстия и закрепляем вентилятор в центре основы.

Прикрепляем небольшой кусок фанеры, при помощи клея или эпоксидки, к вентилятору.

Обрезаем лопасти вентилятора и прикрепляем держатель 9В батарейки.

Сверлим четыре отверстия в плате и закрепляем ее на 4-х шпильках фанеры. Стараемся соблюсти баланс.

Откручиваем плату и делаем ее прямоугольной. Затем опять прикрепляем.

Компоновка радиодеталей

При компоновке деталей на плате необходимо соблюдать баланс, чтобы при вращении не было дисбаланса. Старайтесь размещать детали ближе к центру и равномерно, в дальнейшем можно для балансировки прикрепить грузики на плату (я так и сделал, закрепив две монетки).

На макетной плате я использовал монтаж накруткой, так называемый олд-скул метод. Для микросхем использовал сокеты.

Для начала я разместил все сокеты и компоненты стабилизатора.

Следующим этапом, необходимо разместить светодиоды в один ряд на противоположной стороне платы.

После того, как все установлено, скручиваем или припаиваем все выводы согласно принципиальной схеме POV

Сначала, я соединил микроконтроллер PIC и триггеры

Затем, соединил светодиоды к источнику питания и схеме управления.

Последним шагом, я закрепил инфракрасный светодиод к основе.

ИК-светодиод должен быть закреплен очень прочно

И должен быть размещен напротив фототранзистора на плате.

Наш проект POV почти готов!

Осталось залить прошивку и протестировать

Программное обеспечение

Основные функции в программе это:
-High Priority RB0 Interrupt
-Low Priority Timer0 Interrupt

High Priority RB0 Interrupt

Работа данной функции прерывания высокого приоритета заключается в том, чтобы сбросить timer0 и начать вывод на LED с самого начала. Когда POV-эффект формируется, его отображение происходит много раз за секунду. Переменная led_count используется как счетчик прерываний таймера, чтобы знать какой выходной набор выводить на LED для отображения. INT0 также сбрасывается.

Low Priority Timer0 Interrupt

Void InterruptHandlerHigh() { if(INTCONbits.INT0IF) //check if INT0 interrupt flag is set { led_count = 325; WriteTimer0(0xFFE0); INTCONbits.TMR0IF = 0; //Clear TMR0 Flag INTCONbits.INT0IF = 0; } INTCONbits.GIEH = 1; }

По прерыванию от Timer0 уменьшается переменная led_count. Условие if/else используется для вывода данных часов/текста и т.п.

Тестирование POV

Мы подошли к заключительному этапу нашего проекта POV. Осталось запустить все и наслаждаться POV-эффектом. В клипе ниже, вы можете видеть все этапы конструирования и тестирование пропеллера-часов.

Интервалы в 1° легко успевает отрабатывать 40 МГц МК. Т.о. можно выводить как графическую информацию, так и текст, флэш памяти микроконтроллера я думаю хватит для любых паттернов

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

Скачать исходники

Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта сайт)

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Микроконтроллер PIC18F252 1 В блокнот
Регистр-защелка

SN74LS373

2 555ИР22 В блокнот
Линейный регулятор

LM7805

1 В блокнот
Фототранзистор 1 В блокнот
Электролитический конденсатор 47 мкФ 1 В блокнот
Резистор

47 Ом

1 В блокнот
Резистор