Направи си сам часовник с LED дисплей. Часовник на AVR микроконтролер с часовникова диаграма DS1307 Направи си сам

В продажба можете да намерите много различни модели и опции за електронни цифрови часовници, но повечето от тях са предназначени за употреба на закрито, тъй като броят им е малък. Понякога обаче е необходимо да поставите часовник на улицата - например на стената на къща или на стадион, площад, тоест там, където ще бъде видим от голямо разстояние от много хора. За тази цел беше разработена и успешно сглобена тази схема на голям LED часовник, към който можете да свържете (чрез вътрешни транзисторни ключове) LED индикатори с всякакъв размер. Можете да увеличите схематичната диаграма, като щракнете върху нея:

Описание на часовника

  1. Гледам. В този режим има стандартен тип показване на времето. Има цифрова корекция на точността на часовника.
  2. Термометър. В този случай устройството измерва температурата на помещението или външния въздух от един сензор. Диапазон от -55 до +125 градуса.
  3. Осигурен е контрол на захранването.
  4. Показва информация на индикатора последователно - часовник и термометър.
  5. За запазване на настройки и настройки при загуба на 220V се използва енергонезависима памет.


Основата на устройството е ATMega8 MK, който се мига чрез настройка на предпазители според таблицата:

Работа и управление на часовника

Когато включите часовника за първи път, на екрана ще се появи начален рекламен екран, след което той ще премине към показване на часа. Натискане на бутон SET_TIMEиндикаторът ще премине в кръг от основния режим:

  • режим на показване на минути и секунди. В този режим, ако едновременно натиснете бутона ПЛЮСИ МИНУС, тогава секундите ще бъдат нулирани;
  • настройка на минутите на текущото време;
  • настройка на текущия часовник;
  • символ T. Настройка на продължителността на показване на часовника;
  • символ о. Време на показване на символите за индикация на външна температура (извън);
  • размерът на ежедневната корекция на точността на часовника. Символ ° Си корекционна стойност. Задаване на граници от -25 до 25 сек. Избраната стойност ще се добавя или изважда от текущия час всеки ден в 0 часа, 0 минути и 30 секунди. За повече подробности прочетете инструкциите, които са в архива с файловете на фърмуера и печатната платка.

Сверяване на часовника

Докато държите натиснати бутоните ПЛЮС/МИНУСПравим ускорено задаване на стойности. След промяна на настройките, след 10 секунди новите стойности ще бъдат записани в енергонезависимата памет и ще бъдат прочетени от там при повторно включване на захранването. Новите настройки влизат в сила по време на инсталацията. Микроконтролерът следи наличието на основно захранване. Когато е изключено, устройството се захранва от вътрешен източник. Диаграмата на резервния захранващ модул е ​​показана по-долу:


За да се намали консумацията на ток, индикаторът, сензорите и бутоните са изключени, но самият часовник продължава да отчита времето. Веднага щом се появи мрежово напрежение 220V, всички функции на индикация се възстановяват.


Тъй като устройството е замислено като голям LED часовник, то има два дисплея: голям LED - за улицата и малък LCD - за лесна настройка на основния дисплей. Големият дисплей е разположен на няколко метра от контролния блок и е свързан с два кабела от 8 проводника. За управление на анодите на външния индикаторен индикатор се използват транзисторни ключове съгласно диаграмата, дадена в архива. Автори на проекта: Alexandrovich & SOIR.

Снимката показва прототип, който сглобих за отстраняване на грешки в програмата, която ще управлява цялото това съоръжение. Вторият arduino nano в горния десен ъгъл на макетната платка не принадлежи на проекта и стърчи там просто така, не е нужно да му обръщате внимание.

Малко за принципа на работа: Arduino взема данни от таймера DS323, обработва ги, определя нивото на светлина с помощта на фоторезистор, след което изпраща всичко към MAX7219, а той от своя страна осветява необходимите сегменти с необходимата яркост. Освен това, като използвате три бутона, можете да зададете година, месец, ден и час по желание. На снимката индикаторите показват време и температура, която се взема от цифров датчик за температура

Основната трудност в моя случай е, че 2,7-инчовите индикатори имат общ анод и те трябваше, първо, по някакъв начин да се сприятеляват с max7219, който е предназначен за индикатори с общ катод, и второ, да решат проблема с техните захранване, тъй като им трябва 7,2 волта за светене, което max7219 сам не може да осигури. След като поисках помощ в един форум, получих отговор.

Решение на екранната снимка:


Към изходите на сегментите от max7219 е закачена микросхема, която инвертира сигнала, а към всеки изход е закачена схема от три транзистора, които трябва да бъдат свързани към общия катод на дисплея, които също инвертират сигнала си и увеличават волтаж. Така получаваме възможност да свързваме дисплеи с общ анод и захранващо напрежение над 5 волта към max7219

Свързах един индикатор за теста, всичко работи, нищо не пуши

Да започнем да събираме.

Реших да разделя веригата на 2 части поради огромния брой джъмпери във версията, която беше разделена от моите криви лапи, където всичко беше на една дъска. Часовникът ще се състои от дисплей и блок за захранване и контрол. Беше решено първо да се съберат последните. Моля естетите и опитните радиолюбители да не припадат заради жестокото отношение към частите. Нямам желание да купувам принтер заради LUT, затова го правя по стария начин - упражнявам се върху лист хартия, пробивам дупки по шаблона, рисувам пътеки с маркер и след това гравирам.

Принципът на закрепване на индикаторите остана същият като на.

Маркираме позицията на индикаторите и компонентите с помощта на шаблон от плексиглас, изработен за удобство.

Процес на маркиране







След това, използвайки шаблон, пробиваме дупки на правилните места и пробваме всички компоненти. Всичко пасна идеално.

Рисуваме пътеки и ецваме.




къпане в железен хлорид

Готов!
табло за управление:


табло за индикация:


Контролната платка се оказа страхотна, пистата на таблото на дисплея не беше критично изядена, може да се поправи, време е за запояване. Този път загубих SMD девствеността си и включих 0805 компоненти във веригата. Най-малкото, първите резистори и кондензатори бяха запоени на място. Мисля, че ще се справя по-добре, ще бъде по-лесно.
За запояване използвах флюс, който купих. Запояването с него е удоволствие, сега използвам алкохолен колофон само за калайдисване.

Ето и готовите дъски. Контролната платка има място за Arduino nano, часовник, както и изходи за свързване към платката на дисплея и сензори (фоторезистор за автоматична яркост и цифров термометър ds18s20) и захранване с регулируемо изходно напрежение (за големи седемсегментни устройства) и за захранване на часовника и Arduino, на платката на дисплея има монтажни гнезда за дисплеи, гнезда за max2719 и uln2003a, решение за захранване на четири големи седемсегментни устройства и куп джъмпери.




задно табло за управление

Заден дисплей:

Ужасна smd инсталация:


Стартирайте

След запояване на всички кабели, бутони и сензори е време да включите всичко. Първото стартиране разкри няколко проблема. Последният голям индикатор не светна, а останалите светеха слабо. С първия проблем се справих чрез запояване на крака на SMD транзистора, а с втория - чрез регулиране на напрежението, произведено от lm317.
ЖИВО Е!

Часовник със седемсегментен LED индикатор на чип K145IK1911

Историята на тези часовници, появяващи се на сайта, е малко по-различна от другите диаграми на сайта.

Нормален почивен ден, отивам до пощата, ровя се и попада наш читател Федоренко Евгений изпрати схема на часовника с описание и всички снимки.

Накратко за схемата схема на електронен часовниктехен ръцезавършен на чипа K145IK1911, а времето се показва на седемсегментни светодиодни индикатори. Нека разгледаме всичко.

Диаграма на часовника:


За да увеличите снимка, просто щракнете върху нея, за да я увеличите и запазете компютъра.

Неотдавна бях изправен пред задачата или да си купя нов часовник, или сам да си сглобя нов. Изискванията към часовника бяха прости - дисплеят да показва часове и минути, да има будилник, а като устройство за показване да се използват седемсегментни LED индикатори. Не исках да трупам куп логически чипове и не исках да се занимавам с програмиране на контролери. Изборът беше направен върху развитието на съветската електронна индустрия - чип K145IK1901.

По това време не беше в магазина, но имаше аналог в 40-пинов пакет - K145IK1911. Името на щифтовете на тази микросхема не се различава от предишното, разликата е в номерирането.



Недостатъкът на тези микросхемие че работят само с вакуумни флуоресцентни индикатори. За да се осигури докинг с LED индикатора, беше необходимо да се изгради съвпадаща верига с помощта на полупроводникови ключове.

Като стринг драйвери – J1-J7 можете да използвате транзистори KT3107 с буквен индекс I, A, B. За драйвери за избор на сегменти D1-D4, KT3102I или KT3117A, KT660A, както и всякакви други с максимално напрежение колектор-емитер най-малко 35 V и ток на колектора при ще се използват поне 100 mA. Токът на индикаторните сегменти се регулира от резистори в колекторните вериги на редовите драйвери.



Точка, мигаща с честота от 1 Hz, се използва за разделяне на цифрите за час и минута.

Тази честота присъства на щифта Y4, след като времето е започнало. Тази схема също така предоставя възможност за показване на дисплея вместо часове и минути - съответно минути и секунди. Преходът към този режим се осъществява чрез натискане на бутона “Sec.” Връщането към дисплея за часове и минути се извършва след натискане на бутона „Връщане“. Този чип осигурява възможност за настройка на два будилника едновременно, но в тази схема вторият будилник не се използва като ненужен. Като излъчвател на звука се използва пиезо пищялка с вграден генератор, със захранващо напрежение 12V. Сигналът на будилника се премахва от щифт Y5 на микросхемата. За да се осигури прекъсващ звук, сигналът се модулира на честота от 1 Hz, използвана за обозначаване на втория ритъм (точка). За по-подробно проучване на функционалността на микросхемата K145IK1901 (11) можете да се обърнете към документацията, която наскоро може лесно да бъде намерена в Интернет. Микросхемата трябва да се захранва с отрицателно напрежение -27V±10%. Според проведените експерименти микросхемата остава работоспособна дори при напрежение -19V и точността на часовника изобщо не се влияе.

Диаграмата на часовника е показана на фигурата по-горе. Във веригата са използвани чип резистори със стандартен размер 1206, което позволява значително намаляване на размерите на устройството. Подходящи са всякакви седемсегментни индикатори с общ анод.

Е, това е краят на историята засега. Изразявам благодарността си на автора Евгений Федоренко и му давам имейл Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.

С динамичен дисплей. Няма оплаквания относно работата на часовника: прецизно движение, удобни настройки. Но един голям недостатък е, че LED индикаторите трудно се виждат през деня. За да реша проблема, преминах към статичен дисплей и по-ярки светодиоди. Както винаги със софтуера, много благодаря на Soir. Като цяло предлагам на вашето внимание голям външен часовник със статичен дисплей; функциите за настройки остават същите като в предишните часовници.

Имат два дисплея - основен (външен на улицата) и спомагателен на индикатори - вътрешен, на корпуса на устройството. Високата яркост се постига чрез използване на ултра-ярки светодиоди с работен ток от 50 mA и драйверни чипове.

Схема на външен електронен часовник с ярки светодиоди

За да флашнете фърмуера на контролера с файлове и да използвате следните настройки на предпазителя:

Печатни платки на часовника, блока за управление и външния модул във формат LAY, .


Характеристики на тази часовникова схема:

- 24-часов формат на показване на времето.
- Цифрова корекция на точността на хода.
- Вградено управление на основното захранване.
- Енергонезависима памет на микроконтролера.
- Има термометър, който измерва температурата в диапазона -55 - 125 градуса.
- Възможно е алтернативно показване на информация за време и температура на индикатора.


Натискането на бутона SET_TIME премества индикатора в кръг от основния режим на часовника (показващ текущото време). Във всички режими задържането на бутоните ПЛЮС/МИНУС извършва ускорена инсталация. Промените в настройките 10 секунди след последната промяна на стойността ще бъдат записани в енергонезависима памет (EEPROM) и ще бъдат прочетени от там, когато захранването се включи отново.


Друг голям плюс на предложената опция е, че яркостта се е променила, сега при слънчево време яркостта е отлична. Броят на проводниците е намален от 14 на 5. Дължината на проводника до основния (външен) дисплей е 20 метра. Доволен съм от работата на електронния часовник, той се оказа напълно функционален часовник - както през деня, така и през нощта. С уважение, Соир-Александрович.

Спомням си... Преди 30 години шест индикатора бяха едно малко съкровище. Всеки, който тогава можеше да направи часовник, използвайки TTL логика с такива индикатори, се смяташе за изтънчен експерт в своята област.

Сиянието на газоразрядните индикатори изглеждаше по-топло. След няколко минути се чудех дали тези стари лампи ще работят и исках да направя нещо с тях. Сега е много лесно да направите такъв часовник. Всичко, от което се нуждаете, е микроконтролер...

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

Цел на дизайна

Реших, че часовникът трябва да е шестцифрен, а времето да се настройва с минимален брой бутони. Освен това исках да опитам да използвам няколко от най-често срещаните семейства микроконтролери от различни производители. Възнамерявах да напиша програмата на C.

Газоразрядните индикатори изискват високо напрежение, за да работят. Но не исках да се занимавам с опасно мрежово напрежение. Часовникът трябваше да се захранва от безвредно 12 V напрежение.

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

Ето какво получих:

  • Показване на часа: HH MM SS
  • Индикация на алармата: ЧЧ ММ --
  • Режим на показване на времето: 24 часа
  • Точност ±1 секунда на ден (в зависимост от кварцовия кристал)
  • Захранващо напрежение: 12 V
  • Консумиран ток: 100 mA

Часовникова диаграма

За устройство с шестразряден цифров дисплей мултиплексният режим беше естествено решение.

Целта на повечето елементи от блоковата диаграма (Фигура 1) е ясна без коментар. До известна степен нестандартна задача беше създаването на преобразувател на TTL нива в сигнали за управление на високоволтови индикатори. Анодните драйвери са направени с помощта на високоволтови NPN и PNP транзистори. Диаграмата е заимствана от Stefan Kneller (http://www.stefankneller.de).

Чипът 74141 TTL съдържа BCD декодер и драйвер с високо напрежение за всяка цифра. Може да е трудно да поръчате един чип. (Въпреки че не знам дали някой вече ги прави). Но ако намерите газоразрядни индикатори, 74141 може да е някъде наблизо :-). По времето на TTL логиката практически нямаше алтернатива на чипа 74141. Така че опитайте се да намерите някъде.

Индикаторите изискват напрежение от около 170 V. Няма смисъл да се разработва специална схема за преобразувател на напрежение, тъй като има огромен брой чипове за усилващ преобразувател. Избрах евтиния и широко достъпен IC34063. Веригата на преобразувателя е почти напълно копирана от листа с данни MC34063. Към него е добавен само ключ за захранване T13. Вътрешният ключ не е подходящ за такова високо напрежение. Използвах дросел като индуктивност за преобразувателя. Показано е на фигура 2; диаметърът му е 8 mm, а дължината му е 10 mm.

Ефективността на преобразувателя е доста добра, а изходното напрежение е относително безопасно. При ток на натоварване от 5 mA, изходното напрежение пада до 60 V. R32 действа като резистор, чувствителен към ток.

За захранване на логиката се използва линеен регулатор U4. Във веригата и платката има място за резервна батерия. (3,6 V - NiMH или NiCd). D7 и D8 са диоди на Шотки, а резистор R37 е предназначен да ограничава тока на зареждане според характеристиките на батерията. Ако създавате часовници само за забавление, няма да имате нужда от батерия, D7, D8 и R37.

Крайната верига е показана на фигура 3.

Фигура 3.

Бутоните за настройка на времето са свързани чрез диоди. Състоянието на бутоните се проверява чрез задаване на логическа „1” на съответния изход. Като бонус функция, пиезо емитер е свързан към изхода на микроконтролера. За да затворите това неприятно скърцане, използвайте малък ключ. Чукът би бил доста подходящ за това, но това е крайна мярка :-).

Списък на компонентите на веригата, чертеж на печатна платка и схема на оформление могат да бъдат намерени в раздела „Изтегляния“.

процесор

Почти всеки микроконтролер с достатъчен брой пинове, чийто минимален брой е посочен в таблица 1, може да управлява това просто устройство.

Маса 1.
функция заключения
Хранене 2
Кварцов резонатор 2
Управление на анодите 6
Шофьор 74141 4
Въвеждане с бутон 1
Пиезо излъчвател 1
Обща сума 16

Всеки производител разработва свои собствени семейства и видове микроконтролери. Разположението на щифтовете е индивидуално за всеки тип. Опитах се да проектирам универсална платка за няколко типа микроконтролери. Платката е с 20 пинова букса. С няколко джъмпера можете да го адаптирате към различни микроконтролери.

Микроконтролерите, тествани в тази схема, са изброени по-долу. Можете да експериментирате с други видове. Предимството на схемата е възможността за използване на различни процесори. Радиолюбителите, като правило, използват едно семейство микроконтролери и имат съответния програмист и софтуерни инструменти. Възможно е да има проблеми с микроконтролери от други производители, затова ви дадох възможност да изберете процесор от любимото си семейство.

Всички специфики на включване на различни микроконтролери са отразени в таблици 2...5 и фигури 4...7.

Таблица 2.
Freescale
Тип MC68HC908QY1
Кварцов резонатор 12 MHz
Кондензатори C1, C2 22 pF
програма freescale.zip
(вижте раздела „Изтегляния“)
Настройки

Забележка: Резистор от 10 MΩ е свързан успоредно на кварцовия резонатор.

Таблица 3.
Микрочип
Тип PIC16F628A
Кварцов резонатор 32,768 kHz
Кондензатори C1, C2 22 pF
програма pic628.zip
(вижте раздела „Изтегляния“)
Настройки Вътр. 4 MHz генератор - I/O RA6,
MCLR OFF, WDT OFF, LVP OFF,
BROUT OFF, CP OFF, PWRUP OFF

Забележка: микросхемата трябва да се завърти на 180 ° в гнездото.

Таблица 4.
Atmel
Тип ATtiny2313
Кварцов резонатор 12 MHz
Кондензатори C1, C2 15 pF
програма attiny.zip
(вижте раздела „Изтегляния“)
Настройки пл. 8 MHz осцилатор, RESET ON

Забележка: Добавете SMD компоненти R и C към щифта RESET (10 kΩ и 100 nF).

Таблица 5.
Atmel
Тип AT89C2051
Кварцов резонатор 12 MHz
Кондензатори C1, C2 22 pF
програма at2051.zip
(вижте раздела „Изтегляния“)
Настройки --

Забележка: Добавете SMD компоненти R и C към щифта RESET (10 kΩ и 100 nF); свържете щифтовете, маркирани със звездички към захранващата шина +Ub чрез 3,3 kOhm SMD резистори.

Когато сравните кодовете за различни микроконтролери, ще видите, че те са много сходни. Има разлики в достъпа до портовете и дефинирането на функциите за прекъсване, както и в зависимост от хардуерните компоненти.

Изходният код се състои от два раздела. функция основен ()конфигурира портове и стартира таймер, който генерира сигнали за прекъсване. След това програмата сканира натиснатите бутони и задава подходящия час и стойности на алармата. Там, в основния контур, текущото време се сравнява с будилника и пиезо емитерът се включва.

Втората част е подпрограма за обработка на прекъсвания на таймера. Подпрограма, която се извиква на всяка милисекунда (в зависимост от възможностите на таймера) увеличава променливите за време и контролира цифрите на дисплея. Освен това се проверява състоянието на бутоните.

Изпълнение на веригата

Когато инсталирате компоненти и настройвате, започнете с източника на захранване. Запоете регулатора U4 и околните компоненти. Проверете за 5 V напрежение за U2 и 4,6 V за U1. Следващата стъпка е да сглобите преобразувателя за високо напрежение. Използвайте подстригващ резистор R36, за да зададете напрежението на 170 V. Ако обхватът на регулиране не е достатъчен, леко променете съпротивлението на резистора R33. Сега инсталирайте U2 чипа, транзисторите и резисторите на веригата на анода и цифровия драйвер. Свържете входовете U2 към шината GND и свържете един от резисторите R25 - R30 последователно към захранващата шина +Ub. Цифрите на индикатора трябва да светят на съответните позиции. На последния етап от проверката на веригата свържете щифт 19 на микросхемата U1 към земята - пиезо емитерът трябва да издаде звуков сигнал.

Ще намерите изходните кодове и компилираните програми в съответния ZIP файл в секцията „Изтегляния“. След като инсталирате програмата в микроконтролера, внимателно проверете всеки щифт в позиция U1 и инсталирайте необходимия проводник и спойка. Вижте изображенията на микроконтролера по-горе. Ако микроконтролерът е програмиран и свързан правилно, неговият генератор трябва да започне да работи. Можете да настроите часа и алармата. внимание! На дъската има място за още един бутон - това е резервен бутон за бъдещи разширения :-).

Проверете точността на честотата на генератора. Ако не е в рамките на очаквания диапазон, леко променете стойностите на кондензаторите C1 и C2. (Запоявайте малки кондензатори паралелно или ги заменете с други). Точността на часовника трябва да се подобри.

Заключение

Малките 8-битови процесори са доста подходящи за езици от високо ниво. C не е първоначално предназначен за малки микроконтролери, но за прости приложения можете да го използвате добре. Асемблерният език е по-подходящ за сложни задачи, които изискват критични времена или максимално натоварване на процесора. За повечето радиолюбители са подходящи както безплатни, така и Shareware ограничени версии на C компилатора.

Програмирането на C е еднакво за всички микроконтролери. Трябва да знаете хардуерните функции (регистри и периферни устройства) на избрания тип микроконтролер. Бъдете внимателни с битовите операции - езикът C не е подходящ за манипулиране на отделни битове, както може да се види в примера на оригинала за ATtiny.

Свърши ли? След това се включете, за да съзерцавате вакуумните тръби и да гледате...

...старите времена се върнаха... :-)

Бележка на редактора

Пълен аналог на SN74141 е микросхемата K155ID1, произведена от софтуера Minsk Integral.
Микросхемата може лесно да бъде намерена в Интернет.