LC метр на микроконтроллере PIC16F628A. Схема и описание


Эти электронные часы простейшие. Собраны были за несколько часов. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от сети, а также имеет резервное питание. Данную конструкцию можно рекомендовать начинающим, я специально снабдил исходную программу подробными коментариями, чтобы легче было поять, что и как тут работает.

Схема очень простая, простой и алгоритм их работы (см.коментарии в исходнике). Кнопки кн1 и кн2 служат для коррекции времени - часов и минут соответственно. Часы имеют 24 часовой формат отображения. В 1-м разряде часов сделано гашение незначащего нуля. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе - часы идут весьма точно.

Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов - они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптор, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.

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



Файл:
Размер:
Содержимое:

Данное устройство представляет из себя обычные электронные часы с будильником, но управляются они с пульта дистанционного управления на ИК лучах. Часы реализованы программно, индикация динамическая. В схеме предусмотрено резервное питание, на случай отключения эл.энергии. Будильник реализован на простой "пищалке" с встроенным генератором - buzzer.

Пульт управления реализован на микроконтроллере PIC12F629. Питается пульт от обычной батарейки для материнской платы компьютеров. Если не нажата ниодна из кнопок - микроконтроллер находится в режиме SLEEP и практически не потребляет тока. Как только кнопка нажата - микроконтроллер "просыпается" и формирует кодовую посылку на ИК светодиод.


При включении питания на дислей выводится текущее время, двоеточие мигает. Если нажать кнопку CLOCK диплей покажет время на которое установлен будильник (двоеточие не мигает), либо --:-- , если будильник выключен. Повторное нажатие на кнопку CLOCK, или через 6 секунд - девайс будет опять отображать текущее время. Нажатие кнопки COR переводит устройство в режим коррекции часов, если в данный момент индицируются часы; либо в режим установки будильника, если на дисплее отображается будильник. Первое нажатие - мигают часы, кнопкой +1 устанавливаются часы, второе нажатие кнопки COR - мигают минуты - кнопкой +1 устанавливаются минуты, третье нажатие - выход из режима коррекции часов (или будильника). Если корректируется время будильника - то он автоматически включается.

Когда дисплей индицирует время установки будильника (включается кнопкой CLOCK) - нажатие кнопки +1 включает, а повторное нажатие выключает будильник, дисплей, соответственно, показывает время установки будильника или --:-- (двоеточие не мигает). Если будильник выключен, то время его установки не сбрасывается.

В режиме индикации часов (двоеточие мигает) - нажатие кнопки +1 - переводит часы в "ночной" режим - в этом режиме индикатор полностью гаснет и мигает только двоеточие, что снижает энергопотребление и не создает лишней ночной подсветки. При этом нажатие любой кнопки на пульте, а также срабатывание - выводит часы из ночного режима.

Если сработал будильник - звучит звуковой сигнал в течение одной минуты, все цифры на дислее мигают. Нажатие любой кнопки на пульте управления выключают будильник (не сбрасывая времени его установки).

Для резервного питания часов, также как и в пульте управления, использована батарейка от материнской платы компьютера. Ее напряжение 3V, поэтому микроконтроллер в часах нужно применить низковольтный - PIC16LF628A. Если же применить батарейку с напряжением более 3,6V то подойдет и обычный PIC16F628A. Ну и совсем идеальный вариант - применить микроконтроллер с технолигией NANOWATT - PIC16F819 (Внимание! для этого микроконтроллера используется другая прошивка).

Вот еще один образец лабораторного оборудования — 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 пФ, но это устраняется путем калибровки.

Описание оригинальной схемы.

Доработка устройства для постановки с снятия сигнализации при помощи ключа — Touch Memory

ОПИСАНИЕ УСТРОЙСТВА

Устройство предназначено для охраны и наблюдения за удаленными объектами. Собрано оно на микроконтроллере PIC16F628A, который отсчитывает необходимые интервалы времени и управляет мобильным телефоном посредством AT команд. Кроме этого, есть функция дозвона до телефонных номеров из списка (не более 3), записанных в EEPROM PIC’a и возможность отправлять SMS. Устройство очень простое в изготовлении и налаживании.
Конструкция не является собственной разработкой — схема, прошивка и программа конфигурирования были взяты из Интернета.

Работает устройство следующим образом: после включения питания проверяется уровень на RA5. Если переключатель «запись конфигурации» замкнут, микроконтроллер переходит в режим установки параметров и ждет прихода информации с ПК.

В случае работы с телефоном, будет произведена инициализация телефона (команды ATE0, AT+CMGF=0, AT+CNMI=1,1,0,0,1) и после временной задержки (конфигурируется) устройство перейдет в дежурный режим — будет контролировать логические уровни на «Вход1» — «Вход4». В случае если они не совпадают с записанными ранее в EEPROM значениями, может быть произведена отправка SMS, дозвон, включение внешних сигнальных устройств (сирена, свет и т. д.). После этого в течение времени, определённого параметром «время восстановления», микроконтроллер не будет реагировать на изменение состояния датчика. Это время может быть установлено в пределах от 10 сек. до 2540 сек. (около 40 мин). Кроме этого, есть возможность настраивать временные задержки: перед процедурой дозвона и отправкой SMS, включением сигналов 1 и 2 (0-255 с).

Автор оригинальной схемы заложил возможность определения в любой момент состояние всех четырех датчиков. Для этого отправляется сообщение с текстом «stat» на номер SIM карты мобильного телефона используемого в составе GSM сигнализации. На практике у меня такого не получилось. Для сброса устройства, возможно, использовать в SMS текст «rst».

Для отображения режима работы служат светодиоды LED1 и LED2. При работе в режиме охраны (основной режим) светодиод D2 мигает с частотой один раз в 4 сек. Оба горящих светодиода обозначают готовность к записи конфигурации с компьютера. Оба немигающих светодиода означают повреждение данных в EEPROM (неверная конфигурация устройства). Вспышки светодиода LED2 с периодом в 0,5 сек говорят о попытке передачи AT команд после включения для конфигурирования мобильного телефона. Мигающий светодиод LED1 говорит о том, что после подачи питания ещё не прошло установленное время. LED2 горит непрерывно при взаимодействии контроллера с телефоном (попытка дозвона и отправка SMS).

В оригинальной схеме стабилитроны D3-D6 защищают входы микросхемы от превышения допустимого уровня напряжения. Ввиду особенностей выводов микроконтроллера, я не стал следовать авторской схеме, применив делители на резисторах.

Как для связи с телефоном, так и для связи с компьютером при установке параметров, служат линии «data rx»(7 вывод PIC) и «data tx” (8 вывод PIC). Скорость порта составляет 19200 бит/с. Напряжение питания микроконтроллера составляет номинальное напряжения питания мобильного телефона (до 4В). В принципе, в нескольких проверенных автором экземплярах устройство нормально работало даже от двух разряженных NiCd аккумуляторов (напряжение около 2В). Схемы разъемов для мобильных телефонов можно найти, например, на сайте www.pinouts.ru. В качестве примера приведем распиновку разъема для телефона Siemens S35, с которым и работает это устройство. Нам нужны только три контакта — (GND) соединяется с «-» источника питания, (DATA OUT) — подключается к «GSM TX» устройства, (DATA IN) к » GSM RX». Возможно возникновение некой путаницы в понятиях «RT, TX”. Если подключение не удаётся, рекомендую взаимно заменить линии RT, TX, это совсем не страшно.

Я подключал эти линии к мобильному телефону через резистор номиналом 1КОм. В некоторых моделях телефонов, работающий по умолчанию через USB, необходимо дополнительно замкнуть некий вывод разъема для перевода интерфейса в режим работы через СОМ-порт. Для подключения к компьютеру необходим преобразователь уровней RS-232 в TTL. Я исконно использую 2 элементарных КТ315 для этих целей, хотя можно, применить микросхему MAX232 или аналогичные. Печатную плату я не сооружал, ввиду элементарности схемы, все компоненты разместил на монтажной плате, соединения с оборотной стороны обычными проводами.

На разъём «Input» подключается: 3 входа контролируемых параметров (в оригинале их 4, 4-й я подключил на внешнее питание), корпус, питание (12В), вход блокирования работы PIC-контроллера — в период снятия с охраны необходимо было блокировать работу ПИК. Ввиду очень малого тока потребления ПИК-контроллера, его работа сохранялась даже от питания по шинам DataRX, DataTX. Я применил оптопару АОТ 101АС, которая своим выходом просто коротила вывод кварца, останавливая генерацию и тем самым блокируя работу МК. Автор в прошивке микроконтроллера использовал WDT (сторожевой таймер), благодаря этому, работа микропроцессора восстанавливалась при «отпускании» ноги кварца, программа микроконтроллера начинает исполняться сначала. Иного способа для остановки работы искать не стал. При подаче +12В на вывод «LOCK» работа микропроцессора останавливается.
Остальные параметры необходимо настроить в программе конфигурирования.

Немного измененный и доработанный вариант охранки предложил участник форума Maratt с форума сайта первоисточника. Суть изменения — улучшить сервисные качества охранного устройства ic develop, автор которого на вопросы не отвечает. Если нельзя изменить программу, попытаемся улучшить аппаратную часть.

Есть только одна версия прошивки контроллера PIC16F628A, так как автор исходники не опубликовал. Если телефон ведет себя не так, как описано, разбираться надо с телефоном. Левая часть схемы осталась без изменений.

Теперь про правую часть.

В сети был найден проект «автосторож с устройством считывания электронных ключей типа DS1990A», и просто добавлен в схему.

Контроллер PIC12F675 обеспечивает считывание кода электронных ключей Touch Memory типа DS1990A фирмы Dallas Semiconductor, сравнение считанного ключа с информацией хранящейся в памяти, и выдачу сигнала управления.

Считывание серийного номера происходит при кратковременном касании электронного ключа к считывающему устройству контроллера. Контроллер снабжен световой индикацией режимов работы.

Количество хранящихся в памяти ключей, не более 20. Тактирование контроллера осуществляется от внутреннего тактового генератора частотой 4 МГц

К порту GPIO5 (вывод 2) микроконтроллера подключен светодиод «Режим», индицирующий работу контроллера электронного замка. Резистор R1 задает ток, протекающий через светодиод.

К порту GPIO4 (вывод 3) микроконтроллера подключен считыватель электронных ключей. Как уже упоминалось, обмен данными и командами между микроконтроллером D1 и электронным ключем, подключенным к считывателю, происходит с помощью однопроводного интерфейса 1-Wire. Резистор 4,7К является нагрузочным резистором для линии интерфейса 1-Wire (Обычный одножильный провод в оплетке). Резистор 150 ом и стабилитрон 4V7 защищают порт микроконтроллера от повышенного напряжения (статического и любого другого).

К порту GPIO3 (вывод 4) микроконтроллера подключена кнопка Прог ключей. С помощью нажатия этой кнопки производится запись ключа в память микроконтроллера, а также стирание всех ключей. Резистор 4,7К формирует напряжение высокого уровня на выводе 4 микроконтроллера. А нажатием на кнопку Прог ключей формируется напряжение низкого уровня.

Порт GPIO2 (вывод 5) микроконтроллера меняет свое состояние в зависимости от режима (снято с охраны -1, на охране -0)

Для записи первого или последующих ключей необходимо после подачи питания коснуться считывателя электронным ключем и нажать на кнопку Прог ключей. После четырех коротких вспышек светодиода «Режим» произойдет запоминание серийного номера в памяти микроконтроллера. Если память микроконтроллера полностью заполнится, то это будет оповещено четырьмя световыми сигналами. Вспышки светодиода будут более медленными, чем при записи ключа в память микроконтроллера.

Для стирания сразу всех ключей, хранящихся в памяти, необходимо выключить питание контроллера электронного замка, нажать на кнопку и подать на устройство питание, удерживая кнопку примерно 4 — 6 секунд, до появления серии коротких вспышек светодиода «Режим». Количество вспышек светодиода определяется количеством записанных в память электронных ключей (на стирание каждого ключа будет четыре коротких вспышки светодиода). После этого можно отпускать кнопку и устройство перейдет в нормальный режим работы. Но при этом перед пользованием необходимо записать в память микроконтроллера серийный номер хотя бы одного ключа.

Описание работы

При подаче питания контроллер после инициализации входит в режим проверки подключения электронного ключа. Светодиод «Режим» после включения питания начинает мигать, указывая на то, что устройство находится в режиме охраны, на выходе контроллера низкий лог уровень который не влияет на работу генератора. При касании считывателя контроллера электронным ключем, серийный номер которого хранится в памяти микроконтроллера, светодиод моргнет два раза. На выходе контроллера появится высокий уровень который заблокирует работу генератора. Светодиод «Режим» при этом будет светится постоянно, указывая о режиме снято с охраны.

При повторном касании электронного ключа считывателя произойдет постановка на охрану, и светодиод перейдет в режим мигания.

Внимание! После выключения питания устройство переходит в режим охраны!

Мой вариант исполнения охранки:

Разумеется, что повторяя данную схему, всегда сталкиваешься с подводными камнями. Были они и у меня. Для начала я определился по какой схеме буду собирать охранку и не прогадал – схема и печатка с дополнительной платой питания оказалась очень практичной конструкцией.

Схема охранного устройства:

Рис. 1 — Принципиальная схема простого GSM охранного устройства на PIC16F628A с электронным ключом типа Touch Memory

Устройство питания и сигнализации для простого охранного устройства.

Схема блока питания для охранного устройства:

Рис. 2 — СХЕМА принципиальная Схема блока питания для охранного устройства

К контактам разъема Х1 подключается вторичная обмотка сетевого трансформатора. На контактах разъема Х2 должно быть напряжение 16-18в.

Разъемы Х2 и Х3 предназначены для подключения узла (выделенного красным цветом) в состав которого входит:

1.Зарядное устройство,

2.аккумулятор 12в.

3. Устройство защиты аккумулятора от полного разряда.

При установке охранного устройства в месте, где нет сетевого напряжения, к разъему Х3 подключается заряженный аккумулятор.

На транзисторе VT1 собран ключ для коммутации звуковой сигнализации- зуммера на 12вольт со встроенным генератором подключенного к разъему Х5. К разъему Х4 (Сигнал1) подключается одноименный выход сигналки. Для более мощного устройства, например автономной сирены, к разъему Х5 можно подключить реле, которое будет коммутировать это устройство.

На транзисторе VT2 собран ключ для коммутации встроенного (паяется на плату) или выносного зуммера (подключается к разъему Х8) с напряжением питания 5в. Разъем Х6 (Сигнал2) подключается к одноименному выходу сигналки. Вход Сигнал3 (разъем Х7) можно подключить к 6 выводу PIC12F675 или использовать по своему усмотрению.

На микросхеме VR1 собран стабилизатор напряжения с выходным напряжением 3,0в. К его выходу Х9 подключаем вход питания сигналки. При этом напряжении контроллеры PIC16F628A и PIC12F675 работают стабильно, а сигналы RX TX согласованны по уровням с телефоном или модемом.

На микросхеме VR2 собран стабилизатор напряжения с выходным напряжением 4,2в. К выходу которого подключается модем или телефон. Это номинальное напряжение питания модуля SIM300D. Для питания телефона нужно снизить это напряжение до 3,7в, уменьшив сопротивление резистора 560*.На выходе стабилизатора есть делитель напряжения, средняя точка которого выведена на разъем Х10. Делитель имитирует сигнал с терморезистора аккумулятора сотового телефона. При подключении контактов Х10 вместо аккумулятора телефон будет работать от стабилизатора. Для некоторых моделей телефонов может потребоваться подбор резисторов делителя.

Изготовление печатной платы показывать не буду, так как это уже тривиально, сразу покажу результат работы.

С монтажом деталей:

Рис.3 — Плата GSM сигнализации своими руками — с монтажом деталей лицевая и обратная сторона.

Рис. 4 — Обратная сторона платы GSM сигнализации

Блок питания для сигнализации в готовом виде:

Рис. 5 — Готовая плата блока питания со стороны деталей

Рис. 6 — Плата блока питания с обратной стороны

Сильно изощряться не стал и использовал корпус от блока питания компьютера. Корпус с вмонтированным трансформатором можно увидеть на рисунках ниже:


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



Рис. 7 — корпус устройства.

Чтобы закрыть дырку от кулера я вырезал из ДСП форменный кусок и смонтировал на него прижимное кольцо от транзистора — «считыватель» для электронного ключа. Вывел пару светодиодов для визуального контроля работы устройства.

Рис. 8 — Закрывающая дырку от вентилятора деталь корпуса устройства.

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

Телефон Siemens А60 подключил по стандартному разъему

Рис.9 — Штекер для мобильного

Распиновка штекера Совпадает с любым х55/х60/х65. Исключений пока два — ST55/ST60.

1 — +U
2 — Gnd
3 — Tx
4 — Rx
5 — CTS
6 — RTS
7 — DCD
8 — звук левый
9 — звук общий
10 — звук правый
11 — земля микрофона
12 — микрофон

В соответствии с распиновкой необходимо припаять провода к плате и питанию.

Рис. 10 — Соединение двух плат (Блака питания и GSM сигнализации)

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

Рис. 11 — Преобразователь уровней RS-232 в TTL (транзисторно-транзисторная логика)

Готовое устройство выглядит так:



Рис. 12 — Преобразователь уровней RS-232 — TTL на транзисторах

Собственно выводы с коробки — общий , RX , TX , и одиночный (молочного цвета) провод из коробки — «+».

Очень важно!! — После сборки устройства настроить при помощи программы!

Теперь несколько слов о настройке устройства.

Для установки параметров контроллера с ПК автором была написана несложная программа. При работе в режиме программирования, конфигурация записывается в память микроконтроллера. Также можно использовать файл конфигурации для создания двоичного образа EEPROM, который затем записывается при помощи программатора в микросхему.

Для записи параметров используется преобразователь уровней RS-232 — TTL на транзистора. Подключаем преобразователь к COM порту компьютера, выводы RХ и TX к плате соответственно (RX- 7 нога микроконтроллера, TX — 8 нога микроконтроллера) подключаем общий провод преобразователя к общей дорожке платы. Подаем +5в через резисторы к преобразователю, как показано на рис. 11, от источника питания.

Для записи параметров в микроконтроллер следует перед подачей питания на все охранное устройство дополнительно нажать кнопку возле микроконтроллера, она отвечает за начало записи. Держать нажатой в течении всего процесса записи параметров через программу. Процесс записи проходит достаточно быстро, палец не устанет 😉

Подключаем питание платы охранки. Открывает программу, выбираем порт, нажимаем — «ЗАПИСАТЬ» — готово.

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

Если кто не знает «Параметры» — это номера телефонов на которые будет звонить сигнализация, также время работы сирены и длительность дозвона и др. В программе все подписано и интуитивно понятно.

Рис. 13 — Интерфейс программы для прошивки конфигурации в контроллер.

Варианты реализации:

Вариант корпуса для сигнализации. Использован корпус для автоматов. Очень удобная и практическая конструкция. Внутрь влезло все, что необходимо.

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

Внутри щитка видно, что все поместилось очень хорошо. Что касается платы блока питания — ее нет. Все запитывается от 5 вольтового источника питания от зарядки.

Ну вот собственно общий вид сигнализации — лицевая сторона.

Скачать печатную плату:

Печатная плата в.lay и описание для GSM сигнализации с считывателем ключей-

Принципиальная схема частотомера

Микроконтроллер PIC16F628A служит для того, чтобы выполнить всю работу без каких-либо дополнительных микросхем. На 16F628A 16 I/O выводов, два из которых используются для кварцевого генератора, один предназначен для ввода сигнала, а другой может быть использован только для ввода, что дает нам только 12 полезных I/O контактов. Решение - поставить транзистор, который открывается при выключении всех других цифр.

Светодиодный 7-сегментный дисплей, используемый здесь, с общим катодом типа BC56-12SRWA. Когда все сигналы находятся на высоком уровне, транзистор Q1 открывается и переключается на первой цифре. Ток для каждого сегмента составляет около 7 мА.

Вся схема частотомера потребляет тока порядка 30 мА в среднем. Микроконтроллер использует свой внутренний 4 MHz генератор для тактирования CPU. А внешний кварцевый генератор с частотой 32768 Hz нужен для установки 1 второго временного интервала. Tmr0 используется для подсчета входного сигнала на выводе RA4.

В качестве входного сигнала нужно будет 5 вольт прямоугольного вида. Сам частотомер может измерять до 1 мегагерца, что более чем достаточно для любительских проектов. Это сделано для удобства, так как счетчик может достигать показаний 999999 Гц - и ничего переключать не нужно. Меряем хоть 11 герц, хоть 139,622 килогерц.

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