Запилил я намедни ИК-локатор на ATmega8, чём-то TSOP-подобном из старого телека и светодиоде из пульта от детской игрушки - из того, что было в общем-то. Работает. И задумался я о регулировке чувствительности. Решил пойти путём уменьшения частоты сигнала светодиода, провёл эксперименты, в принципе работает, но хотелось бы более точной регулировки. Можно попробовать изменять скважность импульсов, но не уверен, что возможно завести аппаратный ШИМ на частоте 36 килогерц (тем более хочется иметь возможность портировать код под большую часть AVRок). Остаётся вроде как последний вариант: управлять яркостью светодиода каким-либо способом. Вот тут мне пригодятся ваши советы, чтобы избавить от заведомо неподходящих решений. Можно попробовать сделать R-2R матрицу и регулировать при помощи неё ток на светодиоде, а следовательно и яркость. Можно загнать на светодиод ШИМ (с большей частотой, чем 36 килогерц), тогда импульсы будут промодулированы сразу двумя частотами (36 килогерц, каждый импульс которой будет состоять из импульсов частоты ШИМа), но боюсь, что TSOP-у это не понравится. Можно сгладить ШИМ RC цепочкой и снова регулировать ток на светодиоде, как и в случае с R-2R матрицей.
P.S. Электроникой увлекаюсь с детства, временами, очень поверхностно, микроконтроллерами занимаюсь менее полугода, но уже более основательно. Поэтому строго не судите, если какие-то из описываемых подходов слишком нубские.
Управление яркостью IR светодиода в схеме локатора
-
Phantom Art
- Родился
- Сообщения: 15
- Зарегистрирован: Чт июл 09, 2015 21:34:36
- НАПАЛМ
- Это не хвост, это антенна
- Сообщения: 1314
- Зарегистрирован: Пт ноя 27, 2009 19:47:13
- Откуда: Казань
Re: Управление яркостью IR светодиода в схеме локатора
Можно сгладить ШИМ RC цепочкой и снова регулировать ток на светодиоде
Так Дихалт на тиньке 2313 АЦП делал с свое время, даже статья осталась.
Вообще, да, этим сглаженным сигналом, путем изменения скважности ШИМ, управляете нагрузкой.
- Николай_С
- Друг Кота
- Сообщения: 6190
- Зарегистрирован: Вт сен 25, 2012 23:13:41
- Откуда: г.Дзержинск Нижегородской обл.
- Контактная информация:
Re: Управление яркостью IR светодиода в схеме локатора
Не вижу проблемы.
Питайте светодиод управляемым драйвером, например, PT4115. У них имеется вход для цифрового/аналогового управления рабочим током светодиода.
Питайте светодиод управляемым драйвером, например, PT4115. У них имеется вход для цифрового/аналогового управления рабочим током светодиода.
Спасение утопающих дело рук самих утопающих.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью IR светодиода в схеме локатора
Вроде бы я встречал где-то, что чувствительность датчика типа TSOP сильно зависит именно от скважности. От частоты тоже зависит.
Проведите ряд экспериментов, меняя скважность и/или частоту заполнения импульсов - что вам будет проще. Мне кажется, скважность будет проще, можно использовать стандартный режим таймера, высокая разрядность вам не требуется, 36 килогерц - запросто получится.
Проведите ряд экспериментов, меняя скважность и/или частоту заполнения импульсов - что вам будет проще. Мне кажется, скважность будет проще, можно использовать стандартный режим таймера, высокая разрядность вам не требуется, 36 килогерц - запросто получится.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Phantom Art
- Родился
- Сообщения: 15
- Зарегистрирован: Чт июл 09, 2015 21:34:36
Re: Управление яркостью IR светодиода в схеме локатора
НАПАЛМ писал(а):Можно сгладить ШИМ RC цепочкой и снова регулировать ток на светодиоде
Так Дихалт на тиньке 2313 АЦП делал с свое время, даже статья осталась.
Вообще, да, этим сглаженным сигналом, путем изменения скважности ШИМ, управляете нагрузкой.
Может не АЦП, а ЦАП? ЦАП на ШИМе уже наверно все, кто имеет какое-то отношение к микроконтроллерам, делали. Я звук воспроизводил и лампу настроения делал (правда без RC фильтра, светодиодам он не нужен). Возможно попробую такой вариант. Просто яркостью светодиода управлять током не особо правильно и зависимость не линейная будет, придётся экспериментально подбирать значения.
Николай_С писал(а):Не вижу проблемы.
Питайте светодиод управляемым драйвером, например, PT4115. У них имеется вход для цифрового/аналогового управления рабочим током светодиода.
Вариант, вроде, неплохой (даташит не читал), стоит дёшево, места занимает мало, но я его три недели с Китая ждать буду. Хотелось бы пока сваять что-то из того, что есть. Да и для себя, чтобы на будущее знать, что вот так делать можно, а вот так нельзя.
ARV писал(а):Вроде бы я встречал где-то, что чувствительность датчика типа TSOP сильно зависит именно от скважности. От частоты тоже зависит.
Проведите ряд экспериментов, меняя скважность и/или частоту заполнения импульсов - что вам будет проще. Мне кажется, скважность будет проще, можно использовать стандартный режим таймера, высокая разрядность вам не требуется, 36 килогерц - запросто получится.
Как я в первом посте писал, я уже сейчас сделал изменение чувствительности путём изменения частоты 36 килогерц в нижнюю сторону. 36 килогерц отправляю в ножку микроконтроллера путём изменения состояния пина 72000 раз в секунду по прерыванию совпадения таймера с регистром сравнения. Зависимость от частоты слишком уж крутая, вот даташит: http://dalincom.ru/datasheet/TSOP1736.pdf Получается добиться изменения чувствительности в очень грубых пределах, особенно при значительном удалении от пика в 36 килогерц. Чтобы менять скважность, мне нужно завести аппаратный ШИМ на 36 килогерц, не придумал как это сделать на ATmega8, а хотелось бы сделать решение более универсальное, распространяемое на большую часть линейки микроконтроллеров AVR (ATtiny и ATmega). Сейчас в прерывании помимо переключения состояния ножки порта происходят ещё некоторые вычисления, чтобы не занимать ещё один таймер. Боюсь, что упрусь в возможности процессора. Хотя есть одна идея, только что в голову пришла, попробую реализовать, если получится, отпишусь.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью IR светодиода в схеме локатора
если тактировать мегу от кварца 16 МГц, то предельная частота аппаратного 8-битного ШИМ-а будет больше 70 кГц, от встроенного RC-генератора на 8 МГц легко получается ШИМ 32 кГц. Если уменьшать разрядность ШИМ-а, то можно и бОльшую частоту получать.
Частота встроенного генератора может быть изменена в достаточно широком диапазоне при помощи регистра OSCCAL - калибровка так называемая. для самоделки этот метод вполне может подойти.
таким образом варианты регулирования есть, и их больше одного...
Частота встроенного генератора может быть изменена в достаточно широком диапазоне при помощи регистра OSCCAL - калибровка так называемая. для самоделки этот метод вполне может подойти.
таким образом варианты регулирования есть, и их больше одного...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Phantom Art
- Родился
- Сообщения: 15
- Зарегистрирован: Чт июл 09, 2015 21:34:36
Re: Управление яркостью IR светодиода в схеме локатора
ARV писал(а):если тактировать мегу от кварца 16 МГц, то предельная частота аппаратного 8-битного ШИМ-а будет больше 70 кГц, от встроенного RC-генератора на 8 МГц легко получается ШИМ 32 кГц. Если уменьшать разрядность ШИМ-а, то можно и бОльшую частоту получать.
Частота встроенного генератора может быть изменена в достаточно широком диапазоне при помощи регистра OSCCAL - калибровка так называемая. для самоделки этот метод вполне может подойти.
таким образом варианты регулирования есть, и их больше одного...
Я до этого все поделки делал на ATtiny85, там ШИМ на частоте 250 килогерц может работать (я не сильно вдавался, как это реализовано, суть в том, что ШИМ генератор может работать на частоте 64 мегагерца, а 64000000/256 = 250 килогерц). А в ATmega8, как я понимаю, 16000000/256 = 62.5 килогерца, даже меньше 70 (или я в чём-то ошибаюсь?). С калибровкой не хочется играться, я сейчас использую тактирование от кварца (18.432 килогерца), вынул из сломанной компьютерной мышки (знаю, превышаю штатный режим, но с проблемами пока не сталкивался, видел в интернетах и свыше 20 мегагерц заводили на ATmega8). Но в принципе в будущем не на эту частоту рассчитываю, а хотя бы на 16 мегагерц.
-
Phantom Art
- Родился
- Сообщения: 15
- Зарегистрирован: Чт июл 09, 2015 21:34:36
Re: Управление яркостью IR светодиода в схеме локатора
В общем, решил пока забить на кроссплатформенность и сделать, чтобы всё работало так, как хочется, на ATmega8. Мой кварц в 18.432 мегагерца позволяет настроить ШИМ почти равный 36 килогерцам и я решил это использовать. Активировал ШИМ с фазовой коррекцией (подошёл бы и обычный ШИМ, но тогда нужен предделитель на 2 и частота бы получилась вообще идеально равна 36 килогерцам, но в меге такого предделителя нет). При фазовой коррекции частота ШИМ вычисляется по формуле F / N * 510, для моих целей это почти как предделитель на 2 (если бы в формуле было 512, то было бы вообще чудно). И в итоге получается: 18432000 / 1 * 510 = 36141 - совсем небольшая погрешность для TSOPа, он отлично принимает такой сигнал. ШИМ генерирую вторым таймером, а посылки пачек импульсов контролирую первым таймером (тот, что шестнадцатибитный). Подошёл бы и восьмибитный таймер, но в меге таковой только нулевой таймер, но он не имеет регистров сравнения, только переполнения. Ну и чувствительность локатора теперь регулируется при помощи ШИМ от 0 до 127 (0% - 50%). Тесты на быструю руку показали хороший результат, буду проводить более точные эксперименты, пока не уверен в линейности такого подхода, но результаты уже определённо гораздо лучше, чем при изменении частоты. В принципе, по идее алгоритм должен без проблем портироваться на любой AVR микроконтроллер, у которого есть два таймера и ШИМ (наверно у всех есть). Но работоспособность этого всего теперь зависит от тактовой частоты, а моя предыдущая реализация работала на любой частоте в разумных пределах.