Виберіть свою мову

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

Описуваний пристрій призначений для індикації поточного часу, подачі звукових сигналів в заданий час і індикації температури в двох точках (в приміщенні і на вулиці) в інтервалі -55...+99 °с З точністю ±1 °С. Час і температура відображаються по черзі (протягом 10, 1 і 2 с відповідно). Установку показань годин, часу спрацьовування будильника, відключення будильника, гасіння і запалювання індикатора виробляють з ІЧ пульта дистанційного управління (ДУ).

Будильник подає звукові сигнали з паузою 10 з: спочатку два коротких (приблизно за 0,1 с) одиночних, потім стільки ж здвоєних (з паузою 0,1 с), а після них - два строенных (з такою ж паузою). Після закінчення хвилини строєні сигнали подаються кожну секунду до тих пір, поки будильник не буде відключений (такий "алгоритм" зручний, якщо в кімнаті спить дитина). Є функція Snooze (повторення сигналу через певний час), що дозволяє ще трохи поспати після першої подачі сигналів. Якщо індикатор погашений (наприклад, у нічний час, щоб не турбувати дітей при засипанні), в момент спрацьовування будильника він запалюється і до відключення або переходу в режим Snooze показує поточний час. Передбачені короткий звуковий відгук на натискання кнопок пульта, індикація (світлодіодом) проходження команд з пульта, резервне живлення при зникненні напруги в мережі (в цьому випадку будильник подає безперервний сигнал).

Принципова схема пристрою зображена на рис. 1. Його основа - мікроконтролер DD2 АТ89С4051 [1]. Він керує роботою всіх вузлів. В його складі є енергонезалежна пам'ять програм (4 Кбайт), ОЗУ (128 байт), два таймера, система переривань та ін.

(натисніть для збільшення)

Для надійного запуску і захисту мікроконтролера від збоїв по харчуванню застосована мікросхема КР1171СП47 (DA1). Вона утримує на своєму виході (вив. 3) низький рівень при напрузі живлення менше 4,7 В. Конденсатор С6 затримує перехід в стан лог. 0 (тобто запуску мікроконтролера) після того, як напруга харчування стане вище порогового рівня. В крайньому випадку цю мікросхему можна не встановлювати, застосувавши стандартну схему скидання, рекомендовану фірмою Atmel. Однак при цьому можливі збої пристрою за "провали" в харчуванні.

Табло пристрою складається з п'яти світлодіодних цифрових індикаторів SA08-11GWA фірми Kingbright. Індикація - статична. Для зниження яскравості світіння в ланцюг харчування індикаторів включені діоди VD5 і VD6. При відображенні часу HG1 і HG2 показують відповідно десятки і одиниці годин, HG3 - тире (-), HG4 і HG5 - десятки і одиниці хвилин (наприклад, 22-11), в режимі вимірювання температури HG1 відображає її знак (тільки для від'ємних значень), a HG2, HG3 і HG4, HG5 - відповідно чисельне значення та одиницю виміру (наприклад, -18°С для зовнішнього датчика і 23°.Для кімнатного, про що свідчить символ "." четвертому розряді).

Для управління сайтом індикації використано всього три виводу мікроконтролера: Р1.2 (14) - для передачі даних; Р1.3 (15) - для стробування кожного біта, виставленого на Р1 2; Р1.4 (16) - для виведення завантажених в DD3-DD7 даних на їх виходи. Мікросхема 74НС595 [2] представляє собою восьмибітний регістр з послідовним входом і паралельним виходом із засувкою. Це дозволяє спочатку завантажити в нього дані, а тільки потім подати їх на вихід. Виходи можна переводити в третій стан. Кожен висновок може віддавати струм до 35 мА.

В якості годин застосована мікросхема PCF8583 [3], що дозволило забути про те, що час може збиватися при відсутності живлення (точність ходу залежить практично тільки від кварцового резонатора ZQ1 на 32768 Гц). У PCF8583 є статична пам'ять, яка використовується для визначення першого включення годин (щоб підготувати і мікроконтролер, і самі години до нормального функціонування) і апаратний будильник. При збігу встановленого часу з поточним на виведенні INT (7) з'являється низький логічний рівень. В результаті замикається ланцюг живлення електромагнітного випромінювача НА1, а на висновок РЗ.З (7) мікроконтролера DD2 подається сигнал переривання. Далі програмно вимикається сигнал з виводу INT і управління випромінювачем переходить до мікроконтролера (через електронний ключ на польових транзисторах VT1, VT2). Управляються години по шині l2C, організованою програмно (в мікроконтролері вона відсутня).

Для подачі звукових сигналів застосовано електромагнітний випромінювач НСМ1606Х фірми JL World з вбудованим генератором, що працює на частоті близько 2200 Гц.

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

Для прийому сигналів управління пульта ДУ застосований інтегральний приймач ІК діапазону SFH506-36 фірми Siemens [4]. Ця мікросхема дуже чутлива до перешкод по ланцюгу живлення, тому в неї включений фільтр VD4C8C9.

Живиться пристрій від стабілізованого перетворювача напруги на основі мікросхеми МС34063 (вітчизняний аналог - КР1156ЕУ5). Робота таких перетворювачів докладно описана в [5]

Принципова схема ІЧ пульта ДУ показана на рис. 2. Виконаний він на базі малогабаритного калькулятора китайського виробництва у формі стільникового телефону (використані його корпус, клавіатура і батарея харчування, що складається з двох елементів 389А). В якості передавача застосована мікросхема SAA3010 [6] (аналог - INA3010D ЗА "Інтеграл") в корпусі СПК. Ця мікросхема працює в системі ІК ДУ RC-5, розробленої фірмою Philips для керування побутовою апаратурою і одержала широке поширення (використовується в багатьох телевізорах, в тому числі і випускаються, наприклад, ЗА "Горизонт").

В режимі очікування SAA3010 споживає незначний струм, що робить експлуатацію пульта дуже зручною - немає необхідності в окремому вимикачі живлення. Мікросхема переходить в активний стан при натисканні будь-якої кнопки і повертається в режим мікровжитку при її відпусканні. Використовуваний номер системи коду RC-5 - 0 (для управління телевізором). При необхідності, наприклад, щоб не заважати роботі з телевізором, якщо в ньому використовується той же стандарт, неважко перейти до іншої кодировочной таблиці. Допустимо застосування і готового пульта ДУ від будь-якого побутового апарату, якщо подбати про перекодуванні команд. Ознайомитися з роботою ІК ДУ RC-5 можна в статті [7].

В якості виносних датчиків температури застосовані мікросхеми DS1621 фірми DALLAS. Гарні вони тим, що використовують для обміну інтерфейс 12С, який у нас вже сформований програмно. Це означає, що їх можна підключити до тих же висновків мікроконтролера, що і годинник. Похибка вимірювань цілком визначається датчиками і не перевищує ±0,5 °С, а точність індикації - 1°С. Більш детальну інформацію про цифрові датчики температури можна отримати на сайті [8].

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

Призначення кнопок пульта ДУ: "TS" - установка часу. Після її натискання вводять час в 24-годинному форматі незначащими нулями, тобто якщо в даний момент вісім тридцять ранку, то 0 8 - 3 0. Переконавшись, що час введено правильно, натисніть будь-яку кнопку, і пристрій переходить в режим годин.

"BS" - установка часу спрацьовування будильника. Процедура, аналогічна встановлення часу.

"OFF" - відключення будильника. Кнопка SB2 в корпусі годинника виконує таку ж функцію.

"LED" - відключення/включення індикаторів.

Натискання будь-якої іншої кнопки під час подачі сигналу будильником переводить його в режим Snooze.

Зовнішній вид пульта ДУ і вид на монтаж основного блоку пристрою показано на рис. 3.

Коди "прошивки" мікроконтролера у вигляді hex-файлу наведено в таблиці.

Вихідний текст

Програма написана на мові С. Це надає можливості для подальшої модернізації. Програма розроблялася і компилировалась в інтегрованому середовищі Keil mVision2 V2.36. Асемблер - А51 версії V7.04, компілятор - З V7.04, програма компонування - BL51 версії V5.02. Файл проекту - termo.Uv2. Детальний опис компілятора можна знайти на сайті [9] (там же можна "скачати" демонстраційну версію.

(натисніть для збільшення)

Керуюча програма записана в контролер з допомогою програматора TURBO. Перед програмуванням потрібно перевірити відповідність монтажу принциповою схемою пристрою. Правильно зібрана конструкція в налагодженні не потребує.

Література

  • Microcontroller АТ89С4051. - <http://www.stmel.com/dyn/resource/ prod_document/doc1001 .pdf >.
  • 74НС595; 8 bit serial-in, serial or parallel-out shift register with output latches; (3-state). - <http://www.semiconductors.philJps.coni/ pip/74HC595.html>.
  • PCF8583; Clock/calendar with 240x8-bit RAM. - <http://www.semiconductors.philips.com/ plp/PCF8583.html>.
  • SFH506-36; IR-receiver, demodulator device. - <http://www.stosselshome.de/ datenbl/sfh506-36.pdf>.
  • Бірюков С. Перетворювачі напруги на мікросхемі КР1156ЕУ5. - Радіо, 2001, №11, с. 38, 39, 42.
  • SAA3010; Infrared remote control trasmit-ter. - <http://www. semiconductors, philips. com/pip/SAA301O.htmIX
  • Ридико Л. І. Застосування коду RC-5. - < h ttp ;//www. telesys. ua/p rojects/pro j036/ index.shtml>
  • DS1621; Digital thermometer and thermostat. - <http://www.msxlm-lc.com/ qulck_view2.cfm/qv_pk/2737>.
  • <http://www.keil.com>.
  • Автор: Д. Чибышев, р. Омськ