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


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

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

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

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

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

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

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

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

При касании сенсора подсветка откликается короткой вспышкой, далее замыкаются контакты
релеи остаются в замкнутом положении до тех пор, покана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 надо конвертировать, программаторы не поддерживают десятичную систему исчисления.

На, казалось бы, морально устаревшем контроллере 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 стабилизатором , присутствующим на схеме.


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

Когда делаются схемы, необходимо, чтобы кто-то или что-то контролировало выполнение необходимых действий. Для человека это довольно проблематично, так как приходится использовать значительное количество различных элементов, позволяющих контролировать их работу (транзисторы, резисторы, тиристоры, диоды, конденсаторы и прочие). Но все сложные и большие схемы можно контролировать с помощью контроллеров (микроконтроллеров). Что они собой представляют, будет рассказано на примере семейств РІС. Итак, для чайников? Какая их схема и где они используются.

Что собой представляет PIC-микроконтроллер

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

Для работы подавляющего большинства РІС-контроллеров необходимо стабильное напряжение - 5В. Этого хватает, чтобы он мог работать в своём обычном режиме и выполнять поставленную перед ним программу. напрямую от компьютера невозможно. Для этой цели используется программатор.

Семейства контроллеров

PIC-контроллер не существует в единичном экземпляре. Компания производитель выпускает значительный ассортимент микроконтроллеров, каждый из которых имеет свои характеристики, возможности и потенциальные цели применения. Количество самих семейств довольно велико и зависит от классифицирующего признака, который берётся как основной. Поэтому стоит сообщить только об основной классификации, в которой есть всего три семейства: 8-, 16- и 32-битные. Они в свою очередь делятся на другие, но поскольку сами семейства не являются темой статьи, то о них и не будет вестись разговор.

Где применяется

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

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

Программное обеспечение для работы с PIC-контроллером

Минимальное необходимое программное обеспечение - это блокнот. Но всё же в силу свободного распространения можно воспользоваться и предлагаемым от компании-производителя программным средством MPLAB. Точнее, линейкой программных средств (среды разработки, компиляторы) MPLAB. Благодаря политике компании он распространяется бесплатно, но имеет определённые ограничения. Так, при краткосрочной демонстрационной версии можно попробовать со всеми возможностями, но после её окончания функционал программы будет урезан. В полноценной программе присутствует значительный инструментарий, который позволяет легко создавать программы, удобно искать различные проблемные участки и проводить оптимизацию кода. В зависимости от версии может быть прекращена функция оптимизации кода или уменьшено количество контроллеров, поддерживаемых программой. Ради правды стоит сказать, что компания оставляет поддержку исключительно самым популярным представителям.

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

Создание программы для PIC-контроллера

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

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

Программирование с помощью программатора

Но как перенести разработанную программу в сам микроконтроллер? Как происходит программирование микроконтроллеров? Специально для этой цели существуют специальные устройства - программаторы. Они посылают микроконтроллеру сигналы, которые изменяют ячейки в памяти в соответствии с программой. Для начала процесса перенесения данных необходимо вставить микроконтроллер в программатор, а его, в свою очередь, подключить к компьютеру. Затем с помощью программного обеспечения следует запустить прошивку. Обычно программирование PIC-контроллеров продолжается от тридцати секунд до двух минут.

Виды программаторов

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

Так, самодельные программаторы являются довольно дешевыми. Но их использование чревато тем, что они могут запросто превратить микроконтроллер в кусочек пластика и железа. И программирование микроконтроллеров может в таких случаях обратиться неприятными последствиями в виде удара током, поэтому следует придерживаться техники безопасности. К тому же если делать самому с нуля, то часто получится продукт с довольно ограниченными возможностями относительно смены объекта работы. Но в мировой сети можно найти значительное количество решений этой проблемы, предложенных другими людьми, и которые, вероятно, не доставят вам проблем.

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

Но останавливает от его приобретения довольно высокая цена.

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

Схематические особенности

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