Часы - будильник на микроконтроллере PIC16F628A. PIC-микроконтроллеры, где могут пригодиться радиолюбителю? Применение pic16f628a

Вот еще один образец лабораторного оборудования — LC метр. Данный режим измерения, особенно замер L практически невозможно найти в дешевых заводских мультиметрах.

Схема данного LС метра на микроконтроллере была взята с сайта www.sites.google.com/site/vk3bhr/home/index2-html. Прибор построен на PIC микроконтроллере 16F628A, и так как я недавно приобрел программатор PIC, я решил испытать его это с помощью этого проекта.

Я убрал регулятор 7805, так как решил использовать зарядное устройство на 5 вольт от сотового телефона.

В схеме подстроичный резистор на 5 кОм, но на самом деле я поставил 10 кОм, согласно datasheet на приобретенный LCD модуль.
Все три конденсаторы 10 мкФ танталовые. Необходимо заметить что конденсатор C7 – 100мкФ на самом деле 1000мкФ.
Два конденсатора по 1000пФ конденсаторы styroflex с допустимым отклонением в 1%, индуктивная катушка 82мкГн.

Общий ток потребления с подсветкой составляет около 30мА.
Резистор R11 ограничивает ток подсветки и должен быть рассчитан в соответствии с фактически используемым LCD-модулем.

Я использовал оригинальный рисунок печатной платы в качестве отправной точки и изменил его под имеющиеся у меня компоненты.
Вот результат:




Последние две фотографии показывают LC метр в действии. На первом из них измерение емкости конденсатора 1нФ с отклонением 1%, а на втором — индуктивность 22мкГн с отклонением в 10%. Устройство очень чувствительно – то есть, с неподключенным конденсатором он показывает емкость порядка 3-5 пФ, но это устраняется путем калибровки.


Этот вариант часов сделан таким образом, чтобы максимально упростить схему, снизить энергопотребление, и в итоге получить прибор, который легко помещается в кармане. Выбрав миниатюрные аккумуляторы для питания схемы, SMD - монтаж и миниатюрный динамик (например от нерабочего мобильного телефона), Вы можете получить конструкцию, размером чуть больше спичечного коробка.
Применение сверхъяркого индикатора позволяет снизить ток, потребляемый схемой. Снижение тока потребления также достигается в режиме "LoFF" - индикатор погашен, при этом включена только мигающая точка младшего разряда часов.

Индикация
Регулируемая яркость индикаторов позволяет выбрать наиболее комфортное отображение показаний (и опять же снизить энергопотребление).
В часах реализовано 9 режимов индикации. Переход по режимам осуществляется с помощью кнопок "плюс" и "минус". Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки - одна секунда. Применение кратковременных подсказок позволило достичь хорошей эргономичности часов. При переходах по режимам отображения (которых получилось достаточно много, для такого простого прибора, как обычные часы) не возникает путаницы, и всегда понятно, какие именно показания выведены на индикатор.


Коррекция показаний, выведенных на индикатор включается при нажатии на кнопку "Коррекция". При этом кратковременная подсказка выводится на 1/4 секунды, после чего корректируемое значение начинает мигать с частотой 2 Гц. Корректируются показания кнопками "плюс" и "минус". При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Частоты автоповтора нажатия кнопки составляют: для часов, месяцев и дня недели - 4 Гц; для минут, года и яркости индикатора - 10 Гц; для корректирующего значения - 100 Гц.
Все откорректированные значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения - включении питания. Секунды при коррекции обнуляются. Из всех режимов, кроме часы-минуты, минуты-секунды и LoFF организован автоматический возврат. Если в течение 10 секунд ни одна из кнопок не нажата, то часы переходят в режим отображения часов - минут.
Нажатием на кнопку "Вкл/Выкл буд." включается/выключается будильник. Включение будильника подтверждается коротким двухтональным звуком. При включенном будильнике светится точка в младшем разряде индикатора.
В режиме "Corr" на индикатор выведена корректирующая константа, начальное значение которой 5000 микросекунд в секунду. При отставании часов константу увеличиваем на величину отставания, вычисленное в микросекундах за одну секунду. Если часы спешат, то константу уменьшаем по тому же принципу.

Наименование модели: PIC16F628A-I/P

Подробное описание

Производитель: Microchip

Описание: 8- бит микроконтроллеры (MCU) 3.5 Кб 224 RAM 16 I/O

Краткое содержание документа:
PIC16F627A/628A/648A Data Sheet
Flash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology
© 2009 Microchip Technology Inc.
DS40044G
Note the following details of the code protection feature on Microchip devices: · · · Microchip products meet the specification contained in their particular Microchip Data Sheet.

Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip"s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. Microchip is willing to work with the customer who is concerned about the integrity of their code. Neither Microchip nor any other semiconductor manufacturer can g

Спецификации:

  • Supply Voltage - Max: 5.5 В
  • Supply Voltage - Min: 3 В
  • Вид монтажа: Through Hole
  • Встроенный в чип АЦП: нет
  • Высота: 3.3 мм
  • Длина: 22.86 мм
  • Интерфейс: USART
  • Количество линий ввода/вывода: 16
  • Количество таймеров: 3
  • Рабочее напряжение питания: 3 В... 5.5 В
  • Рабочий диапазон температрур: - 40 C ... + 85 C
  • Размер ОЗУ: 224 B
  • Размер ПЗУ данных: 128 B
  • Размер памяти программ: 3.5 Кб
  • Серия процессора: PIC16
  • Тактовая частота максимальная: 20 МГц
  • Тип корпуса: PDIP-18
  • Тип памяти программ: Flash
  • Упаковка: Tube
  • Шина данных: 8 бит
  • Ширина: 6.35 мм
  • Ядро: PIC16
  • RoHS: да

Варианты написания:

PIC16F628AI/P, PIC16F628A I/P

Микропроцессор PIC, Ядро 8bit, 3.5K-Flash 224B-SRAM 128B-EPROM, 20MHz, 3.0V…5.5V, -40°C…85°CМикроконтроллеры PIC (Peripheral Interface Controller) - это программируемые ППЗУ, имеют малое энергопотребление,...

Среди множества семейств микроконтроллеров от разных производителей радиолюбители полюбили два – AVR и PIC. Микроконтроллеры PIC производятся компанией Microchip.

Энтузиастами и любителями в области электроники часто используются как для сборки готовых проектов, так и для разработки своих малых автоматизированных систем. Для примера многие встраиваемые вольт-амперметры из Китая построены на базе PIC-контроллеров.

Виды микроконтроллеров PIC и их архитектура

Пожалуй, среди начинающих очень распространены микроконтроллеры пик младших моделей, а именно семейств:

  • Pic10;
  • Pic12;
  • Pic16.

Эти микроконтроллеры 8-битные, при этом различают две архитектуры:

  1. Baseline с 10-битными инcтрукциями с 35-ю ассемблерными командами.
  2. Mid-range с 14-битными инструкциями и 35 или 49 команд на языке ассемблера в зависимости от конкретной модели.

В разработках радиолюбителей очень часто встречается модель 16f628. Конфигурация этого pic-микроконтроллера следующая, в нём есть:

  • встроенный тактовый генератор может быть настроен на частоту 4 или 8 МГц;
  • 18 ножек – портов, из которых 16 может использоваться для ввода-вывода данных, 2 задействованы под питание;
  • возможность использовать кварцевый резонатор для работы на тактовых частотах до 20 МГц (тогда задействуют еще 2 ноги для него);
  • буква F в маркировке говорит о памяти типа Flash, объёмом на 2048 слов;
  • гарвардская архитектура, с 14-битными инструкциями, всего их 35 штук;
  • длина машинного цикла 4 такта (1 действие выполняется за 4 такта кварцевого резонатор или внутреннего генератора);
  • 224 байта ОЗУ;
  • 128 байт EEPROM;
  • USART – последовательный порт;
  • внутренний источник опорного напряжения;
  • питается от 3.3 до 5 В.

PIC16 имеют низкую цену и достаточно развитую аналоговую периферию, что и обеспечивает их популярность. При этом модели могут выпускаться в корпусах с количеством ножек от 18 до 40. Это позволяет делать более сложные системы, чем возможно на вышеприведенном примере.

Существуют и более мощные модели, например, 16-битные:

  1. PIC24x
  2. DsPIC30/33F – для цифровой обработки сигналов.

Они способны выполнять 16 MIPS (миллионов итераций в секунду), что обеспечивает весьма высокое быстродействие вашей системы при 2 при двухтактном машинном цикле, такая скорость обеспечивается частотой в 32 МГц. 40 MIPS достигается при 80 МГц соответственно.

32-битные микроконтроллеры PIC32MX имеют большую производительность и превосходящий объём памяти, если сравнивать с 16-битными моделями, и работают на частоте в 80 МГц.

Сфера применения PIC-микроконтроллеров

Как уже было сказано, семейство PIC16 очень любят радиолюбители. К тому же оно хорошо описано в большом количестве литературы. По количеству учебников с семейством PIC, на момент написания статьи, может посоревноваться только семейство AVR.

Давайте рассмотрим несколько схем с применением микроконтроллеров семейства PIC.

Таймер для управления нагрузкой на PIC16f628

Простейшая автоматика на микроконтроллерах PIC – это стихия 8-битного семейства. Их объём памяти не позволяет делать сложных систем, но отлично подходит для самостоятельного выполнения пары поставленных задач. Так и эта схема трёхканального таймера на Pic16f628, поможет вам управлять нагрузкой любой мощности. Мощность нагрузки зависит только от установленного реле/пускателя/контактора и пропускной способности электросети.

Настраивается прибор с помощью набора из 4-х кнопок SB1-SB4, на HG1 выводятся параметры, это дисплей типа LCD на 2 строки по 16 символов. В схеме используется внешний кварцевый резонатор на 4 МГц, а KV1 – это реле, с питанием катушки в 24 В, вы можете использовать любое реле, лишь бы оно подходило по напряжению катушки к вашему БП. МК питается от 5 В стабилизированного источника.

Вы можете использовать от 1 до 3 каналов в управлении нагрузкой, стоит только продублировать схему, добавив реле к выводам RA3, RA4 микроконтроллера.

Часы-будильник на МК PIC16f628A

Такие часы, согласно заявлениям разработчика, получились весьма точными, их погрешность весьма мала – порядка 30 секунд в год.

С незначительными переделками вы можете использовать любые 7-мисегментные индикаторы. Питаются от блока питания на 5В, при этом, при отключении от сети продолжают работать от батареек, что вы можете увидеть в правом верхнем углу схемы.

Регулятор мощности паяльника на PIC16f628A

У начинающих радиолюбителей не всегда есть возможность купить паяльную станцию. Но они могут собрать её сами. На схеме ниже представлен регулируемый блок питания на PIC16f628, для работы паяльника. В основу схемы вложено фазоимпульсное управление. Это, по сути, доработанный и осовремененный аналог классического тиристорного регулятора, но с микроконтроллерным управлением.

Схема довольно простая, в нижней части реализация светодиодной индикации. Главный силовой элемент – тиристор BT139, а MOC3041 – нужен для гальванической развязки МК от сети и управления тиристором с помощью логического уровня в 5 В.

Как прошивать микроконтроллер? С чего начать изучение?

Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.

Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) – статья с подробным описанием схемы запоминающего термометра и, вдобавок, - логическое продолжение ранее опубликованной мною статьи на яндекс сайте pichobbi.narod.ru. Этот термометр довольно неплохо себя зарекомендовал, и было принято решение немного его модернизировать. В этой статье расскажу, какие изменения внесены в схему и рабочую программу, опишу новые функции. Статья будет полезна новичкам. Позже переделал текущую версию термометра в .

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) умеет:

  • измерять и отображать температуру в диапазоне:
    -55...-10 и +100...+125 с точностью 1 градус(ds18b20 и ds18s20)
    -в диапазоне -9,9...+99,9 с точностью 0,1 градус(ds18b20)
    -в диапазоне -9,5...+99,5 с точностью 0,5 градус(ds18s20);
  • Автоматически определять датчик DS18B20 или DS18S20;
  • Автоматически проверять датчик на аварию;
  • Запоминать максимальную и минимальную измеренные температуры.

Также в термометре предусмотрена легкая замена 7 сегментного индикатора с ОК на индикатор с ОА. Организована щадящая процедура записи в EEPROM память микроконтроллера. Вольтметр, который неплохо себя зарекомендовал, описан в этой статье - .

Принципиальная схема цифрового термометра на микроконтроллере разрабатывалась для надежного и длительного использования. Все детали, применяющиеся в схеме, не дефицитные. Схема проста в повторении, отлично подойдет для начинающих.

Принципиальная схема термометра показана на рисунке 1

Рисунок 1 - Принципиальная схема термометра на PIC16F628A + ds18b20/ds18s20

Описывать всю принципиальную схему термометра не стану, так как она довольно проста, остановлюсь только на особенностях.

В качестве микроконтроллера применяется PIC16F628A фирмы Microchip. Это недорогой контроллер и к тому же не дефицитный.

Для измерения температуры используются цифровые датчики DS18B20 или DS18S20 фирмы Maxim. Эти датчики не дорогие, малые по размеру и информация о измеренной температуре передается в цифровом виде. Такое решение позволяет, не тревожиться о сечении проводов, о их длине и прочем. Датчики DS18B20, DS18S20 способны работать в диапазоне температур от -55… +125 °С.

Температура выводится на 7-ми сегментный 3-х разрядный LED индикатор с общим катодом (ОК) или с (ОА).

Для вывода на индикатор максимальной и минимальной измеренных температур нужна кнопка SB1. Для сброса памяти так же нужна кнопка SB1

Кнопкой SA1 можно оперативно переключать датчики(улица, дом).

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.

В таблице 1 можно ознакомиться со всем перечнем деталей и возможной их заменой на аналог.

Таблица 1 – Перечень деталей для сборки термометра
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический - 0,1мкФх50В -
С3 Конденсатор электролитический - 220мкФх10В
DD1 Микроконтроллер PIC16F628A PIC16F648A
DD2,DD3 Датчик температуры DS18B20 или DS18S20
GB1 Три пальчиковых батарейки 1,5В
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1,R3,R14,R15 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R2,R16 Резистор 0,125Вт 5,1 кОм SMD типоразмер 0805
R4,R13 Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R17-R19 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
SA1 Любой подходящий переключатель
SB1 Кнопка тактовая
VT1-VT3 Транзистор BC556B для индикатора с ОК/ транзистор BC546B для индикатора с ОА KT3107/КТ3102
XT1 Клеммник на 3 контакта.

Для первоначальной отладки работы цифрового термометра применялась виртуальная модель, построенная в протеусе. На рисунке 2 можно увидеть упрощенную модель в протеусе

Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e

На рисунке 3-4 показана печатная плата цифрового термометра

Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.

Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.

Термометр, собранный рабочих деталей начинает работать сразу и в отладке не нуждается.

Результат работы рисунки 5-7.

Рисунок 5 - Внешний вид термометра

Рисунок 6 - Внешний вид термометра

Рисунок 7 - Внешний вид термометра

ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.

Поправки, внесенные в рабочую программу:

1 автоматическое определение датчика DS18B20 или DS18S20;

2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.

3. увеличена частота мерцания точки;

Более подробное описание работы термометра можно посмотреть в документе, который можно скачать в конце этой статьи. Если скачивать нет желания, то на сайте www.pichobbi.narod.ru также отлично расписана работа устройства.

Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).

Рисунок 8 – Вся начинка в китайском будильнике

Рисунок 9 - Вся начинка в китайском будильнике

Видео - Работа термометра на PIC16F628A

Поделиться: