PIC-контроллер. Программирование PIC-контроллеров. Схемы PIC-контроллеров. Схемы и устройства на микроконтроллерах Измерительные приборы на микроконтроллерах и пик

На, казалось бы, морально устаревшем контроллере 2051, мы не раз задумывались о том, чтобы собрать похожий измеритель, но на более современном контроллере, чтобы снабдить его дополнительными возможностями. Критерий поисков, в основном, был только один - это широкие диапазоны измерения. Однако, все аналогичные схемы, найденные в интернете, имели даже программное ограничение диапазонов, причём довольно значительное. Для справедливости стоит заметить, что вышеназванный прибор на 2051 вообще не имел ограничений (они были лишь аппаратными), а программно в нём даже были заложены возможности измерения - мега и -гига значений!

Как-то, изучая в очередной раз схемы, мы обнаружили полезнейший прибор - LCM3, обладающий приличным функционалом при небольшом количестве деталей. Прибор умеет в широчайших пределах измерять индуктивность, ёмкость неполярных конденсаторов, ёмкость электролитических конденсаторов, ESR, сопротивления (в том числе - сверхмалые), оценивать качество электролитических конденсаторов. Работает прибор на известном принципе измерения частоты, однако интересен тем, что генератор собран на встроенном в микроконтроллер PIC16F690 компараторе. Возможно, параметры этого компаратора не хуже, чем у LM311, ведь заявленные диапазоны измерений таковы:

  • ёмкость 1пФ - 1нФ с разрешением 0,1пФ и точностью 1%
  • ёмкость 1нФ - 100нФ с разрешением 1пФ и точностью 1%
  • ёмкость 100нФ - 1мкФ с разрешением 1нФ и точностью 2,5%
  • ёмкость электролитических конденсаторов 100нФ - 0,1Ф с разрешением 1нФ и точностью 5%
  • индуктивность 10нГн - 20Гн с разрешением 10нГн и точностью 5%
  • сопротивление 1мОм - 30Ом с разрешением 1мОм и точностью 5%
Более подробно ознакомиться с описанием прибора на венгерском можно на странице:

Применённые в измерителе решения нам понравились, и мы решили не собирать новый прибор на атмеловском контроллере, а применить PIC. От этого венгерского измерителя была взята частично (а затем - и полностью) схема. Затем была декомпилирована прошивка, и на её основе написана новая, под собственные нужды. Однако, авторская прошивка настолько хороша, что с ней прибор, наверное, не имеет аналогов.

Нажмите для увеличения
Особенности измерителя LCM3:

  • при включении прибор должен находиться в режиме измерения ёмкости (если же он находится в режиме измерения индуктивности, то соответствующей надписью на экране попросит перевести с другой режим)
  • танталовые конденсаторы должны быть с возможно меньшим ESR (менее 0,5 Ом). ESR конденсатора CX1 33нФ также должен быть низким. суммарный импеданс этого конденсатора, индуктивности и кнопки переключения режимов не должен превышать 2,2 Ом. Качество этого конденсатора вцелом должно быть очень хорошим, он должен иметь малый ток утечки, поэтому стоит выбирать из высоковольтных (например, на 630 вольт) - полипропилен (MKP), стирофлекс-полистирол (KS, FKS, MKS, MKY ?). Конденсаторы C9 и C10, как написано на схеме, - полистирол , слюда, полипропилен. Резистор сопротивлением 180 Ом должен иметь точность 1%, резистор 47 Ом также должен быть 1%.
  • прибор оценивает "качество" конденсатора. точной информации, какие именно параметры рассчитываются, нет. вероятно, это - утечка, тангенс угла потерь диэлектрика, ESR. "качество" отображается в виде закрашенного стаканчика: чем меньше он заполнен, тем лучше конденсатор. у неисправного конденсатора стаканчик закрашен полностью. однако, такой конденсатор можно применять в фильтре линейного стабилизатора.
  • дроссель, используемый в приборе, должен быть достаточно габаритным (выдерживать ток не менее 2А без насыщения) - в виде "гантельки" или на броневом сердечнике.
  • иногда при включении прибор выдаёт на экране "Low Batt". при этом нужно отключить и снова включить питание (вероятно, глюк).
  • имеется несколько версий прошивки данного прибора: 1.2-1.35, причём последняя, по словам авторов, оптимизирована для дросселя на броневом сердечнике. однако, на дросселе в виде гантельки она также работает и только в этой версии оценивается качество электролитических конденсаторов.
  • к прибору возможно подключить небольшую приставку для внутрисхемного (без выпаивания) измерения ESR электролитических конденсаторов. Она понижает напряжение, прилагаемое к проверяемому конденсатору, до 30мВ, при котором полупроводники не открываются и не влияют на измерение. Схему можно найти на авторском сайте.
  • Режим измерения ESR включается автоматически перетыканием щупов в соответствующее гнездо. Если при этом вместо электролитического конденсатора будет подключен резистор (до 30 Ом), то прибор автоматически переключится в режим измерения малых сопротивлений.
Калибровка в режиме измерения ёмкости:
  • нажать кнопку калибровки
  • отпустить кнопку калибровки
Калибровка в режиме измерения индуктивности:
  • замкнуть щупы прибора
  • нажать кнопку калибровки
  • дождаться появления сообщения R=....Ом
  • отпустить кнопку калибровки
  • дождаться сообщения об окончании калибровки
Калибровка в режиме измерения ESR:
  • замкнуть щупы прибора
  • нажать кнопку калибровки, на экране будут отображены напряжение, прилагаемое к измеряемому конденсатору (рекомендуемые значения - 130...150 мВ, завитит от дросселя, который нужно размещать подальше от металлических поверхностей) и частота измерения ESR
  • дождаться сообщения R=....Ом
  • отпустить кнопку калибровки
  • показания сопротивления на экране должны стать нулевыми
Реализована также возможность указать ёмкость калибровочного конденсатора вручную. Для этого собирается следующая схема и подключается к разъёму программирования (схему можно и не собирать, а просто замыкать нужные контакты):


Затем:

  • подключить схему (либо замкнуть vpp и gnd)
  • включить прибор и нажать кнопку калибровки, при этом на экране появится значение калибровочной ёмкости
  • кнопками DN и UP скорректировать значения (возможно, в разных версиях прошивки для ускоренной корректировки работают основные кнопки calibrate и mode)
  • в зависимости от версии прошивки, возможен и другой вариант: после нажатия кнопки калибровки, на экране появляется значения калибровочной ёмкости, которое начинает расти. Когда доходит до нужного значения, нужно остановить рост кнопкой mode и разомкнуть vpp и gnd. Если же не успели вовремя остановить и перескочили нужное значение, то кнопкой калибровки можно его уменьшить
  • отключить схему (либо разомкнуть vpp и gnd)
Авторская прошивка v1.35: lcm3_v135.hex

Печатная плата: lcm3.lay (один из вариантов с форума vrtp).

На прилагаемой печатной плате контрастность дисплея 16*2 задаётся делителем напряжения на резисторах сопротивлением 18к и 1к. При необходимости нужно подобрать сопротивление последнего. FB - ферритовый цилиндрик, вместо него можно поставить дроссель. Для большей точности вместо резистора 180 Ом используются два по 360 в параллель. Перед установкой кнопки калибровки и переключателя режимов измерения, обязательно проверьте тестером их распиновку: часто встречается такая, которая не подходит.


Корпус для прибора, следуя традиции (раз , два), сделан из пластмассы и окрашен краской "чёрный металлик". Изначально прибор питался от зарядного устройства для мобильного телефона 5В 500мА через гнездо mini-USB. Это - не лучший вариант, так как питание подключалось к плате измерителя уже после стабилизатора, а насколько оно стабильно в зарядке от телефона - неизвестно. Затем внешнее питание было заменено на литиевый аккумулятор с модулем зарядки и повышающим преобразователем , возможные помехи от которого прекрасно убираются обычным LDO стабилизатором , присутствующим на схеме.


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

Свет и вытяжка в санузле.

Сенсорный кодовый замок.

Сенсорная кнопка включения ПК.

Когда ПК выключен ничего не горит и не работает.

При касании сенсора подсветка откликается короткой вспышкой, далее замыкаются контакты
релеи остаются в замкнутом положении до тех пор, покана2 ноге МК не появится пониженныйдо +5 вольт сигнал с +12 вольтовой шиныБП компьютера, кактолько сигнал получен контакты реле размыкаются,и плавно включается подсветкасенсора. Если напряжение +12 вольт не появилось в течение -2 секунд, реле выключается, и подсветка двойным миганием показывает код неисправности, для сброса
нужно обесточить компьютер.Для выключениядостаточно зажать сенсор на 3 секунды и МК произведёт жесткое выключениеПК. При этом контакты реле замыкаются и держатся до тех пор, пока на 2
ногене пропадёт сигнал +12вольт с БП компьютера.Как только +12 вольт пропали, сенсор отпускает контакты реле и выключает подсветку.

Для контроля работы сенсора во время удержания подсветка мигает.Схему вешать на питание дежурной линии стенбай в 5 вольт. При программном выключении компьютера подсветка потухнет, как только пропадет 12 вольтовое питание.

МЕГА ИК ПРИЕМНИК НА 35 КАНАЛОВ.

Поддержка пультов с протоколом NEC. Первой записываем«Мастер» кнопку на пульте. Используя ее, включим режим перезаписи кнопок пульта в память МК. Далеезаписываем 35 выбранных кнопок на пульте ДУ.
Соответствие записываемых команд к ножкам МК, первая команда принадлежит ноге 2 и так далее по кругу против часовой стрелки, пропуская ножки питания МК(свежее запрограммированный МК сразу после подачи питания готов к записи команд с пульта в свою память). После подачи питания светодиод с 2 ноги три раза мигает и МК готов к записи, при проведении записи кнопки, он же мигает, говоря о проведении записи, после записи последней 35 кнопки его свечение немного длиннее. Когда он потухнет МК готов к работе.

В памяти EEPROM можно настроить режим работы каждой ножки в режим переключения или удержания. Для этого начиная с адреса 02 EEPROM по 06 адрес необходимо записать правильные числа, которые получаем следующим способом. Ножки «сгруппированы» по 8 штук, так как в одном регистре памяти EEPROM в МК всего 8 бит. Допустим, мы хотим, чтоб первые три ножки работали в режиме удержания, а остальные 5 в режиме переключения. Записываем число 1 для ноги, которая будет работать в режиме удержания и число ноль для режима переключения. Отсюда получаем такой вид числа в двоичной системе 00000111 – первая ножка считается справа налево, данное число нужно перевести в шестнадцатеричный вид, что в данном случае легко, но может потребоваться конвектор чисел. Получаем число 07 в шестнадцатеричном виде готовое к записи в программаторе. Также поступаем и для настройки остальных выводов. В текущей прошивке все выводы настроены в режиме удержания (записаны числа -FF). В последней ячейке по адресу 06 памяти EEPROM используем только три первых бита, остальные не используются (00000111).

Свет и вытяжка в санузле.

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

В выключенном режиме подсветка выключателя постоянно светится.

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

Конструктивно схема рассчитана на прокладку новой проводки,
что и сделал мой кум при постройке санузла.

Второй вариант прошивки для экономок, схема стала проще. Схема. Прошивка.

12 командный ИК приемник на PIC12F629

Устройство позволяет записать в память МК 12 команд с пульта ИК и их прием отображать на своих выводах в двоичном виде в режиме удержания кнопок, после отпуска кнопки пульта на выходах МК будут нули.

Для управления драйвером подойдет любой ИК пульт от бытовой техники с протоколом NEC. Дальность приема зависит от места установки приемника и используемого пульта.

Как определить пригодность пульта и запрограммировать кнопки. На схему подаем питание, светодиод на плате три раза «мигнет»говоря о готовности к записи.

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

Вывод данных в двоичном виде на ногах 7-6-5-3. То есть, выводится номер, принятой команды в соответствии очередности их записи. Первая записанная команда принята - выводится число 1 и т.д. В режиме покоя на выводах 0000.

ИК управление электро приводом -2.

Упрощенный вариант.

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

Программа ИК приемника универсальная поддерживает практически все протоколы пультов. Запись пульта можно провести, если с состояния выключенного питания нажать и удерживать кнопку «запись пульта» после подачи питания отпустить и нажать на пульте выбранную кнопку. Кнопку пульта необходимо удерживать белее трех секунд, после отпуска кнопки устройство готово к использованию, код кнопки запишется в память МК и повторной записи не потребуется, если было отключено питание устройства (для перезаписи кнопки пульта процедуру нужно повторить).

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

Изменения - есть возможность самостоятельно настроить время вывода сигнала на исполнительное устройство после правильного набора ПИН кода, производится изменением чисел в памяти EEPROM в ячейках идущих сразу после ПИН кода по адресу 05H и 06H. Время можно вычислить по расчету Время в секундах= ADR_05H (1- ноль не записывать)* ADR_06H (50- цифры в десятичной системе)* 0.02 секунды = получаем задержку в 1 секунду. Теперь еще индикации светодиода нажатой цифры с 8 ноги МК, как таковой нет, вместо этого на выводах 11-10-9-8 выводится число нажатой кнопки в двоичном виде, 8 нога младший БИТ и далее.
Использовав дешифратор типа 155ИД3 можно получить эквивалент каждой цифре свой выход (светодиод).

P.S. Числа для записи в EEPROM надо конвертировать, программаторы не поддерживают десятичную систему исчисления.

Является одним из наиболее важных измерительных инструментов в лаборатории радиолюбителя и ремонтника электрооборудования, естественно после вольтметра и тестера. Большинство схем работают очень хорошо, но верхний предел измеряемых частот иногда оказывается слабоват. Современная приёмо-передающая электроника требует частотомер, способный брать более гигагерца. Про такой прибор мы сейчас и поговорим. Клик по схеме для её увеличения.

Электрическая схема частотомера на МК PIC16F870

Этот цифрвой ЖК частотомер обладает очень высокой скоростью измерения, его очень легко собрать и использовать. Счетчик чисел выполнен на основе ЖК-дисплея на 2 строки по 16 символов. Был использован HD44780 на основе очень распространенного дисплея. На микроконтроллере PIC16F870 собраны цепи управления подсчета и отображения результата.

Частотомер может измерять частоту вплоть до 2,5 ГГц . Это стало возможным благодаря предделителю на LMX2322 . Данная специализированная микросхема по даташиту берёт 2,5 ГГц с высокой чувствительностью.