Простые электронные часы на PIC16F628A. Часы - будильник на микроконтроллере PIC16F628A Электронные часы на pic
Настольные и настенные часы с термометрами выполнены в корпусах от стрелочных часов. Часы и термометр изготовлены как отдельные, самостоятельные устройства.
Термометр описывать не буду, он выложен на этом же сайте термометр на PIC16F628A и FYD5622FS-11 . Схема, печатная плата и прошивка там есть, все без изменений.
Датчик температуры DS18B20 настольных часов выведен за окно на улицу. Провода изолированные 0,35мм, длиной примерно 10 метров
Часы собраны на одинарных 7-ми сегментных светодиодных индикаторах зеленого цвета. Размер цифры 14х25,4мм – хорошо различимы с любого уголка комнаты. Обратите внимание, что индикатор подключен без гасящих резисторов. Это связано с тем, что каждый сегмент состоит из двух соединенных последовательно светодиодов и номинальное напряжение 3,8 вольта. При динамической индикации токи не превышают допустимые.
Стабилизатор напряжения находится в вилке – адаптере. Он собран на 3 ваттном трансформаторе и высокочастотном преобразователе – стабилизаторе LM2575T-5.0 по стандартной схеме. Микросхема без радиатора, практически не греется. Разъём для блока питания 3,5мм. Кварц 4 МГц.
Транзисторы n-p-n любые маломощные. Кнопки 6×6 H=14/10мм припаяны со стороны проводников. Длина толкателя кнопок выбирается исходя из требований конструкции. При каждом нажатии на кнопку добавляется единичка. При удержании – счет ускоряется до разумной скорости.
Резисторы МЛТ – 0,25. R3 – R6 1-3 кОм.
Аккумуляторы: 4 штуки из GP- 170, или подобные. При отключении сетевого напряжения они питают только микроконтроллер. Диоды желательно подобрать с наименьшим падением напряжения в прямом направлении.
Платы изготовлены из одностороннего фольгированного стеклотекстолита.
НЕХ файл, схема, печатки в папке №1.
Вариант 2: на одной плате
В этот корпус не помещались две платы: часов и термометра. Уменьшать размеры индикатора часов не хотелось.
Отображать время и температуру одним индикатором по очереди в настольных часах мне не нравится.
Пришлось взять для термометра другой индикатор меньшего размера и нарисовать новую печатную плату. Поэтому схема и прошивка для термометра другие.
НЕХ файл и схема термометра в папке № 2. Печатная плата там же.
Схема часов без всяких изменений взята из первого раздела.
Эти электронные часы простейшие. Собраны были за несколько часов. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от сети, а также имеет резервное питание. Данную конструкцию можно рекомендовать начинающим, я специально снабдил исходную программу подробными комментариями, чтобы легче было понять, что и как тут работает.
схема часов:
Схема очень простая, простой и алгоритм их работы (см.коментарии в исходнике). Кнопки кн1 и кн2 служат для коррекции времени - часов и минут соответственно. Часы имеют 24 часовой формат отображения. В 1-м разряде часов сделано гашение незначащего нуля. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе - часы идут весьма точно.
Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов - они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптер, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.
Программа написана таким образом, что ее можно использовать для начального изучения микроконтроллера PIC, прокомментировано действие практически каждой команды. При желании в нее легко можно добавить дополнительные функции, например календарь, таймер, секундомер и др.
Часы на PIC16F628A и датчике температуры DS18B20.
4-х сегментный светодиодный индикатор.
Анимированная смена индикации.
Вариант простых часов на популярном и доступном микроконтроллере PIC16F628A. Фактически c них начинался проект на AVR .
Описание часов.
1. Функции.
– часы, формат отображения времени 24-х часовый, часы:минуты.
– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек. Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.
– термометр.
– индикация. Поочередная.
– настраиваемая анимация смены показаний.
– использование энергонезависимой памяти микроконтроллера для сохранения настроек при отключении питания.
– если в основном режиме нажать на кнопку PLUS , то на индикаторы выводится время, если нажать на MINUS – температура. При отпускании кнопок возобновляется автоматическая смена показаний.
2. Настройка.
2.1. При включении питания часы в основном режиме.
2.2. Нажатием на кнопку SET производится вход в режим настроек и выбора параметра для установки. По-очереди доступны для установки:
– минуты;
– часы;
– секунды (обнуляются при нажатии на кнопки PLUS или MINUS );
– величина коррекции. В старшем разряде символ " с ";
– время индикации текущего времени. В старших разрядах символы " tc ". Диапазон установки 0÷99 сек. Если установлен 0, то время отображаться не будет;
– время индикации температуры. В старших разрядах символы " tt ". Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;
– выбор эффекта анимации. В старших разрядах символы " EF ". Если установлен 0, смена информации будет проводиться без эффектов , если выбран автоматический режим (символ А ), то будет производиться поочередная смена эффектов. Если выбран режим r , то смена эффектов будет производиться случайным образом.
– выбор скорости анимации. В старшем разряде символ " P ". Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.
2.3. Устанавливаемый параметр мигает.
2.4. Удержанием кнопок PLUS / MINUS производится ускоренная установка параметра.
3. Примечания.
Необходимо соизмерять скорость анимации и время отображения информации. Если выбрана медленная анимация и малое время отображения, то может оказаться, что информация не успевает полностью обновиться до очередной смены.
При отключении основного питания (+12 V ) индикация отключается, часы продолжают идти. Питание МК осуществляется от резервного источника.
В архиве прошивки для индикаторов с общим катодом и анодом, проект в Proteus и описание.
Вопросы, пожелания в форум .
11.03.2015
Добавлена обновленная прошивка для индикатора с общим катодом. В новой прошивке больше эффектов анимации и небольшие изменения в алгоритме. Подробное описание в архиве.
Эти электронные часы простейшие. Собраны были за несколько часов. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от сети, а также имеет резервное питание. Данную конструкцию можно рекомендовать начинающим, я специально снабдил исходную программу подробными коментариями, чтобы легче было поять, что и как тут работает.
Схема очень простая, простой и алгоритм их работы (см.коментарии в исходнике). Кнопки кн1 и кн2 служат для коррекции времени - часов и минут соответственно. Часы имеют 24 часовой формат отображения. В 1-м разряде часов сделано гашение незначащего нуля. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе - часы идут весьма точно.
Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов - они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптор, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.
Программа написана таким образом, что ее можно использовать для начального изучения микроконтроллера PIC, прокоментировано действие практически каждой команды. При желании в нее легко можно добавить дополнительные функции, например календарь, таймер, секундометр и др.
|
Предлагаю для самостоятельной сборки две очень простые схемы, а именно часы на микроконтроллере PIC и AVR. Основа одной схемы микроконтроллер AVR Attiny2313, а другой PIC16F628A
Эти схемы часов на микроконтроллере очень помогут начинающим радиолюбителям разобраться с вопросами работы и программирования микроконтроллеров.
Рассмотрим подробней эту простую схему: Питание можно подавать как от трех пальчиковых батареек, так и от
Микроконтроллер Attiny2313 тактируется кварцем на 16 МГц. В качестве счетчика времени, в внутренней схеме микроконтроллера используется 16 битный таймер с делителем на 256. Как только внутренний счетчик досчитает до 625, осуществится прерывание. Поэтому у нас будут происходить прерывания 100 раз в секунду.
Временной интервал учитывается в глобальных переменных, и при каждом прерывании требуется увеличить значение миллисекунд на единицу. Как только число миллисекунд дойдет до 100, то требуется увеличить на единицу величину секунд, а миллисекунды обнулить. И так далее в соответствии с тем же алгоритмом до десятков часов, которые сбрасываются только по достижении значения 24 и уже без увеличения следующего разряда.
В соответствии с этим принципом, создаем значение текущего времени записанное в глобальных переменных. Теперь нам необходимо визуально отобразить эти данные. Так как микроконтроллер имеет ограниченное число портов, то воспользуемся такой особенностью как инерционность цифрового сегментного индикатора sa15-11gwa. Катоды его индикаторов соединены параллельно, а аноды имеют раздельное управление, что позволяет в любой момент времени вывести цифру на любой из четырех индикаторов.
Быстро переключая порт микроконтроллера, к которому подсоединены все катоды и быстро коммутируя аноды, создается иллюзия отображения всех четырех цифр в сегментном индикаторе, хотя фактически работает только один из сегментов. Если текущее время 11:57, то сначала выводим цифру один на первый индикатор часов, через 1 мс выводим цифру 1 на второй индикатор еще через 1 мс отображаем 5 на 3 индикатор, спустя 1 мс отображаем 7 на 4 индикаторе и так далее циклически, обновляя каждый индикатор через 1 мс.
Состояние кнопок управления часами опрашиваются по завершению каждого цикла отображения около 40 раз в секунду.
Рисунок печатной платы выполненный в программе и прошивку для микроконтроллера скачиваем по ссылке выше. и непосредственно о тонкостях прошивки, читаем здесь.
Эта конструкция хоть и на другом типе микроконтроллера, но не менее сложная чем предыдущая схема.
Алгоритм работы прошивки также простой в архиве имеются очень подробные комментарии по коду программы. Два тумблера кн1 и кн2 предназначены для коррекции времени - часов и минут. Точность часов зависит от частоты используемого кварца.
Конструктивно часы выполнены на двух печатных платах, располагающихся рядом под углом 90 градусов. На первой плате расположен индикатор, а вся остальная электроника на второй. Резервное питание в роли которых используется три батарейки размещенные в держателе из старой китайской зажигалки со светодиодом. Для питания от сети переменного тока подойдет любой на 5В и током 150мА.
В архиве который вы можете скачать по зеленой ссылке находится разводка обоих печатных плат в программе Sprint Layout и прошивка на микроконтроллер PIC с исходным кодом программы под MP_LAB IDE, с подробными комментариями.
И саму программу, можно также найти и у нас
В этой конструкции имеетя цифровая коррекция точности хода, а также встроенный термометр, который поочередно с точным временем выводит показания температуры на светодиодный диплей. В конструкции часов применяется энергонезависимая память микроконтроллера, сохроняющая уставки и настройки даже при пропадании внешнего питания.
В управление анодами светодиодных индикаторов, используются транзисторные ключи по стандартной схеме включения.
При первом включении на дисплее возникает рекламная заставка в течении одной секунды. Потом осуществляется отображение времени. Нажатие на кнопку SET_TIME переключает индикатор по кругу из основного режима часов:
Абсолютно, во всех ячейках удержанием кнопок PLUS/MINUS осуществляется ускоренная установка. Если настройки изменялись пользователем, то через 10 секунд новые значения сохраняться в энергонезависимой память микроконтроллера и будут считываться. при прошивки МК выставляем следующим образом:
Внешнее исполнение устройства, вы можете оценить по фотографиям ниже, прощивка и дополнительные файлы к конструкции можно скачать по сылке чуть выше.
В прошивки будильника реализованы графики смен: 4/5 (четыре на пятый) – 4 дня по 1 сменам, 1 выходной, 4 дня по 2 сменам, 1 выходной, 4 дня по ночным, 1 выходной; – день, ночь, 2 выходных; По будням – Пн-Пт - рабочие дни, Сб-Вс - Выходной; (Праздничные дни не учитываются); Ежедневно.
Пользователь сам выбирает тип граффика будильника и задает любое время срабатывания. В вариантах 4/5 и день, ночь, 2 выходных – необходимо дополнительно выбрать текущую смену.
Кроме того в прошивке МК реализованы следующие функции: Переход на летний-зимний период; Корректировка времени; Ускоряющийся сигнал будильника; Отображение нуля в разряде часов и в разряде даты
Схема часов построена на базе часовой микросхемы DS1307 и микроконтроллера MEGA8. Схема (помещена в архив с прошивкой МК и чертежами печатных плат) рассчитана на применение семисегментных цифровых индикаторов с общим анодом на напряжение 5В. (ВНИМАНИЕ! На схеме для упрощения не нарисованы балластные резисторы. Их требуется устанавить на каждый сегмент индикаторов. Всего 112 шт. Номинал рассчитывается согласно документации. В я использовал сегментные индикаторы типа fys15011 и fyd-5622. Если примените более мощные, то скорей всего без дополнительных транзисторных ключей не обойтись.
Чертеж печатной платы разрабатывалась под уже имеющуюся коробку от старых сломанных часов. На разъём Alarm (будильник) можно подсоединить маломощную нагрузку, допустим музыкальную открытку, а джампером JP1 – отсоединяем внутренний биппер. Микроконтроллер можно прошиватьь сразу на плате, что существенно облегчает настройку в случае модификации конструкции.
Настройка часов
Для этого необходимо войти в режим задания параметров:
Параметр-Значение- Сохранять в памяти
P.01 - ЧАСЫ [-]
P.02 - МИНУТЫ [-]
P.03 - ДЕНЬ [-]
P.04 - МЕСЯЦ [-]
P.05 - ГОД [-]
Р.06 - Тип будильника [+] (1-4/5; 2-5/8; 3-ЖД график; 4-ежедневно)
P.07 - СМЕНА [+]
P.08 - Буд.1.ЧЧ [+]
P.09 - Буд.1.ММ [+]
P.10 - Буд.2.ЧЧ [+]
P.11 - Буд.2.ММ [+]
P.12 - Буд.3.ЧЧ [+]
P.13 - Буд.3.ММ [+]
P.14 - Корректировка (Д.Ч) [+]
P.15 - Летний/зимний период [+]
P.16 - Ускоряющийся бипер [+]
P.17 - Отображать незначащий ноль в разряде часов [+]
P.18 - Отображать незначащий ноль в разряде даты [+]
Настройка Будильника:
Кнопкой Вкл/Вкл Буд. - осуществляется Вкл/Вкл, при этом:При типе будильника 1:
Буд.1 - 1 смена; Буд.2 - смена; Буд.3 - 3 смена;
График смен:1,2,3,4 - первая смена; 5 - выходной; 6,7,8,9 - вторая смена; 10 - выходной; 11,12,13,14 - 3 смена; 15,16 - выходной; Затем дни повторяются.
При первом типе будильника 2: Буд.1 - задает время сигнала; Буд.2, Буд.3 - не срабатывает; График смен: По будням.
При третьем типе будильника: Буд.1 - устанавливается время день; Буд.2 - задает время ночь; Буд.3 - не срабатывает;
График смен: – день, ночь, 2 выходных;. При типе будильника 4 Буд.1, Буд.2, Буд.3- задается время; Если планируете использовать только один будильник - задайте время трех одинаковым.
При графике смен: Ежедневно. Если нажать кнопки Выкл.Буд. в режиме задания параметров - произойдет выход из настроек без сохранения.
Корректировка:
При корректировки применяется следующий способ: +/- Ч.Д, где: Ч - количество секунд корректируемое в час (max 9). Д - секунды корректируемое в день. ВНИМАНИЕ! При выключенном питании корректировка не осуществляется. При включении - проверьте правильность времени.