• DS18b20).
  • Другий варіант, DS18b20).

Відображення в режимі рядка, що біжить - дата, місяць, рік і день тижня.

Загальна схема.


- При натисканні Кн2 Кн2


Кн1Кн3 Кн2


UA-EN-RU .


ds 18 b 20 №1 чи №2.

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

Годинник Годинник + RF Годинник + RF + ds18b20



Годинник + ds18b20 (2шт.) Годинник + ds18b20 RF-передавач



Схема у протеусі

прошивкою завантажувача ATmega328.)


FUSE, якщо хтось буде використовувати ICSP програматор для прошивкиATmega328 у цій схемі.

За допомогою перемичок Jp-1, Jp-2, Jp RF

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

FUSE, ATtiny24а встановлюються на внутрішній генератор МК – 8МГц.



в архіві .

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

DS18b20, RTCDS1307, датчик освітлення, кнопки управління, комплект RF -модулів, та блок живлення 5 вольт (споживання схеми в пікових моментах, при максимальній яскравості, становить до 0.6А, а в середньому це 0.3А, можна використовувати зайву зарядку від мобілки, якщо є з відповідними параметрами)).
У чому інтерес застосуванняArduino Nano Atmega328.
У тому, що на борту цієї хустки вже є модем з виходом на міні USB, прошити такий контролер можна без особливих зусиль через bootloader, за допомогою вашого комп'ютера та телефонного шнура для зарядки мобільного телефону з роз'ємом під міні USB.
Все це легко робиться за допомогою простенької програмиXLoader.
Трохи докладніше про досвід прошивки через bootloader, описував тут Nano вольт - амперметр 2 канали. ".
За бажанням всі необхідні модулі можна за вигідною ціною купити на Aliexpress.

MAX7219 dot matrix

Nano Atmega328

DS1307

DS18b20

Датчик освітлення

Блок живлення

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


Загалом, з елементарною базою, думаю, питань не повинно виникнути, так все тут стандартно.


Оформлення відображення виду роботи годинника - термометра, це вже аматорський варіант виконання.
У програмі є три варіанти оформлення роботи годинника термометра.

  • Перший варіант це, почергове відображення часу (години та хвилини), вуличної температури та температури приміщення (два датчикиDS18b20).

Відображення в режимі рядка, що біжить - дата, місяць, рік і день тижня.

  • Другий варіант, відображення часу (годинник та хвилина), температури навколишнього повітря (один датчикDS18b20).

Відображення в режимі рядка, що біжить - дата, місяць, рік і день тижня.

  • Третій варіант, просто годинник, відображення часу (годинник та хвилина),

відображення в режимі рядка, що біжить - дата, місяць, рік і день тижня (відображення температури вимкнено).

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


Схема.


- У схемі використано три кнопки керування, при короткочасному натисканні на ці кнопки, одноразово викликаємо ротацію показань на основному екрані годинник – дату - день тижня – температура.


- При натисканні Кн2 більше 2х сек. здійснюється вхід у меню установок (при знаходженні в меню, натискання Кн2 більше 2х сек., Вихід з меню установок).


- Після входу в меню, кнопками Кн1Кн3можна зробити корекцію дати та часу, рух по меню здійснюється Кн2 , змінюваний параметр перебуватиме в інверсному світінні.


- Також у меню, можливо, якщо в цьому є необхідність встановити корекцію неточності ходу годин, протягом доби ±9сек.


- Наступний пункт у меню буде, це вибір мови, в одній прошивці передбачено використання мов UA-EN-RU .


- Пункт варіанта анімації на екрані, один із трьох, що описано на початку статті.


- Радіодатчик, при виборі значення «0» , радіодатчик у програмі не задіяний, при виборі 1 або 2 показання температури з радіодатчика займуть місце на дисплеї, замість ds 18 b 20 №1 чи №2.

Фото годинника в процесі налагодження на макетній платі.

Схема у протеусі

Схема передавача для цього годинника.

За допомогою перемичок Jp-1, Jp-2, Jp -3, можна вибрати частоту передачі RF -модулем пакетів інформації з температурою від датчика №3

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

(1 – перемичка замкнута, 0 – ні)

Друкована плата для годинника, та радіодатчика.

FUSE для роботи ATmega328 із завантажувачем (архів з прошивкою завантажувача ATmega328.)

FUSE, якщо хтось буде використовувати ICSP програматор для прошивки ATmega328 в цій схемі.

Прошивка "Годинник - термометр на матричних модулях", друковані плати, proteus, в архіві.

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

Виробнича компанія «РусІмпульс» випускає великий асортимент вуличного світлодіодного годинника: з висотою цифр від 80мм і вище і будь-яким кольором світіння.

Серійні моделі вуличного настінного годинника «Імпульс» стандартно відображають поточний час, дату і температуру повітря в поперемінному режимі. Опціонально такий годинник-термометр здатний також показувати широкий спектр метеоданих: температуру води, відносну вологість повітря, атмосферний тиск, швидкість вітру, рівень радіаційного фону. Час відображення кожного з параметрів може бути встановлений користувачем самостійно.

Електронні табло «Імпульс» працюють у широкому температурному діапазоні (від -40 до +50 °С), мають спеціальний захист від корозії, попадання пилу та вологи всередину корпусу (IP 65) та можуть експлуатуватись у будь-яких погодних умовах.

Електронний вуличний годинник з термометром «Імпульс» випускається, як правило, в односторонньому виконанні і встановлюється на стіну будівлі. Можливе двостороннє виконання годинника з вертикальним або бічним кріпленням.

Залежно від передбачуваного місця встановлення вуличний електронний годинник-термометр можна вибрати для тіньової або сонячної сторони. Для розміщення в тіні підійдуть годинник-термометр з менш яскравими світлодіодами червоного кольору - 1,5Кд, тоді як для сонячної сторони, а також установки у вітринах рекомендується годинник з яскравішими світлодіодами (3,0Кд для червоного свічення / не менше 2Кд для іншого кольору) )

Вуличний електронний годинник з термометром стандартно управляється за допомогою пульта дистанційного керування на ІЧ-променях з дальністю дії до 10 м. Пульт дозволяє змінювати яскравість світіння і тривалість індикації параметрів, що відображаються. Великогабаритний годинник-термометр з висотою шрифту від 700 мм управляється за допомогою радіопульта дальністю дії до 50 м.

Базові моделі вуличного електронного годинника «Імпульс»

параметри, що відображаються поточний час (ЧЧ:ММ), дата (ДД.ММ), температура повітря (-88°С або 88 °С)
формат індикаторів 88:88
тип індикаторів світлодіоди
яскравість індикаторів
управління пульт ДК на ІЧ-променях (відстань з дії до 10м)
живлення 220В/50Гц, кабель живлення 1,5м.
умови експлуатації вулиця, температуравід-40 ° до 50 ° С
тип та колір корпусу сталевий штампований корпус,пофарбований чорною порошковою фарбою,декоративний профіль, акрилове скло, кріплення -петлі на задній стороні корпусу
метеодатчикидатчик температури повітря - виносний, провід датчика 1,5м.
опціонально можливе оснащення табло іншими метеодатчиками
гарантійний термін 2 роки

Простий годинник на світлодіодних матрицях. Багато радіоаматорів, які починають і не тільки люблять «винаходити велосипед» - будувати СВОЇ електронні годинники. Не оминула ця доля і мене. Конструкцій годинника в інеті сьогодні звичайно достатньо, але ось годинника на світлодіодних матрицях чомусь серед них одиниці. У російськомовному інтернеті я знайшов лише одну повністю закінчену та описану конструкцію. У той же час, світлодіодні матриці зараз дуже сильно подешевшали, і їхня вартість не вища, а то й нижча, ніж у семисегментних індикаторів такого ж розміру. Наприклад застосовані мною GNM23881AD при розмірі 60х60мм були куплені за 1,5уе (3 індикатори обійшлися в 4,5уе), за ці гроші навряд можна купити чотири семисегментники таких-таки розмірів. А ось інформації, що розмістити на матричному індикаторі, можна набагато більше. Крім цифр на них можна відображати будь-які літери, знаки, а за допомогою рядка, що біжить, ще й текст.

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

Функціонал у годинника такий:

  • Відлік часу, календар, день тижня. (високосний рік враховується, перехід на літній/зимовий час не здійснюється).
  • Збереження ходу годинника при зникненні зовнішнього живлення (споживання становить 15мка).
  • Корекція ходу + - 59,9 сек\добу, з кроком 0,1 сек. 9 будильників. 3 з яких «одноразові», та 6 «постійних», що індивідуально налаштовуються по днях тижня.
  • Тривалість звукового сигналу кожного будильника (1-15хв), що індивідуально налаштовується.
  • Звукове підтвердження натискання кнопок (можна вимкнути).
  • Щогодинний звуковий сигнал (можна вимкнути).
  • З 00-00 до 08-00 сигнал не подається.
  • 1 або 2 датчики температури (Вулиця та будинок).
  • Настроюваний рядок, що біжить, за допомогою якого виводиться вся інформація (крім часу)
  • Значення корекції ходу, і налаштування «рядка, що біжить» - зберігаються навіть при пропаданні резервного живлення.

«Серцем» годинника обрана AtMega16A, через її доступність, дешевизну та «ногастість». Схему хотілося максимально спростити, тому все що можна було покладено на контролер. В результаті вдалося обійтися всього двома мікросхемами, контролером та регістром TPIC6B595. Якщо комусь недоступний TPIC6B595, можна його замінити на 74НС595 + ULN2803. Обидва варіанти були випробувані. Так само можна спробувати застосувати TPIC6С595, вона трохи слабка, і злегка грілася, але в цілому працювала стабільно. Відлік часу провадиться за допомогою асинхронного тайму – Т2. Хід годинника зберігається і при пропаданні харчування. У цей час більша частина схеми знеструмлюється, а контролер живиться від батарейки, акумулятора або від іоністора. Мені було цікаво «гратися» з іоністором, тому застосував його. Струм споживання годинником у черговому режимі становить 15мка. При харчуванні від іоністора на 1Ф годинник «протримався» чотири доби. Цього цілком достатньо підтримки ходу під час перебоїв харчування. Якщо застосувати батарейку СR2032, теоретично, за розрахунками заряду має вистачити на 1,5 року. Наявність напруги контролер «слухає» через висновок РВ.3 Цей висновок є інвертуючим входом компаратора. Напруга живлення через дільник R2-R3 подається на висновок РВ.3 і в нормальному стані дорівнює приблизно 1,5в. Якщо зовнішня напруга впаде нижче 4,1 вольта, то напруга на виведенні РВ.3 стане менше 1,23 вольта, при цьому згенерується переривання від компаратора, і в обробнику цього переривання вимикаються всі зайві вузли контролера і сам контролер присипається. У цьому режимі продовжує працювати тільки таймер Т2, що відраховує час. З появою зовнішнього живлення, напруга на РВ.3 знову підніметься вище 1,23в, контролер «побачивши» це переведе всі вузли в робочий стан. Якщо замість іоністора буде використовуватися батарейка СR2032, то її потрібно підключити через діод (переважно діод шоттки). Анод діода підключається до батареї +, а катод до катода VD1. У звичайному режимі на екрані відображається час у форматі години-хвилини. З інтервалом в одну хвилину відбувається запуск рядка, що біжить. Рядом, що біжить, відображається день тижня, дата, рік, темп. вдома, та темп. на вулиці. рядок, Що Настроюється, тобто. можна увімкнути/вимкнути відображення будь-якого з елементів. (Я, наприклад, завжди відключаю відображення року). При вимкненні всіх елементів, рядок, що біжить, не запускається, і годинник постійно відображає поточний час. 9 будильників розділені на 3 одноразові та 6 багаторазові. При включенні будильників 1-3 вони спрацьовують тільки один раз. Щоб вони спрацювали вкотре, їх необхідно повторно включати вручну. Будильники 4-9 багаторазові, тобто. вони спрацьовуватимуть щодня, у встановлений час. Крім того, ці будильники можна налаштувати на спрацювання тільки в певні дні тижня. Це зручно, наприклад, якщо не хочете, щоб будильник розбудив Вас у вихідні. Або, наприклад, Вам потрібно прокидатися в будні дні о 7-00, а в четвер о 8-00, а на вихідних будильник не потрібен. Тоді налаштовуємо один багаторазовий на 7-00 у понеділок-середу та п'ятницю, а другий на 8-00 у четвер….. Крім того всі будильники мають налаштування тривалості сигналу, і якщо Вам, щоб прокинутися, мало сигналу протягом 1 хвилини , То можна збільшити його на час від 1 до 15хв. Корекція ходу проводиться один раз на добу, о 00-00. Якщо годинник поспішає наприклад на 5 сек на добу, то в 00-00-00 час встановиться о 23-59-55, якщо годинник відстає, то в 00-00-00 час встановиться в 00-00-05. Крок корекції – 0,1 с. Максимальна корекція – 59,9 с/добу. Зі справним кварцом більше навряд чи знадобиться. Корекція здійснюється і в черговому режимі живлення від батареї. Світлодіодні матриці можна використовувати будь-які 8*8 світлодіодів із загальним катодом. Як було зазначено, я застосував GNM23881AD. В принципі можна "набрати" матрицю і з окремих світлодіодів. Мікроконтролер AtMega16a можна замінити на "старий" AtMega16 з літерою L. При цьому, теоретично повинен трохи збільшиться струм споживання від батарейки. Напевно буде працювати і просто AtMega16, але можуть виникнути проблеми під час роботи від батарейки. Діод D1 – бажано будь-який діод шоттки. З простим випрямляючим теж працює, але щоб убезпечити себе від різних глюків, пов'язаних з тим, що частина схеми живиться напругою «до діода», а частина «після діода» краще пошукати шоттки. Транзистор VT1 – будь-який n-p-n. Управління годинником здійснюється двома кнопками. Їхню кількість можна було довести до 8шт, не додаючи більше взагалі жодного компонента, крім самих кнопок, але захотілося спробувати «викрутиться» лише двома. Кнопки умовно названі «ОК» та «КРОК». Кнопкою "КРОК" зазвичай відбувається перехід до наступного пункту меню, а кнопкою "ОК" зміна параметрів поточного меню. Сигнал будильника також вимикається кнопками «ОК» або «КРОК». Натискання будь-якої кнопки під час сигналу будильника вимикає його. Схема управління вийшла такою:

Відео як все працює!

Цей рядок, що біжить, дозволяє читати текст обсягом не більше 8192 літери включаючи пробіли.Текст вводиться в пам'ять 24С64 рядка, що біжить, за допомогою клавіатури від комп'ютера без підключення самого комп'ютера. Під час введення тексту можна стирати букви за допомогою клавіші (Backspace) спостерігаючи за цією дією видалення букв на табло.

Є можливість регулювання швидкості бігу букв за допомогою двох клавіш поряд із цифрами клавіатури (+ та -). Швидкість бігу рядка записується в останній осередок пам'яті 24С64 тому при першому включенні без регулювання швидкості буде спостерігатися повільний біг букв і тому потрібно зробити перше регулювання. Швидкість бігу дуже сильно змінюється при регулюванні запису числа в останній осередок 24С64 числа від 1 .... 30 в десятковому вимірі або в шістнадцятковому1..1Е в чому можна переконатися за допомогою програматора PICKIT2, але це не обов'язково.

Пам'ять рядка містить знакогенератор має у своїй пам'яті весь алфавіт російських літер великих і дрібних літер, а також деякі знаки і всі цифри.

Індикація рядка рядкова динамічна складається з 8 рядків, які запалюються зверху вниз по черзі одна за одною 300 разів на секунду виконується весь цикл з 8 рядків, що дозволяє спостерігати картинку без мерехтіння.

Мікросхеми табло 74НС595 виконують роль запалення горизонталі табло або рядки з 160 світлодіодів, а транзистори дають можливість змінювати горизонталі або рядки від верхніх до нижніх по черзі тобто запалення табло відбувається рядково з верху вниз по черзі зі швидкістю 300 кадрів.

Сама мікросхема 74НС595 являє собою звичайний зсувний регістр з виведенням кожного регістра на світлодіодну матрицю але є велике АЛЕ матриця з регістрами з'єднується не на пряму а через фіксують логічний стан регістрів.

Навіщо це потрібно? Це потрібно для того, щоб поки що йде завантаження від МК зсувних регістрів по ланцюжку від одного до іншого з кожним тактовим сигналом на висновку 11 і при цьому спостерігалося на світлодіодних матрицях чого нам зовсім не потрібно так як картинка при цьому засвічувалася світлодіодами не в потрібних місцях. Тому додаткові фіксуючі регістри блокують під час завантаження даних виведення інформації на матриці і оновлюють тільки після того як на висновках 12 з'явитися тактовий передовий сигнал від зсувних регістрів до фіксуючих дані, а фіксують передають на матриці.

Дані табло, що створюють всі картинку рядки надходять від МК з виведення 34 на вхід регістра 14 мікросхеми 74НС595 від першої мікросхеми 74НС595 до другої дані передаються з виходу 9 на вхід 14 і так по ланцюжку до останньої мікросхеми 20.

Повторюся дані рухаються з кожним тактом на вході 11 всіх мікросхем 74НС595 по ланцюжку до останньої мікросхеми 74НС595 і після завантаження всі 20 мікросхем з'являється такт на фіксують регістрах висновок 12 тим самим оновлюючи зображення всього рядка, а не всього зображення табло. Рядки щоразу оновлюються після переходу на нижчий рядок.

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

Щоб перевірити першу плату дисплея потрібно підключити клавіатуру до плати МК подати живлення натиснути одну або кілька букв подати команду кінця рядка, що текст введений натиснувши клавішу ENTER після цього піде біг рядка з низькою швидкістю так як швидкість бігу теж потрібно відрегулювати натискаючи клавішу (-) до доти не запишеться константа від 5..1Е у шістнадцятковому вигляді на згадку 24С64.

Якщо вам не потрібний рядок такої великої довжини, що складається з 20 матриць 8х8, то я можу вам вислати прошивку з меншою кількістю від 2 до 19 це робиться просто і швидко відповідь вам надішлю лист з прошивкою мою адресу evgen100777(sobaka)rambler.ru.

Плати дисплея розведені для матриць 6х6 сантиметрів червоного кольору світіння з маркуванням QFT 2388ASR плата мікроконтролера зроблена з умовою модернізації додавання рядка годинника і термометра, але так як прошивка під цю справу не дороблена не рекомендую додавати кнопки, щоб не спалити порт МК.

Командні кнопки

(Shift) - кнопка перемикання на великі літери, натиснувши на неї і відпустивши натискається буква і виводитися на табло велика літера якщо натиснути наступну літеру без попереднього натискання Shift виводиться маленька літера, тобто перед кожним введенням великої літери потрібно натиснути і відпустити Shift.

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

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

Enterця клавіша запускає біг рядка після набору тексту, позначаючи кінець тексту в пам'яті 24С64 і говорить про те, що потрібно з цього місця тексту почати біг рядка з початку.

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

Для повторного вода тексту потрібно не забувати увімкнути та вимкнути рядок.

Рядок, що біжить з годинником, календарем і набором тексту на клавіатурі PS/2

Рядок, що біжить, показує час години хвилини секунди день цифрами, а місяць і день тижня словами наприкладЧАС 12.30.10 20 СІЧНЯ СЕРЕДА.

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

Під час набору тексту натисканням клавіші лівого CTRL вставляється годинник з календарем у текст рядка, що біжить. Цей рядок має ті самі функції що й минулі рядки на PIC16F628 і PIC16F877 і управляється вона точно так само.

Для налаштування часу потрібно натиснути кнопку вибір на платі з мікроконтролером, при цьому з'являється табло налаштування часу, починають блимати секунди натисканням кнопки змінити секунди скидаються в нуль. Давимо повторно кнопку вибір починають блимати хвилини натисканням кнопки змінити збільшуємо хвилини, теж саме з годиною датою місяцем та днем ​​тижня.

У налаштуваннях часу день тижня та місяць відображається у вигляді цифр.

Ось трохи змінена схема цього рядка тут додалося дві кнопки з підтягуючими резисторами зміни часу і годинниковим кварцом на 32768 Гц і ще один підтягуючий резистор вхід контролера відповідає за введення клавіатуру.

Для більш стабільної роботи PIC16F877 краще запитувати через резистор 11 ом 0.25 Ватт по плюсовому живленню для зниження перешкод, що йдуть від транзисторів, які комутують рядки табло.

Рядок, що біжить з годинником і термометром для вулиці і будинку.

Рядок, що біжить, працює на датчиках DS1820 і показує температуру в будинку і на вулиці шляхом вставки в текст рядка виведення показань на табло, що біжить.

Показання виводитись у вигляді напису ТЕМПЕРАТУРА БУДИНОК 25,2 ВУЛИЦЯ -12,4 показання температури мають молодший показник у вигляді десятої частки градуса.

Для вставки термометра в текст треба натиснути клавішу лівий ALT на комп'ютерній клавіатурі, підключеної до рядка, що біжить.

Діапазон температур виводиться термометром -55 до 99 градусів але не рекомендується нагрівати датчик вище 70 градусів, щоб уникнути його псування.

Довжина проводу, що йде до датчика, на вулиці має бути не більше 4 метрів.

Є прошивка із трьома українськими літерами.
Сигнал будильника знімається у вигляді лог 0 під час сигналу з виведення 38 PIC16F877

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
Схема 1
IC МК PIC 8-біт

PIC16F877

1 До блокноту
IC1 Мікросхема пам'яті24C641 До блокноту
IC2, IC3 Зсувний регістр

CD74HC595

20 До блокноту
VT1-VT8 Біполярний транзистор

BD140

8 До блокноту
C1, C2 Конденсатор100 нФ2 До блокноту
C3, C4 Конденсатор15 пФ2 До блокноту
C5 Конденсатор3.3 нФ1 До блокноту
R1-R16, R18, R19, R21-R24, R30, R31 Резистор

330 Ом

24 До блокноту
Резистор

330 Ом

144 До блокноту
R26, R27 Резистор

5.1 ком

2 До блокноту
R28, R29 Резистор

4.7 ком

2 До блокноту
Cr1 Кварцовий резонатор20.000 МГц1 До блокноту
Світлодіодна матриця8х820 До блокноту
Роз'ємPS/21 До блокноту
Схема 2
IC МК PIC 8-біт

PIC16F877

1 До блокноту
IC1 Мікросхема пам'яті24C641 До блокноту
Зсувний регістр

CD74HC595

20 До блокноту
Біполярний транзистор

BD140

8 До блокноту
C2 Конденсатор100 нФ1 До блокноту
C3, C4 Конденсатор15 пФ2 До блокноту
C5 Конденсатор3.3 нФ1 До блокноту
C6, C7 Конденсатор33 пФ2 До блокноту
C8 Конденсатор електролітичний47 мкФ1 До блокноту
R18, R19, R21-R24, R30, R31 Резистор

330 Ом

24 До блокноту
Резистор

330 Ом

144 До блокноту
R26, R27, R32, R33 Резистор

5.1 ком

4 До блокноту
R29, R34, R35 Резистор

4.7 ком

3 До блокноту
R36 Резистор

11 Ом

1 До блокноту
Cr1 Кварцовий резонатор20.000 МГц1 До блокноту
Cr2 Кварцовий резонатор32768 Гц1 До блокноту
S1, S2 Кнопка тактова 2 До блокноту
Світлодіодна матриця8х820 До блокноту
Роз'ємPS/21 До блокноту
Схема 3
IC МК PIC 8-біт

PIC16F877

1 До блокноту
IC1 Мікросхема пам'яті24C641 До блокноту
Зсувний регістр

CD74HC595

20 До блокноту
Датчик температури

DS18B20

2

У пропонованому пристрої використовуються символьні світлодіодні шістнадцятиелементні індикатори PSA08-11 із загальними анодами. Вибір упав саме на них через невисоку вартість, великий розмір символу і високу яскравість. Щоб виводити максимум корисної інформації, текст переміщається праворуч наліво. На шести знайомих по черзі відображаються поточний час, температура в приміщенні, температура поза ним, число, день тижня і місяць прописом, наприклад, “18 БЕРЕЗНЯ ЧЕТВЕР.

Рахунок часу веде мікросхема DS1307. Вона є годинником реального часу (Real Time Clock -RTC) з вбудованим календарем. При вимкненому загальному живленні ця мікросхема продовжує працювати від резервного джерела - літієвого елемента CR2032 напругою 3 В. Оскільки за відсутності зовнішніх звернень споживаний мікросхемою DS1307 струм не перевищує 300 нА, рахунок часу в такому режимі може тривати до десяти років. Тактовий генератор цієї мікросхеми побудований із застосуванням зовнішнього кварцового резонатора частотою 32768 Гц, що забезпечує високу точність ходу. Мікросхема відраховує секунди, хвилини, години, дні місяця (з урахуванням високосних років), місяці, дні тижня та роки. Її календар дійсний до 2100 р. Докладнішу інформацію про неї можна отримати у .

Для вимірювання температури у пристрої застосовані цифрові термодатчики LM75, що мають похибку не більше 2 °С в інтервалі температури від -25 до +100 °С. Більш детальну інформацію про них можна знайти у .
Схема годинника і термометра з рядком, що біжитьпоказано на рис. 1. Всі функції, за винятком часу, виконує мікроконтролер DD2 (PIC16F873A-20I/P), тактований вбудованим генератором з кварцовим резонатором ZQ2. Для керування пристроєм призначені кнопки SB1-SB5. Коли їх контакти розімкнені, резистори R4-R8 забезпечують високий логічний рівень на відповідних входах мікроконтролера. Резистор R11 підтримує високий рівень на вході початкової установки мікроконтролера, запобігаючи перезапуску програми випадковими перешкодами.

Для живлення годинника необхідне стабілізоване джерело напруги 5 В з максимальним струмом навантаження не менше 600 мА. Його підключають до гнізда XS1. В авторському варіанті використовується зарядний пристрій від мобільного телефону. Конденсатори С1 і С2 - що згладжують, причому ємність конденсатора С1 повинна бути не менше ніж 1000 мкФ.
У годиннику передбачений будильник. Його звуковий сигнал подає п'єзовипромінювач із вбудованим генератором НА1 (НРА24АХ). За сигналами мікроконтролера ним управляє ключ транзисторі VT7. Підбираючи резистор R18 у ланцюзі бази цього транзистора, можна в деяких межах регулювати гучність звуку.

Для індикації режимів роботи призначені світлодіоди HL1-HL3 червоного кольору свічення. Їх яскравість змінюють, підбираючи резистори R15-R17.
Для програмування мікроконтролера, встановленого на плату, у ньому є роз'єм ХР1. На час виконання цієї операції до нього приєднують програматор, наприклад PICkit2, EXTRAPIC або інший подібний . У діючому пристрої цей роз'єм не потрібен. Його можна не встановлювати, якщо до монтажу на плату запрограмувати мікроконтролер на панелі програматора.


Програмування мікроконтролера полягає у завантаженні програмного коду з НЕХ-файлу в його FLASH-пам'ять. Для цього потрібна програма, що управляє програматором, наприклад WinPic800, яка знаходиться у вільному доступі за адресою www.winpic800.com/descargas/WinPic800.zip в мережі Інтернет. Детальну інструкцію з програмування мікроконтролера також можна прочитати у .
Для спрощення програми мікроконтролера та пристрою в цілому мікросхема RTC DD1 та датчики температури ВК1 та ВК2 пов'язані з мікроконтролером по одній і тій же шині I2C. Датчик ВК2 підключають до роз'єму ХР2 кабелем завдовжки кілька метрів за схемою, зображеної на рис. 2.

Резистори R2 і R9 з'єднують лінії SCL і SDA шини I 2 C з плюсом живлення, підтримують на них високий рівень пауз передачі інформації, як того вимагає специфікація шини. Докладніше про використання цієї шини можна дізнатися з . Адресні входи датчиків температури ВК1 та ВК2 по-різному з'єднані з плюсом живлення та загальним проводом, що дає мікроконтролеру можливість програмно розрізняти датчики.

Шістнадцятирозрядні паралельні коди виведення інформації на індикатори утворюються на виходах мікросхем DD3 і DD4. Мікроконтролер DD2 заносить інформацію до цих мікросхем послідовним кодом, використовуючи для цього всього три лінії своїх портів В і С. Встановивши на лінії RC6 та інформаційному вході зсувного регістра мікросхеми DD3 рівень, відповідний значенню (0 або 1) чергового розряду коду, він формує на лінії RC7 і тактові входи обох мікросхем наростаючий перепад рівня. При цьому вже міститься в з'єднаних послідовно зсувних регістрах код переміщається на одну позицію у бік старшого розряду регістра DD4, а молодший розряд регістра DD3, що звільнився, записується значення, встановлене мікроконтролером на його вході.

Після шістнадцяти таких операцій весь код записаний утворений мікросхемами DD3 та DD4 шістнадцятирозрядний зсувний регістр. Однак на виходах мікросхем цей код ще не з'явився, на них продовжує діяти той, що був виведений у попередньому циклі. Щоб оновити стан виходів, мікроконтролер формує наростаючий перепад рівня на своїй лінії RB0 та входах запису коду зі зсувних регістрів мікросхем DD3 та DD4 у їх регістри зберігання. Більш детально з роботою мікросхеми перетворювача послідовного коду паралельний 74НС595 можна ознайомитися, прочитавши .

Після запису коду мікросхеми DD3 і DD4 мікроконтролер подає команду включити той з шести індикаторів, для катодів елементів якого цей код призначений. Щоб не перевантажувати вихід мікроконтролера, аноди індикаторів з'єднані з ними через ключі на транзисторах VT1-VT6. Схема плати індикаторів показано на рис. 3, а умовні позначення елементів індикатора PSA08-11SRW – на рис. 4. Роз'єми ХР1 і ХР2 плати індикаторів з'єднують відповідно до роз'ємів XS3 і XS2 основної плати.

Креслення основної плати та розміщення елементів на ній наведено на рис. 5. Вона виготовлена ​​із фольгованого з одного боку склотекстоліту. Плата розрахована на встановлення датчика температури ВК1 у корпусі DIP8, проте датчик LM75AD випускають у корпусі SO8 для поверхневого монтажу, тому встановлювати його слід через плату-перехідник (рис. 6). На рис. 5 контур перехідника показаний штрихпунктирною лінією. У відповідні отвори перехідника та плати вставляють та пропаюють з обох сторін відрізки дроту. Можна, звичайно, змінивши топологію друкованих провідників на основній платі, обійтися без перехідника.

Двостороння друкована плата індикаторів показана на рис. 7. Зверніть увагу, що роз'єми на ній встановлюють з протилежної сторони, де знаходяться індикатори. При зчленуванні роз'ємів обидві плати розташовуються одна над одною “етажеркою”, як можна побачити на фото рис. 8.
Транзистори КТ502Б можна замінити будь-якої тієї ж серії. Замість світлодіодів АЛ307БМ підійдуть інші малопотужні червоного кольору світіння, наприклад АЛ310А.
Правильно зібраний пристрій з коректно запрограмованим мікроконтролером налагодження не потребує і починає працювати відразу після включення.

Після подачі живлення першим на індикатори виводиться вітальне повідомлення. За ним слідує час у 12- або 24-годинному форматі, який можна вибрати у відповідному пункті меню. Далі рядок, що біжить, з поточним часом на 10с зупиняється. Після закінчення виводяться температура в приміщенні (покази датчика ВК1), температура на вулиці (покази датчика ВК2) і витримується ще одна десятисекундна пауза, протягом якої індикатор показує вуличну температуру. Після цього виводиться число, за ним місяць та день тижня прописом, після чого цикл (за винятком вітального повідомлення) повторюється.

Для встановлення поточного часу та інших параметрів переходять у режим “Меню” короткочасним натисканням кнопки SB3 “М”. Вмикається світлодіод HL2, показуючи, що цей режим увімкнено. На індикаторі після повідомлення “НАЛАШТУВАННЯ” виводиться та зупиняється рядок “ГОДИНА XX”, де XX - поточне значення години, яке можна збільшити натисканням кнопки SB1 “+” або зменшити натисканням кнопки SB5 “-“.
Щоб перейти до наступного пункту меню, натискають на кнопку SB2 “>”. З її допомогою меню можна “гортати” у вказаному порядку, за допомогою кнопки SB4 “<” – в противоположном. После первого нажатия на кнопку SB2 “>” виводиться рядок “МІН XX”, потім “РІК 20ХХ” (за замовчуванням 2011), далі “МІСЯЦЬ XX”, “ЧИСЛО XX”, “ДЕНЬ ТИЖНЯ XX”, “БУД_ГОДИН XX” (година спрацьовування будильника), “БУД_МІН XX” (хвилини спрацьовування будильника).

Потім на індикаторі з'являється один із рядків "БУД ВИКЛ" або "БУД ВКЛ", відображаючи поточний стан будильника. Його можна змінювати, натискаючи кнопку SB1 “+” або SB5 “-“. Коли будильник увімкнено, світиться світлодіод HL1, сигналізуючи про це.
Далі виводиться рядок “ФОРМАТ XX”, де XX дорівнює 12 чи 24 залежно від обраного натисканнями на кнопку SB1 “+” чи SB5 ” формату часу. Після чергового натискання на SB2 “>” виводиться рядок “ПОКИ”, вимикається світлодіод HL2, годинник переходить у звичайний робочий режим.


Коли поточний час збігається із заданим часом спрацьовування будильника, включаються світлодіод HL3 та випромінювач звуку НА1. Щоб вимкнути світлову та звукову сигналізацію, достатньо натиснути будь-яку кнопку. Електричний сигнал для керування зовнішнім виконавчим пристроєм при необхідності можна зняти з виходу мікроконтролера RB5, до якого через резистор R17 підключений світлодіод HL3.
При вимкненому зовнішньому живленні пристрій продовжує рахунок часу – мікросхема DD1 працює від літієвого елемента G1.

Файли, що додаються: source.zip

ЛІТЕРАТУРА
1. DS1307 – 64 X 8 годин реального часу з послідовним інтерфейсом. – www.piclist.ru/D-DS-DSB1 “+”307-UA/D-DS-DS1307-UA.html
2. LM75A Digital temperature sensor and thermal watchdog. www.alldatasheet.com/datasheet-pdf/pdf/100962/PHILIPS/LM75AD.html
3. Долгий А. Програматори та програмування мікроконтролерів. - Радіо, 2004, № 1, с. 53.
4. Семенов Б. Ю. Шина I2C у радіотехнічних конструкціях. - М.: "СОЛОН-Р", 2002.
5. 74НС595; 74НСТ595 8-біт серійний, серійний або parallel-out shift register with output latches; 3-state. - www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

В. БАЛАНДІН, с. Петрівське Тамбовської обл.
"Радіо" №9 2012р.