Контакти

Встановлюємо додатковий ик-приймач в супутниковий ресивер. Інфрачервоний бар'єр своїми руками Зібрати ик, якого навчають приймач своїми руками

Зав'язка або «Як починався девайс»

... Коли я прийшов, Вікторія сиділа на дивані, втупившись у телевізор. День видався важкий, тому їй не хотілося нічого робити. Кілька хвилин ми дивилися якийсь попсовий серіал, потім він закінчився, і Віка вимкнула телевізор. В кімнаті стало темно. На вулиці шумів дощ, і від цього здавалося, що вдома теж холодно.
Віка піднялася з дивана і почала, на дотик, шукати вимикач від світильника. Настінний світильник висів, чомусь, не у дивана, а на іншій стіні і доводилося топати через всю кімнату, щоб запалити світло. Коли вона, нарешті, включила його, кімната наповнилася теплим світлом лампочки розжарювання.
Біля мене, на пом'ятою простирадлі, лежав пульт від телевізора. Нижні кнопки без розпізнавальних знаків і, швидше за все, не використовувалися. І тут у мене виникла цікава думка ...
- Вік, а хочеш, я зроблю так, що твій світильник можна буде пультом від ящика включити? Там навіть кнопки зайві є ...

концепція
Наш пристрій має вміти приймати сигнал з ІЧ-пульта, відрізняти «свою» кнопку від інших, і управляти навантаженням. Перший і останній пункти прості, як сокира. А ось з другим трохи цікавіше. Я вирішив не обмежуватися якимось конкретним пультом (Чому? - «Не цікаво так!»), А зробити систему, яка може працювати з різними моделями пультів від різної техніки. Аби ІК-приймач дав собі раду, і впевнено ловив сигнал.

Ловити сигнал будемо за допомогою фотоприймача. Причому не кожен приймач підійде - несуча частота повинна збігатися з частотою пульта. Несуча частота приймача вказана в його маркуванні: TSOP17xx - 17 це модель приймача, а хх - частота в кілогерцах. А несучу частоту пульта можна знайти в документації або в інеті. В принципі, сигнал буде прийматися, навіть якщо частоти не збігаються, але чутливість буде фіговий - доведеться тикати пультом прямо в приймач.

Кожна компанія, що випускає побутову техніку, змушена дотримуватися стандартів при виготовленні «заліза». І частоти модуляції біля пультів, теж стандартні. Зате розробники відриваються на програмній частині - різноманітність протоколів обміну між пультом і пристроєм просто вражає. Тому, довелося придумати універсальний алгоритм, яким плювати на протокол обміну. Працює він так:

У пам'яті пристрою зберігаються контрольні точки. Для кожної такої точки потрібно записати час і стан виходу з ІК-приймача - 0 або 1.
При отриманні сигналу з пульта, МК буде послідовно перевіряти кожну точку. Якщо всі крапки співпали - то це була та сама кнопка, на яку пристрій запрограмували. А якщо вихід з приймача хоча-б в одній точці не збігся із шаблоном, то пристрій ніяк не відреагує.

Втім, баги ніхто не відміняв! Можливо, що, сигнал буде відрізнятися від шаблону, але
в контрольних точках значення будуть однакові. Вийде помилкове спрацьовування. Здавалося-б - рідкісне западло, і боротися з ним пипец складно! Але насправді не все так погано (а місцями навіть добре).

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

По-друге невеликий шум (зазвичай виглядає, як рідкісні короткі імпульси) в більшості випадків йде лісом - бо якщо він не потрапить прямо на контрольну точку, то ніфіга не вплине на систему. Значить у нас є природний захист від шуму.

Другий тип помилок (aka «Пропуск команди») буває через те, що точка розташована занадто близько до фронту імпульсу (до того місця, де сигнал на виході приймача змінює свій рівень).
Уяви собі, що через кілька мікросекунд після контрольної точки сигнал повинен змінюватися з HIGH на LOW. А тепер уяви, що пульт видав команду трохи швидше, ніж зазвичай (досить часто трапляється). Фронт імпульсу зрушився в часі, і тепер він відбувається ДО контрольної точки! Вихід з приймача не відповідатиме шаблоном і система скинеться.
Щоб цього не відбувалося, потрібно розміщувати контрольні точки подалі від фронтів.

«Все круто» - скажеш ти - «Але звідки мені взяти контрольні точки?». Ось і я над цим довго тупив. В результаті вирішив довірити розстановку точок тобі.
На пристрої є джампер J1. Якщо при включенні він замкнутий - пристрій буде тупо передавати через UART все, що видає ІК-приймач. На іншій стороні дроти ці дані приймає моя програма, яка видає на екран компа імпульси з TSOP'а. Тобі залишається тільки мишкою розкидати по цим графіком контрольні точки, і прошити їх в EEPROM. Якщо можливості використовувати UART нету, то на допомогу приходить джампер J2. Коли він замкнутий - пристрій не видає дані по UART, а складає їх в EEPROM.


схема
Проста до неподобства. В якості контролера я взяв ATTiny2313. Частота 4 мегагерци, від кварцу, або внутрішньої RC ланцюжка.
На окремий роз'єм виведені лінії RX і TX для зв'язку, і харчування. Туди - ж виведений RESET для того щоб можна було перепрошувати МК, не виймаючи з пристрою.
Вихід фотоприймача підключається до INT0, він підтягнутий до харчування через резистор в 33К. Якщо будуть сильні перешкоди, то можна поставити туди резистор поменше, наприклад, 10к.
На пінах D4 і D5 висять джампери. Jumper1 на D5 і Jumper2 на D4.

До піну D6 підчеплений силовий модуль. Причому симистор я взяв найдрібніший з тих, що у мене були - BT131. Струм у нього 1А - не круто, але зате корпус не дуже великий - ТО92. Для дрібної навантаження саме те. Опторазвязку я зробив на MOC3023 - у неї немає датчика перетину нуля, а значить вона підходить для плавного управління навантаженням (тут я це так і не реалізував).

Порт B майже повністю виведений на роз'єм - туди можна причепити індикатор або ще що-небудь. Цим-же роз'ємом я користуюся при прошивці девайса. Пін B0 зайнятий світлодіодом.

Харчується все це справа через LM70L05 і діодний міст. Тобто на вхід можна подавати змінну напругу, наприклад, з трансформатора. Головне, щоб воно не перевищувало 25 Вольт, а то помре або стабілізатор, або кондер.

Плата вийшла ось така:


Так, вона трохи відрізняється від тієї плати, яка лежить в архіві. Але це не означає, що я зробив собі прибери-просунуту плату, а вам підсунув демо версію :). Навпаки, моя плата має пару недоліків, яких немає в кінцевій версії: у мене не виведена на штирек ніжка RESET, і світлодіод висить на PB7. А це не дуже сприяє внутрішньосхемне програмування.

прошивка
Пристрій може працювати в двох режимах. У першому - коли J2 замкнутий - воно просто передає імпульси з фотоприймача в UART. З нього і почнемо:

UART працює на швидкості 9600, тобто, при частоті 4МГц в регістр UBRR записуємо 25.

... чекаємо, поки не сіпнеться ніжка фотоприймача. Як тільки вона опустилася (спочатку-то вона бовтається на pull-up резистори) ми запускаємо таймер (TIMER / COUNTER1, той, що на 16 біт) і врубаєм переривання INT0 на будь-яка зміна входу - any logical change (ICS00 \u003d 1). Таймер цокає ... чекаємо.

Імпульс з пульта скінчився - вихід з фотоприймача зметнувся вгору, переривання спрацювало. Тепер записуємо в пам'ять значення таймера і скидаємо таймер. Ще потрібно інкрементіровать покажчик записи, щоб в наступному перериванні записати в іншу комірку пам'яті.

Ще імпульс ... вихід смикається ... переривання ... запис значення таймера в пам'ять ... скидання таймера ... покажчик + 2 (ми пишемо два байта за раз) ...

І так буде тривати до тих пір, поки не стане ясно, що кінець (оперативки) близький. Або, поки сигнал не скінчиться. У будь-якому випадку, ми стопор таймер і відключаємо переривання. Потім, не поспішаючи викидаємо все, що назбирали, в UART. Або, якщо J2 замкнутий - в EEPROM.

В кінці можна затупити в нескінченний цикл і чекати ресета - місія виконана.
А на виході вийде послідовність чисел. Кожне з них - час між змінами стану виходу TSOP'a. Знаючи, з чого почалася ця послідовність (А ми знаємо! Це перепад з HIGH на LOW), ми можемо відновити всю картину:

Після ініціалізації сидимо і чекаємо, поки TSOP сіпнеться. Як тільки це сталося - читаємо з EEPROM першу точку, і в простому циклі тупим стільки, скільки там написано. При цьому час вважаємо пачками по 32us. Вийшовши зі ступору, перевіряємо - що-там на виході приймача.

Якщо вихід не збігся із тим, що ми очікували - це не наша команда. Можна спокійно чекати кінця сигналу і починати все спочатку.

Якщо вихід відповідає нашим очікуванням - завантажуємо следующюю точку і перевіряємо її. Так до тих пір, поки не натрапимо на точку, час якої \u003d 0. Це означає, що точок більше немає. Значить вся команда збіглася, і можна смикати навантаження.

Ось так, виходить, простенький алгоритм. Але ж чим простіше, тим надійніше!

софтина
Спочатку я думав зробити автоматичне запам'ятовування шаблону. Тобто ти замикаєш джампер, тикаєш пультом в TSOP, а МК сам розставляє контрольні точки і складає їх в EEPROM. Потім стало ясно, що ідея безглузда: більш-менш адекватний алгоритм вийде надто складним. Хіба ви не буде універсальним.

Другий ідеєю була програма для компа, в якій можна самому розставити контрольні точки. Чи не занадто технологічно, але всяко краще, ніж довіряти цю справу МК.


Привчаємо девайс відгукуватися на потрібну кнопку пульта:

1) Замикаємо перемичку J1.

2) Підключаємо UART. Якщо можливості його підключити немає, то замикаємо джампер J2. Тоді пристрій буде скидати дані в EEPROM.

3) врубать харчування.

4) Якщо ми вирішили юзати UART, то запускаємо софт і дивимося на рядок стану (внизу віконця). Там повинно бути написано "COM порт відкритий". Якщо не написано, то шукаємо косяк в підключенні і тикаємо кнопу «Підключити».

5) Беремо пульт і тикаємо потрібної кнопкою в TSOP. Як тільки девайс почує, що сигнал пішов - загориться світлодіод. Відразу після цього пристрій почне передавати по UART (або писати в EEPROM) дані. Коли передача закінчилася, світлодіод гасне.

6.1) Якщо працюємо по UART, то тиснемо кнопу «Завантажити по UART». І радіємо написи «Завантажив графік ...» в рядку стану.

6.2) Якщо працюємо через EEPROM, то читаємо программатором EEPROM пам'ять і зберігаємо в * .bin файл. (Саме bin!). Потім натискаємо в програмі кнопку «Загрузіть.bin» і вибираємо файл з EEPROM.

7) Дивимося на завантаживши графік - це сигнал з TSOP'a. На бічній панелі є повзунок - їм можна міняти масштаб. Тепер тикаємо мишкою по графіку - ставимо контрольні точки. Правою кнопкою точки віддаляються. Тільки не потрібно їх ставити занадто близько до фронтах. Виходить приблизно так:


8) Натискаємо «Сохраніть.bin» і зберігаємо точки. Потім прошиває цей файл в EEPROM. Так-так ми запихає час між двома точками в 7 біт, то воно обмежене 4мс. Якщо час між двома точками перевищить це значення - програма відмовиться запихати точки в файл.

9) Знімаємо джампери. Перезавантажуємо пристрій. Готово!

Відео з випробувань

Слухати музику, дивитися фільми на комп'ютері зручніше, якщо знаходишся не на стільці перед монітором, а на дивані, при цьому для управління не потрібно вставати, досить лише натиснути кнопку на пульті. Але де взяти пульт з приймачем? Можна купити в магазині, але вартість подібного комплекту досить висока. Однак на щастя виготовити ІК приймач для будь-якого пульта (практично), досить просто.

знадобиться:

  • ІК приймач TSOP1738;
  • кабель com порту;
  • резистори на 10 КОм, 4.7 КОм;
  • кремнієвий діод (будь-який);
  • конденсатор 10 МКФ 16 В;
  • дроти.

ІК приймач своїми руками

Фотодіод TSOP1738 на виході дає вже готові біти, які надсилаються в com порт, поетом нам не потрібно паяти складних схем із застосуванням контролерів.

Як бачите нічого складного. Схема приймача настільки проста, що її можна зібрати навісом. У даній збірці використовувався діод КД105Г. Як можна помітити на фото, анод відзначений жовтою фарбою. Якщо Ви використовуєте інший діод, то полярність необхідно дізнатися з довідників. Також слід дотримуватись полярності і у конденсатора (негативний висновок позначений на корпусі).

Зворотній бік.

Інший кінець дроту припаюємо до гнізда com порту.

Для зменшення розміру схеми її можна акуратно зігнути. Простежте, щоб висновки і самі деталі не стикалися один з одним, інакше вийде коротке замикання.

Можна залити епоксидною смолою або як в даному випадку пластиком Glue Gun. Це вбереже пристрій від зовнішніх впливів.

У кого то було таке, що пізно ввечері по TV йде цікавий фільм, а дружина раз у раз насідає, що зроби телевізор тихіше, дитина спить ?? Що ж робити? Навушники з проводамі- не зручно, бездротові купувати дорого. Але є вихід.

Представляю вам бездротові навушники на ІЧ променях. Точніше передавач і приймач для навушників. Принцип дії дуже простий, передавач підключається до аудіо виходу на TV або будь-який інший техніки. У передавачі встановленні ІК-діоди, такі ж як і в пультах від TV, передавач переводить звук з TV в ІК сигнали, які приймаються приймачем.

Прошивати в схемі нічого не потрібно, просто зберіть схему і насолоджуйтеся.

Ось сама схема передавача:

Складається вона з не великого кількості деталей, зібрати її не складе особливих труднощів. Можна навіть плату не труїти, а зробити все навісним монтажем. Харчування передавача 12В, якщо буде менше ну наприклад 9В, все буде працювати, але в навушниках буде трохи фонить. Передавач в налаштуванні не потребує, головне підключити всі як на схемі.

Сама плата передавача, після складання.

На схемі показані 4 ІК діода для передачі, але я застосував всього 3, більше просто не було. Можна і один поставити, але чим їх більше, тим простіше ловити сигнал передачі. Підключення ІК діодів і Фото діодів нижче на фото:

Приймач Складається теж з мінімум деталей, навіть менше ніж передавач.
Схема приймача:

Серцем приймача, є мікросхема TDA 2822. У магазинах коштує копійки.

Харчується приймач від 3-4.5В, від будь-якого джерела живлення.
Плата приймача виходить досить компактною.

І так, був знайдений відповідний корпус для приймача.

Помістилася вся начинка туди дуже добре, багато місця залишилося.

Справа стало за харчуванням. Довго думав що туди пристосувати і зупинив свій вибір на акумуляторах від дитячої іграшки. У підсумку можна буде просто заряджати акумулятори, а не міняти батарейки.

Все запакував в корпус, місця вистачило в обріз.

У підсумку все виглядає прекрасно.


Настала черга корпусу передавача. Корпус поставив який був у мене на той момент. Адже харчування буде зовнішнє, від блоку живлення.

Блок живлення на 9В.
Все готово. Для перевірки працездатності приймача, включаємо його, підключаємо навушники, направляємо на нього простий пульт від телевізора і натискаємо будь-яку кнопку, в навушниках повинні чуються клацання, якщо вони є, значить приймач працює.

Одноканальний модуль приймача з реле, для спрацьовування від будь-якого стандартного інфрачервоного пульта, забезпечує дистанційне керування будь-яким навантаженням по невидимому ІК каналу. Проект заснований на мікроконтролері PIC12F683, а TSOP1738 використовується в якості інфрачервоного приймача. Мікроконтролер декодує серійний проект даних RC5, що надходять від TSOP1738 і забезпечує управління виходом якщо дані дійсні. На виході можуть бути встановлені різні необхідні стану за допомогою перемички на платі (J1). На друкованій платі є 3 світлодіоди: індикатор живлення, наявність передачі і спрацьовування реле. Ця схема працює з будь-яким RC5 пультом від телевізора, центру і так далі.

Особливості роботи схеми

  • Харчування приймача 7-12В DC
  • Струм споживання приймача до 30 мА
  • Радіус дії до 10 метрів
  • RC5 протокол сигналу
  • Розміри плати 60 x 30 мм

Хоча останнім часом стало модним використовувати радіоканал, в тому числі Блютус, самостійно виготовити таку апаратуру зовсім не просто. До того ж радіохвилі схильні до перешкод, та й перехопити їх елементарно. Тому ІК сигнал в деяких випадках буде краще. Прошивку, малюнки друкованих плат і повний опис англійською -

якір Сергій

Вступ

У мережі Internet багато простих пристроїв на базі контролерів сімейства PIC16F і PIC18F фірми Microchip. Я пропоную вашій увазі досить складний пристрій. Ця стаття думаю буде корисна всім, хто пише програми для PIC18F, так як ви можете взявши вихідні тексти програми створити свою систему реального часу. Інформації буде більш ніж достатньо, починаючи від теорії і стандартів, закінчуючи апаратної і програмної реалізацією даного проекту. Вихідні тексти на асемблера забезпечені повними коментарями. Тому не складно буде розібратися в програмі.

ідея

Як завжди все починається з ідеї. Маємо карту Ставропольського краю. На карті є 26 районів краю. Розмір карти 2 х 3 м. Необхідно управляти підсвічуванням вибраних районів. Управління має здійснюватися дистанційно по інфрачервоному каналу управління, далі по тексту просто ІК або IR remote control. Одночасно команди управління повинні передаватися на сервер управління на базі РС. При виборі району на карті, сервер управління відображає додаткову інфомацию на моніторі. За командам з сервера можна управляти відображенням інформації на карті. Завдання поставлене. В кінцевому підсумку ми отримали, то що ви бачите на фото. Але перш ніж все це реалізувати довелося пройти деякі етапи і вирішити різні технічні завдання.


Вид з боку монтажу.

Алгоритм роботи пристрою

З пульта дистанційного керування система управління відображенням інформації повинна керуватися не складніше вибору програми на TV або створення номера треку на CD. Було вирішено пульт взяти готовий від відеомагнітофона Philips. Вибір номера район задається послідовність натиснення кнопок пульта "Р +" далі дві цифрові кнопки номера району, закінчуємо введення "Р-". При першому виборі району здійснюється його виділення, (включається підсвічування світлодіодами) а при повторному виборі знімається виділення.
Протокол управління картою з РС сервера управління.

1. Вихідні команди, тобто команди надходять з пристрою в РС:

1.1. При включенні харчування на пристрої в РС надходить команда: MAP999
1.2. При включенні району: MAP (номер району) 1
1.3. При виключенні району: MAP (номер району) 0
1.4. При включенні всієї карти: MAP001
1.5. При виключенні всієї карти: MAP000

2. Вхідні команди:

2.1. Включити всю карту: MAP001
2.2. Вимкнути всю карту: MAP000
2.3. Включити район: MAP (номер району) 1
2.4. Вимкнути район: MAP (номер району) 0
2.5. Отримати інформацію про включені районах: MAP999 У відповідь на цю команду передаються дані про всіх включених районах в форматі п. 1.2 (як ніби всі включені райони заново включаються).
2.6. Отримати інформацію про виключених районах: MAP995 У відповідь на цю команду передаються дані про всіх виключених районах в форматі п. 1.3 (як ніби все вимкнені райони заново вимикаються).

При виключенні останнього включеного району також повинна надходити команда "вимикання всієї карти".
При включенні останнього невключенного району також повинна надходити команда "включення всієї карти".
Номер району являє собою ASCII-символи цифр (0x30-0x39).

Від ідеї до реалізації

Передбачаючи, що досить складною проблемою може виявитися виготовлення власного корпусу для пульта ДУ, було вирішено взяти готовий пульт дистанційного керування від серійного апарату. За основу системи ІК управління обрана система команд ІК управління формату RC5. В даний час для управління різною апаратурою дуже широко використовується дистанційне керування (ДУ) на ІЧ-променях. Мабуть, першим видом побутової апаратури, де використовувалося ІК ДУ, були телевізори. Зараз ДУ є в більшості видів побутової аудіо- і відеотехніки. Навіть переносні музичні центри останнім часом все частіше обладнають системою дистанційного керування. Але побутова техніка це не єдина сфера застосування ДУ. Досить широко поширені прилади з ДУ і на виробництві, і в наукових лабораторіях. У світі існує досить багато несумісних між собою систем ІК ДУ. Найбільшого поширення набула система RC-5. Ця система використовується в багатьох телевізорах, в тому числі і вітчизняних. В даний час різними заводами випускається декілька модифікацій пультів дистанційного керування RC-5, причому, деякі моделі мають цілком пристойний дизайн. Це дозволяє з найменшими витратами отримати саморобний пристрій з ІК ДУ. Опускаючи подробиці, чому була обрана саме ця система, розглянемо теорію побудови система на базі формату RC5.

теорія

Що б зрозуміти як працює система управління необхідно вникнути, що ж являє собою сигнал на виході пульта ІК ДУ.

Система інфрачервоного дистанційного керування RC-5 була розроблена фірмою Philips для потреб управління побутовою апаратурою. Коли ми натискаємо кнопку пульта, мікросхема передавача активізується і генерує послідовність імпульсів, які мають заповнення частотою 36 КГц. Світлодіоди перетворять ці сигнали в ІК-випромінювання. Випромінювань сигнал приймається фотодиодом, який знову перетворює ІЧ-випромінювання в електричні імпульси. Ці імпульси посилюються і демодулюються мікросхемою приймача. Потім вони подаються на декодер. Декодування зазвичай здійснюється програмно за допомогою мікроконтролера. Про це ми детально поговоримо в розділі присвяченому декодування. Код RC5 підтримує 2048 команд. Ці команди складають 32 групи (системи) по 64 команди в кожній. Кожна система використовується для управління певним пристроєм, таким як телевізор, відеомагнітофон і т.д.

На зорі становлення систем ІК управління формування сигналу відбувалося апаратно. Для цього розроблялися спеціалізовані ІС, а зараз все частіше пульти ДУ робляться на основі мікроконтролера.

Однією з найбільш поширених мікросхем передавача є мікросхема SAA3010. Коротко розглянемо її характеристики.

  • Напруга харчування - 2 .. 7 У
  • Струм в режимі очікування - не більше 10 мкА
  • Максимальний вихідний струм - ± 10 мА
  • Максимальна тактова частота - 450 КГц

Структурна схема мікросхеми SAA3010 показана на малюнку 1.

Малюнок 1. Структурна схема ІС SAA3010.

Опис висновків мікросхеми SAA3010 приведено в таблиці:

висновок позначення функція
1 X7 Вхідні лінії матриці кнопок
2 SSM Вхід вибору режиму роботи
3-6 Z0-Z3 Вхідні лінії матриці кнопок
7 MDATA Модульовані вихідні дані, 1/12 частоти резонатора, шпаруватість 25%
8 DATA Вихідні дані
9-13 DR7-DR3 виходи сканування
14 VSS земля
15-17 DR2-DR0 виходи сканування
18 OSC Вхід генератора
19 TP2 Тестовий вхід 2
20 TP1 Тестовий вхід 1
21-27 X0-X6 Вхідні лінії матриці кнопок
28 VDD Напруга живлення

Мікросхема передавача є основою пульта дистанційного керування. На практиці один і той же пульт дистанційного керування може використовуватися для управління декількома пристроями. Мікросхема передавача може адресувати 32 системи в двох різних режимах: комбінованому і в режимі однієї системи. У комбінованому режимі спочатку вибирається система, а потім команда. Номер обраної системи (адресний код) зберігається в спеціальному регістрі і відбувається передача команди, що відноситься до цієї системи. Таким чином, для передачі будь-якої команди потрібно послідовне натискання двох кнопок. Це не зовсім зручно і виправдано тільки при роботі одночасно з великою кількістю систем. На практиці передавач частіше використовується в режимі однієї системи. При цьому замість матриці кнопок вибору системи монтується перемичка, яка і визначає номер системи. У цьому режимі для передачі будь-якої команди потрібно натискання тільки однієї кнопки. Застосувавши перемикач, можна працювати з декількома системами. І в цьому випадку для передачі команди потрібно натискання тільки однієї кнопки. Передана команда буде відноситься до тієї системи, яка в даний час обрана за допомогою перемикача.

Для включення комбінованого режиму на висновок передавача SSM (Single System Mode) потрібно подати низький рівень. В цьому режимі мікросхема передавача працює наступним чином: під час спокою X і Z-лінії передавача знаходяться в стані високого рівня за допомогою внутрішніх p-канальних підтягують транзисторів. Коли натиснута кнопка в матриці X-DR або Z-DR, запускається цикл придушення брязкоту клавіатури. Якщо кнопка замкнута на протязі 18 тактів, фіксується сигнал "дозвіл генератора". В кінці циклу придушення брязкоту DR-виходи вимикаються і запускаються два циклу сканування, що включають по черзі кожен вихід DR. У першому циклі сканування виявляється Z-адреса, в другому - X-адреса. Коли Z-вхід (матриця системи) або X-вхід (матриця команди) виявляється в стані нуля, відбувається фіксація адреси. При натисканні кнопки в матриці системи передається остання команда (тобто всі біти команди рівні одиниці) в обраній сиcтемах. Ця команда передається до тих пір, поки кнопка вибору системи не буде відпущена. При натисканні кнопки в матриці команди передається команда разом з адресою системи, що зберігається в регістрі-фіксаторі. Якщо кнопка відпущена до початку передачі, відбувається скидання. Якщо ж передача почалася, то незалежно від стану кнопки, вона буде виконана повністю. Якщо одночасно натиснуто більше однієї Z або X кнопки, то генератор не починається.

Для включення режиму однієї системи на виведення SSM повинен бути високий рівень, а адреса системи повинен бути заданий відповідної перемичкою або перемикачем. В цьому режимі під час спокою X-лінії передавача знаходяться в стані високого рівня. У той же час Z-лінії вимкнені для запобігання споживання струму. У першому з двох циклів сканування визначається адреса системи і зберігається в регістрі-фіксаторі. У другому циклі визначається номер команди. Ця команда передається разом з адресою системи, що зберігається в регістрі-фіксаторі. Якщо немає перемички Z-DR, то ніякі коди не передаються.

Якщо кнопка була відпущена між посилками коду, то відбувається скидання. Якщо кнопка була відпущена під час процедури придушення брязкоту або під час сканування матриці, але до виявлення натискання кнопки, то також відбувається скидання. Виходи DR0 - DR7 мають відкритий стік, в стані спокою транзистори відкриті.

У коді RC-5 є додатковий керуючий біт, який інвертується при кожному відпуску кнопки. Цей біт інформує декодер про те, утримується кнопка або стався новий натискання. Біт управління інвертується тільки після повністю завершеною посилки. Цикли сканування виробляються перед кожною посилкою, тому навіть якщо під час передачі посилки змінити натиснуту кнопку на іншу, все одно номер системи і команди будуть передані правильно.

Висновок OSC є вхід / вихід 1-вивідного генератора і призначений для підключення керамічного резонатора на частоту 432 КГц. Послідовно з резонатором рекомендується включть резистор опором 6,8 Ком.

Тестові входи TP1 і TP2 в нормальному режимі роботи повинні бути з'єднані з землею. При високому логічному рівні на TP1 підвищується частота сканування, а при високому рівні на TP2 - частота роботи зсувного регістру.

У стані спокою виходи DATA і MDATA знаходяться в Z-стані. Генерируемая передавачем на виході MDATA послідовність імпульсів має заповнення частотою 36 кГц (1/12 частоти тактового генератора) зі шпаруватістю 25%. На виході DATA генерується така ж послідовність, але без заповнення. Цей вихід використовується в тому випадку, коли мікросхема передавача виконує функції контролера вбудованої клавіатури. Сигнал на виході DATA повністю ідентичний сигналу на виході мікросхеми приймача дистанційного керування (але на відміну від приймача він не має інверсії). Обидва цих сигналу можуть оброблятися одним і тим же декодером. Застосування SAA3010 в якості контролера вбудованої клавіатури в деяких випадках дуже зручно, так як для опитування матриці до 64 кнопок у мікроконтролера витрачається тільки один вхід переривання. Тим більше, що мікросхема передавача допускає харчування напругою +5 В.

Передавач генерує 14-бітове слово даних, формат якого наступний:


Малюнок 2. Формат слова даних коду RC-5.

Стартові біти призначені для установки АРУ в IC приймача. Біт управління є ознакою нового натискання. Тривалість такту становить 1.778 мс. Поки кнопка натиснута, слово даних передається з інтервалом 64 такту, тобто 113.778 мс (рис. 2).

Перші два імпульсу є стартовими, і обидва - логічні "1". Відзначимо, що половина біта (порожня) проходить раніше, ніж приймач визначить реальний старт повідомлення.
Розширений RC5 протокол використовує тільки 1 старт-біт. Біт S2 трансформується і добавляетсяк 6-му битку команди, утворюючи в цілому 7 бітів команди.

Третій біт - керуючий. Цей біт інвертується щоразу, коли натискається клавіша. Таким шляхом приймач може розрізняти клавішу, яка залишається натиснутою, або періодично натискається.
Наступні 5 біт представляють адресу ІК пристрою, який надсилається з першим LSB. За адресою слідують 6 біт команди.
Повідомлення містить 14 біт, разом з паузою мають загальну тривалість 25.2 мс. Іноді повідомлення може виявитися коротше через те, що перша половина старт-біта S1 залишається незаповненою. І якщо останній біт команди є логічним "0", тоді остання частина біта повідомлення також порожня.
Якщо клавіша натиснута, повідомлення буде повторюватися кожні 114 мс. Біт управління залишатиметься однаковим у всіх повідомленнях. Це сигнал для програми приймача інтерпретувати це як функцію автоповтора.

Для забезпечення гарної завадостійкості застосовується двофазне кодування (рис. 3).

Малюнок 3. Кодування «0» і «1» в коді RC-5.

При використанні коду RC-5 може знадобитися обчислити середній споживаний струм. Зробити це досить просто, якщо скористатися рис. 4, де показана детальна структура посилки.

Малюнок 4. Детальна структура посилки RC-5.

Для забезпечення однакового реагування обладнання на команди RC-5, коди розподілені цілком певним чином. Така стандартизація дозволяє конструювати передавачі, що дозволяють управляти різними пристроями. З одними і тими ж кодами команд для однакових функцій в різних пристроях передавач з відносно невеликим числом кнопок може керувати одночасно, наприклад, аудиокомплексом, телевізором і відеомагнітофоном.

Номери систем для деяких видів побутової апаратури наведені нижче:

0 - Телевізор (TV)
2 - Телетекст
3 - Відео дані
4 - Мультимедійний (VLP)
5 - Касетний відеомагнітофон (VCR)
8 - Відео тюнер (Sat.TV)
9 - Відеокамера
16 - Аудіо передпідсилювач
17 - Тюнер
18 - Магнітофон
20 - Компакт-програвач (CD)
21 - Програвач (LP)
29 - Освітлення

Решта номерів систем зарезервовані для майбутньої стандартизації або для експериментального використання. Стандартизовано також відповідність деяких кодів команд і функцій.
Коди команд для деяких функцій наведені нижче:

0-9 - Цифрові величини 0-9
12 - Черговий режим
15 - Дисплей
13 - mute
16 - гучність +
17 - гучність -
30 - пошук вперед
31 - пошук назад
45 - викид
48 - пауза
50 - перемотування назад
51 - перемотування вперед
53 - відтворення
54 - стоп
55 - запис

Для того, щоб на основі мікросхеми передавача побудувати закінчений пульт ІК ДУ, необхідний ще драйвер світлодіода, який здатний забезпечувати великий імпульсний струм. Сучасні світлодіоди працюють в пультах дистанційного керування при імпульсних токах близько 1 А. Драйвер світлодіода дуже зручно будувати на низькопорогових (logic level) МОП-транзисторі, наприклад, КП505А. Приклад принципової схеми пульта наведено на рис. 5.

Малюнок 5. Принципова схема пульта RC-5.

Номер системи задається перемичкою між висновками Zi і DRj. Номер системи при цьому буде наступним:

Код команди, який буде передаватися при натисканні кнопки, яка замикає лінію Xi з лінією DRj, обчислюється таким чином:

Приймач ІК ДУ повинен відновлювати дані з двофазним кодуванням, він повинен реагувати на великі швидкі зміни рівня сигналу незалежно від перешкод. Ширина імпульсів на виході приймача повинна відрізнятися від номінальної не більше ніж на 10%. Приймач повинен бути нечутливим до постійних зовнішнього засвічення. Задовольнити всім цим вимогам досить непросто. Старі реалізації приймача ІК ДУ, навіть із застосуванням спеціалізованих мікросхем, містили десятки компонентів. Такі приймачі часто використовували резонансні контури, настроєні на частоту 36 КГц. Все це робило конструкцію складної у виготовленні і налаштуванні, вимагало застосування хорошого екранування. Останнім часом великого поширення набули трехвиводние інтегральні приймачі ІК ДУ. В одному корпусі вони об'єднують фотодіод, передпідсилювач і формувач. На виході формується звичайний ТТЛ сигнал без заповнення 36 КГц, придатний для подальшої обробки мікро контролером. Такі приймачі виробляються багатьма фірмами, це SFH-506 фірми Siemens, TFMS5360 фірми Temic, ILM5360 виробництва ВО «Інтеграл» та інші. В даний час є і більш мініатюрні варіанти таких мікросхем. Оскільки крім RC-5 існують і інші стандарти, які відрізняються, зокрема, частотою заповнення, існують інтегральні приймачі для різних частот. Для роботи з кодом RC-5 слід вибирати моделі, розраховані на частоту заповнення 36 КГц.

Як приймач ІК ДУ можна застосувати і фотодіод з підсилювачем-формувачем, в якості якого може служити спеціалізована мікросхема КР1568ХЛ2. Схема такого приймача приведена на малюнку 6.

Малюнок 6. Приймач на мікросхемі КР1568ХЛ2.

Для системи управління відображенням інформації я вибрав інтегральний приймач ІК ДУ. Як приймач оптичного випромінювання в мікросхемі TSOP1736 встановлений високочутливий PIN фотодіод, сигнал з якого надходить на вхідний підсилювач, що перетворює вихідний струм фотодіода в напругу. Перетворений сигнал надходить на підсилювач з АРУ і далі на смуговий фільтр, який виділяє сигнали з робочою частотою 36 кГц з шумів і перешкод. Виділений сигнал надходить на демодулятор, який складається з детектора і інтегратора. У паузах між імпульсами проводиться калібрування системи АРУ. Управляє цим схема управління. Завдяки такій побудові, мікросхема не реагує на безперервну перешкоду навіть на робочій частоті. Активний рівень вихідного сигналу - низький. Мікросхема не вимагає для своєї роботи установки будь-яких зовнішніх елементів. Всі її компоненти, включаючи фотоприймач, захищені від зовнішніх наведень внутрішнім електричним екраном і залиті спеціальною пластмасою. Ця пластмаса є фільтром, відтинає оптичні перешкоди у видимому діапазоні світла. Завдяки всім цим заходам мікросхема відрізняється досить високою чутливістю і низькою ймовірністю появи хибних сигналів. І все ж інтегральні приймачі вельми чутливі до перешкод з харчування, тому завжди рекомендується застосовувати фільтри, наприклад, RC. Зовнішній вигляд інтегрального фотоприймача і розташування висновків показані на рис. 7.

Малюнок 7. Інтегральний приймач RC-5.

Декодування RC-5

Так як основу нашого пристрою становить мікроконтролера PIC18F252 декодування коду RC-5 здійснюватимемо програмно. Пропоновані в мережі алгоритми прийому коду RC5 в більшості своїй не підходять для пристроїв реального часу, яким авляются наше пристрій. Більшість запропонованих алгоритмів використовують програмні цикли для формування тимчасових затримок і інтервалів вимірювання. Для нашого випадку це не підходить. Вирішено використовувати переривання по спаду сигналу на вході INT мікроконтролера PIC18F252, тимчасові параметри вимірювати за допомогою TMR0 мікроконтролера PIC18F252, цей же таймер виробляє переривання коли минув час очікування наступного імпульсу, тобто коли настала пауза між двома посилками. Демодулірованний сигнал з виходу мікросхеми DA1, надходить на вхід INT0 мікроконтролера, в якому відбувається його дешифрування і видача розшифрувати команди на зсувні регістри для управління ключами. Алгоритм дешифрування заснований на вимірюванні часових інтервалів між перериваннями мікроконтролера PIC18F252. Якщо уважно подивитися на малюнок 8, можна помітити деякі особливості. Так якщо інтервал між перериваннями мікроконтролера PIC18F252 дорівнював 2Т, де Т це тривалість одиничного импулься RC5, то прийнятий біт може бути 0 або 1. Все залежить від того який біт був перед цим. У наведеній нижче програмі з докладними коментарями це дуже добре видно. Повністю весь проект доступний для скачування і використання в особистих цілях. При передруці посилання обов'язкове.



Сподобалася стаття? поділіться їй