О простейших фотодетекторах я уже писал, но их применение для передачи информации или сигналов на расстояние весьма ограничено.
Предположим нам надо поймать световой сигнал, причем в любых условиях. И неважно будет это в полной темноте или с яркой внешней засветкой поймать и все тут. Но возникает проблема как определить когда у нас есть сигнал, а когда фотодетектор засветило помехой?
Очевидный ответ сравнение двух состояний. Когда полезный сигнал есть, и когда его нет. Для того, чтобы знать что полезный сигнал есть у него должен быть какой нибудь признак, например частота.
То есть если полезный сигнал будет мигать с частотой, скажем, 30кГц то мы увидим эти пульсации частоты при любом раскладе.
Теперь нам не достатавляет труда понять, что полезный сигнал есть: выходное напряжение с датчика скачет с частотой 30кГц есть коннект. Если же не скачет значит это всего лишь фоновая засветка и на нее можно не обращать внимания.
Теперь наш приемник можно усложнить.
Добавим усилитель с регулируемым коэффициентом.
А после него добавим фильтр, который будет отсекать постоянную составляющую (внешная фоновая засветка) и выделять только несущую частоту, те самые 30кГц. А выход с фильтра завяжем на управление коэффициентом нашего усилителя.
Получится АРУ (автоматический регулятор усиления). Работает он так если после фильтра не слышно модуляции мы повышаем коэффициент усиления до тех пор пока не поймаем частоту полезного сигнала. Если не поймаем, то задираем коэффициент усиления настолько насколько сможем все равно ничего кроме полезного сигнала не пролезет.
Но если вдруг сигнал появится, то уменьшаем усиление до такой степени, чтобы сигнал четко детектился. Уменьшать усиление надо для того, чтобы не усиливать шумы и не перегружать фильтр лишним мусором.
Несущая есть, на нее можно накладывать сигнал.
Информацию можно передавать пачками импульсов есть пачка 0, нет пачки 1 или наоборот.
Структурная схема понятна, перейдем к практике. А тут даже изобретать ничего не надо уже существюут готовые применики, имеющие на борту все необходимое. Например, широко распространенные, дешевые и простые в использовании датчики серии TSOP17xx где в качестве хх идет детектируемая частота. Например, TSOP1730 детектит несущую в 30кГц и когда чувствует ее наличие прижимает выходную линию в 0
Схема включения его элементарная подать питалово, да завести выход на любой из портов микроконтроллера (на схеме обозначен как uC). Резисторы опциональны, их можно выкинуть.
В качестве передатчика может быть микроконтроллер, а импульсы можно генерить ШИМом.
Но есть тут одна хитрая особенность, не явная на первый взгляд нельзя слать несущую без данных непрерывным потоком. Равно как и нельзя слать данные сплошняком. Так как АРУ начинает занижать чувствительность и в итоге передача затыкается через пару секунд. Это сделано для того, чтобы наш TSOP не забивался еще и периодическим шумом сходной частоты, например от люминисцентных ламп с электронным балластом, которые мерцают на очень близкой частоте.
Чтобы затыка не случилось надо слать информацию в виде удовлетворяющем условию:
Где f0 это частота несущей на которую рассчитан TSOP.
Здесь биты шлются пачками (burst) , а N это число импульсов несущей в одной пачке. Также указана минимальная длинна пачки и промежутка (Gap) между ними.
А сам параметр минимальной скважности (Duty Cycle) рассчитывается по такой формуле:
Если же надо сделать тупую светилку, например, для организации ИК барьера реагирующего на пересечение, то можно не заморачиваться, а поступить так как советуют разработчики собрав двойной генератор:
Обрати внимания на левую часть, которую я обвел красной рамкой. Тут два генератора собраных на простейшей логической микросхеме нашей родимой К555ЛА3 или ее буржуйском оригинале. На первом элементе 2И-НЕ собран генератор пачек импульсов. Как видишь там есть кондесатор С1 на 10нФ и два резистора R1 и R2, а также диод.
Работает просто, допустим мы только включили схему и конденсатор у нас разряжен. На входе 1 всегда лог1, а на входе 2 у нас лог0 так как конденсатор еще разряжен. лог1 лог0 = 0, но на выходе у нас инверсия, так что на 3 выводе будет лог1, то есть +5вольт. Конденсатор С1 начнет заряжаться от напряжения выхода через резисторы R1 и R2. Когда он полностью зарядится, то на входе 2 будет уже лог1, а лог1 лог1 = 1, да инверсия = 0, на третьем выходе будет уже напряжение около нуля. И конденсатору С1 ничего не остается как начать разряжаться, но делать он уже это будет не через оба резистора, а только через R1, т.к. в обратную сторону через R2 ему помешает разрядиться диод. Обрати внимание насколько велика разница между R1 и R2 в порядок! Так что длительность заряда будет в десять раз короче длительности разряда.
На втором 2И-НЕ элементе собран еще один генератор, на этот раз это генератор несущей частоты. У него и конденсатор меньше значительно, а значит заряжаться он будет быстрей и частота будет выше. Резисторы R3 и потенциометр P1 позволяют подстраивать частоту. Диод тут не нужен несущая должна иметь одинаковые импульсы и паузы. Работает он точно также как и первый. НО! Обрати внимание на его верхний вход с номером 5. Если в первом генераторе там всегда был лог1, т.к. он был подвешан на питание, то тут на входе у нас выход с первого генератора. А значит второй генератор будет работать только тогда, когда ему разрешит первый. Все просто!
Вот и получается что данная конструкция выплевывает пачки 30кГц импульсов стоит только подать на нее питание.
Правая же часть это интерпритатор пачек, для создания полноценного сигнального ИК барьера. Там пачки интегрируются на RC цепочке (R7, C4), собираясь из импульсного (каждая пачка = импульс) в постоянный сигнал. На выходе происходит изменение уровня лишь тогда, когда сигнал действительно надолго прервался (чтобы не реагировать на провалы между импульсами-пачками).
Первый элемент (U1D) служит разделителем и пороговым формирователем, превращая колебания напряжения с RC цепи в логические уровни +5 и 0 вольт.
Бодяга из R8, R9, C5 и диода это линия задержки. Когда луч кратко пересекается вражеским телом, то пропадает много пачек, напряжение с интегратора снижается ниже лог0 и на входе U1D возникает ноль. Так как там инверсия на выходе, то на 11 выводе будет лог1, то есть +5вольт. Это напряжение, пройдя через диод и малое сопротивление R9 быстро зарядит кондер С5. Напряжение на заряженом С5 сформирует две лог1 на входе U1C, что даст 0 на выходе АХТУНГ! АЛЯРМ!!!
Тело ушло с луча, на интеграторе (и на входе U1D) напряжение вновь подскочило, а с U1D стал опять выходить 0 и конденсатор С5 теперь начинает разряжаться, но благодаря диоду делать он это может только через R8 который уже в два порядка больше, а значит и разряд будет в два порядка дольше. И пока он не разрядится на выходе U1C будет гореть ахтунговый лог0.
Итог:
Схема не реагирует на провалы между пачками за счет первого интегратора. Но если потерялось много пачек (пересечение луча), то это интегратор пропустит, а элемент задержки запомнит и выдаст длительный сигнал тревоги. Гораздо длинней чем время пересечения луча вражеской тушей.
З.Ы.
Также, весьма в тему, будет отличная статья камрада Wodoocat о протоколах бытовых пультов дистанционного управления.
Оцените статью!