Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Часы на PIC и светодиодных индикаторах
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Alex_NEMO
Добрый день!

Как-то давненько собирал часы на 145ИК1901 и ВЛИ (вакуумно-люменисцентные индикаторы). Там "фича" была - Авто Регулировка Яркости (АРЯ) индикаторов, в зависимости от освещенности в комнате, т.е. ночью они светились чуть, только чтобы заметно было, а днем - максимальная яркость.
В МК полный "чайник", пока только присматриваюсь, собираю материалы и т.д. Посему, есть две идеи:
1. Сделать питание индикаторов изменяющимся от внешнего освещения (фоторезистор, фотодиод).
2. Более грамотно - использовать ШИМ (по крайней мере, как я понял из прочитанного в форуме метод ШИМ позволяет делать то, что мне нужно - регулировать яркость индикаторов), при этом АЦП МК + датчик освещенности (фоторезистор, фотодиод) использовать как регулирующий элемент.

Я правильно мыслю или это полный бред?

Кто-то делал что-то подобное?
Vic
Цитата(Alex_NEMO @ Dec 8 2006, 14:47) *
Добрый день!

Как-то давненько собирал часы на 145ИК1901 и ВЛИ (вакуумно-люменисцентные индикаторы). Там "фича" была - Авто Регулировка Яркости (АРЯ) индикаторов, в зависимости от освещенности в комнате, т.е. ночью они светились чуть, только чтобы заметно было, а днем - максимальная яркость.
В МК полный "чайник", пока только присматриваюсь, собираю материалы и т.д. Посему, есть две идеи:
1. Сделать питание индикаторов изменяющимся от внешнего освещения (фоторезистор, фотодиод).
2. Более грамотно - использовать ШИМ (по крайней мере, как я понял из прочитанного в форуме метод ШИМ позволяет делать то, что мне нужно - регулировать яркость индикаторов), при этом АЦП МК + датчик освещенности (фоторезистор, фотодиод) использовать как регулирующий элемент.

Я правильно мыслю или это полный бред?

Кто-то делал что-то подобное?

Да, вроде все правильно, регулировка ШИМ единственное решение, а вот с измерением освещенности возможны варианты или взять МК с АЦП и дальше все просто, но дороже по цене или взять МК без АЦП и измерять соротивление фоторезистора, как в AN512(Microchip), но с фоторезисторами вроде как проблема, легче достать фотодиод. Посмотрите AN512
siregha
Все проще - вывод на светодиодные индикаторы как правило динамический и яркость зависит от послесвечения. Чем больше период поджига светодиодов - тем тусклее они светят.

Остается только определить освещенность в комнате.
GrayCat
Ну, упоминания о "послесвечении" и "периоде поджига" светодиодов я оставлю на совести siregha wink.gif а у меня сделано так:

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

Освещенность - фоторезистор (СФ3-1 или что-то в этом роде) на АЦП, с него - скользящее среднее на 20мсек (чтобы 50Гц с гармониками отсекать). Пробовал фотодатчик от мышки, но он чувствителен только в ИК, а ЛДС-ки, например, игнорирует напрочь wink.gif . Прикольно: комната освещена как днем, а часы это "не чувствуют" и погашены :-/
Alex_NEMO
Цитата(GrayCat @ Dec 12 2006, 15:54) *
Ну, упоминания о "послесвечении" и "периоде поджига" светодиодов я оставлю на совести siregha wink.gif а у меня сделано так:

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

Освещенность - фоторезистор (СФ3-1 или что-то в этом роде) на АЦП, с него - скользящее среднее на 20мсек (чтобы 50Гц с гармониками отсекать). Пробовал фотодатчик от мышки, но он чувствителен только в ИК, а ЛДС-ки, например, игнорирует напрочь wink.gif . Прикольно: комната освещена как днем, а часы это "не чувствуют" и погашены :-/

Уважаемый GrayCat, а в "конечном" виде можно это увидеть(Исходники, схема)?
kaligraf
Один из вариантов - регулировать яркость по времени суток. Скоро доделаю, а посмотреть(пока без исходников) можно здесь http://www.kaligraf.narod.ru/Точные часы и таймеры на микроконтроллерах
K_AV
Цитата(kaligraf @ Jun 12 2007, 14:36) *
Один из вариантов - регулировать яркость по времени суток.
Заведомо неправильный вариант (без всяких IMHO). Освещенность часов (необходимость повышать или понижать яркость) слабо связана с временем суток. Часы могут стоять днем в сильно затененном (вариант - без окон, или подвальном) помещении, а могут ночью стоять на ярко освещенном месте.
GrayCat
Цитата(Alex_NEMO @ Dec 12 2006, 19:18) *
Уважаемый GrayCat, а в "конечном" виде можно это увидеть(Исходники, схема)?

Лучше поздно, чем никогда! wink.gif

Вот, например, схема.
Нажмите для просмотра прикрепленного файла
Почти в любых "часах на PIC" это все можно увидеть. Ну разве что добавлены ионистор C7 с соответствующей диодной развязкой, да датчик освещенности VT3.

В качестве последнего, кстати, поначалу пытался использовать фотоприемники от дохлых мышей, но у них проблема: чувствительны в основном в ИК, и на ЛДС-ки ("экономки") не реагируют. Пришлось-таки купить фоторезистор wink.gif .

Если кому нужна паршивка -- обращайтесь...
kaligraf
Если умудриться использовать вход аналогового компаратора для контроля освещённости, то наверное можно обойтись без встроенного АЦП. Алгоритм вот только ??? Продумать надо этот вариант...

А насчёт переключения яркости от времени суток, так один из любителей паяльника повторил мою схему, и написал, что часы ночью слишком ярко освещают комнату - спать мешают smile.gif и соорудил дополнение к схеме - решил вопрос. Так что вариант вполне оправдан для использования в домашних часах.
GrayCat
Цитата(kaligraf @ Jun 16 2007, 06:50) *
Если умудриться использовать вход аналогового компаратора для контроля освещённости, то наверное можно обойтись без встроенного АЦП. Алгоритм вот только ???

Так там регулировка не плавная. Используется компаратор, его выход слегка фильтруется, и яркость переключается.
kaligraf
Если заряжать конденсатор через фотодатчик, и замерять количество импульсов, то может что-то похожее получится. Что-то вроде грубого АЦП. Придётся освобождать порты - добавлять сдвиговый регистр.
VicDzen
Привет всем.
Вариант с регулируемым периодом обновления индикации (регулировка времени послесвечения) считаю совсем не подходящим, потому как мерцание при небольших яркостях ОЧЕНЬ СИЛЬНО РАЗДРАЖАЕТ. Пробовал этот варинат.

Считаю наиболее оптимальным вариантом применение ШИМ на общем катоде/аноде. Как датчик освещенности использовать либо фоторезистор, либо фотоэлемент питания от любого сломаного калькулятора.
Математика ШИМ - тоже просто:
Имитируем плохую освещенность подбираем параметры ШИМ для этого варианта, заодно замеряем сопротивление фоторезистора или напряжение фотоэлемента.
аналогично имитируем хорошую освещенность, подбираем ШИМ и замеряем параметры датчика.
Далее линейная апроксимация сдвигами smile.gif или еще чемто между конечными значениями.

Успехов smile.gif
Светланчик
Да, Вы думаете совершенно правильно. Мы именно так и делаем. Можете посмотреть уже реализованные проекты посмотрите тут : Бегущие строки, табло валют, часы
Epikur
kaligraf
Очень, всё же, интересно, как получились часы такой высокой точности.
Вопрос для меня сейчас очень актуальный, ибо необходимо соорудить часы с тактированием от стандартного 32768 кварца с примерно вашей точностью. Простой компенсации таймера оказалось не достаточно, так как индикаторы немало греются и, похоже, температура начинает сказываться на частоте работы кварца.
GrayCat
Я когда-то сделал так: взял горку разного типа кварцев (на одну частоту все), впаивал их по очереди в генератор, подключенный к чатотомеру, и прогревал кварц паяльником. У кого меньше уход получился - того и поставил.

А в часах своих старых ("детская" поделка wink.gif ) регистром на 7-сегментник стоит К580ИР82. Греется как печка smile.gif . Вынешь плату из корпуса - спешать часы, вернешь в корпус - отстают...
dac
Цитата(Epikur @ Sep 16 2007, 12:35) *
kaligraf
Простой компенсации таймера оказалось не достаточно, так как индикаторы немало греются и, похоже, температура начинает сказываться на частоте работы кварца.

Если питание не батарейное
Термостатировать (делается в хороших радиостанциях) есть даже специальные микрухи, крепятся на кварц теплоотводом, и все теплоизолируется, рассчитаны вроде на поддержку 50грС. Еще где-то в журналах радио была схемка с той-же целью на транзисторе.
SKov
Цитата(Epikur @ Sep 16 2007, 12:35) *
kaligraf
индикаторы немало греются и, похоже, температура начинает сказываться на частоте работы кварца.


Можно измерять температуру и вводить поправочный коэффициент пересчета для разных температур.(Таблицу коэффициентов можно хранить в EEPROM).
Для измерения температуры можно взять стандартный модуль (типа DS1621) или смастерить самопальный измеритель.
Самый простой вариант такой:
берете терморезистор(номинал - почти любой, но лучше несколько килоом) и конденсатор(что-нибудь около 0.1 .. 1.0), соединенные параллельно. Один конец этой парочки вешаете на землю, второй - к ноге ПИКа. Далее работаете по следующему алгоритму:

1) Конфигурируете ногу Пика на выход и выдаете туда логическую единицу длительностью
около 0.2-1 сек. Смысл - зарядить конденсатор почти до напряжения питания Пика.
2) переключить вывод порта в режим ввода информации и запустить цикл наращивания
счетчика с проверкой состояния на этом входе Пика.
3) Конденсатор начинает разряжаться через терморезистор и время его разряда до уровня логического нуля зависит от температуры. Счетчик надо остановить в момент, когда Пик увидел, что на этом входе у него появился ноль. Показания счетчика будут (обратно)пропорциональны температуре.

Если терморезистор заменить на фотодиод(в обратном включении), то эта же схема будет замерять освещенность.
Такие схемы много раз реализовывались и показали неплохие результаты.
Марк_Я
Цитата(SKov @ Sep 21 2007, 11:24) *
Можно измерять температуру и вводить поправочный коэффициент пересчета для разных температур.(Таблицу коэффициентов можно хранить в EEPROM)....

+1
Только вход нужен с триггером Шмидта или компараторный.
Светланчик
[quote name='Светланчик' date='Aug 11 2007, 11:15' post='282036']
Да, Вы думаете совершенно правильно. Мы именно так и делаем. Можете посмотреть уже реализованные проекты посмотрите тут
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.