12F675 схема включения – Простая схема управления сервоприводом на микроконтроллере PIC12F675

Простая схема управления сервоприводом на микроконтроллере PIC12F675

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

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

Принципиальная схема контроллера сервопривода показана на следующем рисунке. Схема содержит всего несколько элементов: диод VD1 (1N4007) защищает схему от обратного подключения напряжения питания, стабилизатор DA1 (7805) обеспечивает напряжение 5 В для сервомотора, а через фильтр R4 и C1 подается питание на микроконтроллер DD1 (PIC12F675).

Потенциометры R6 и R7, подключенные к АЦП микроконтроллера, используются в качестве делителя напряжения для установки двух значений напряжения, которые изменяют продолжительность управляющих импульсов сервопривода. Переключатель SA1 предназначен для перевода сервомотора в одно из двух положений.

Работой контроллера сервопривода управляет программа, содержащаяся в памяти микроконтроллера. Таймер микроконтроллера TIMER1 — это 16-разрядный счетчик, который задействован для генерации прерываний каждые 20 мсек, таким образом, устанавливается стандартная частота управляющих импульсов. Прерывание TIMER1 происходит, когда счетчик переполняется.

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

Время переполнения TIMER0 и, следовательно, длительность импульса определяется начальным значением счетчика, которое пропорционально результату преобразования АЦП. Таким образом, изменение напряжения в диапазоне 0…5 В на входе АЦП приводит к изменению длительности импульса в диапазоне 0,5…2,5 мсек.

Кроме того, состояние SA1 определяет, какой потенциометр (R6 или R7) будет определять напряжение на входе АЦП. Благодаря этому сервопривод может управляться либо через SA1, либо в полном объеме путем изменения положения потенциометров.

Схема проверена в Proteus:

Устройство собрано на печатной плате, схема монтажа которой показана ниже. Следует обратить внимание на то, что R1…R5 — SMD резисторы, которые установлены на другой стороне платы.

Скачать рисунок печатной платы, прошивку, модель Proteus (38,1 Kb, скачано: 627)

www.joyta.ru

Простой таймер на микроконтроллере PIC12F675. Схема и описание

Этот простой таймер на микроконтроллере может использоваться для переключения любой нагрузки в интервале времени от 30 минут до 6 часов. Первоначальная задача этого таймера была — управление вытяжкой в ванной комнате.

Схема и конструкция таймера исходит из требований, которые я хотел реализовать в нем, а именно использовать одну кнопку, один потенциометр (220 кОм) и два светодиода.

Использование интегрального таймера NE555 не заслуживало моего внимания. Можно было бы использовать микросхему HCF4541B, но для этого мне бы пришлось для заданного интервала времени использовать относительно стабильный генератор с частотой 3-36 Гц.

В конце концов, я решил использовать микроконтроллер PIC12F675. Положение потенциометра сканируется внутренним АЦП микроконтроллера, а тактовый сигнал 32,768 кГц используется в качестве источника синхронизации. Для данной цели точности более чем достаточно, кроме того, я обошелся минимумом деталей.

Разрешение АЦП я снизил до 8 бит. Вся дорожка потенциометра условно поделена на 255 шагов по 80 секунд каждая. Минимальный интервал времени задал 30 минут (потенциометр в крайнем положении).

Отсюда максимальное время составляет 30 минут + 255 x 80 секунд = примерно 6 часов и 10 минут. Простое изменение пары констант в исходнике, позволяет установить произвольные временные интервалы.

Скачать прошивку (скачено: 132)

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


После нажатия на кнопку выполняется преобразование АЦП и начинает обратный отсчет. При повторном нажатии кнопки обратный отсчет останавливается и таймер сбрасывается.

www.tosi.cz

fornk.ru

Реле поворотов на микроконтроллере PIC12F675 — Меандр — занимательная электроника

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

Стандартное электромагнитное реле поворотов работает, как прерыватель тока, только при под­ключенной нагрузке. От сопротивления и тока на­грузки часто зависит работа реле-прерывателя по­воротов. Если в своей машине в указателях поворотов вместо ламп накаливания вы решили ус­тановить светодиодные лампы, то частота их «мор­гания» заметно изменится. В Интернете некоторые

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

Многие любительские схемы реле поворотов на аналоговых компонен­тах, например на 555-ом таймере, также не выдерживают критики, так как постоянно генерируют импульсы. Нормальное реле поворотов, как бы­ло замечено выше, работает, как пре­рыватель, только когда к нему подклю­чена нагрузка. Разработанное и изготовленное автором реле поворо­тов на PIC12F675 лишено этого недо­статка и обеспечивает надежную рабо­ту поворотников как на светодиодах, так и на лампах накаливания. Его схе­ма показана на рис.1.

Рис. 1

Основой этого реле является мик­роконтроллер (МК) DD1 PIC12F675 в корпусе DIP-8. Назначение выводов этого МК, с учетом «залитой» в него программы, приведено в таблице.

Обозначение Назначение
1 Vdd Напряжение питания
2 СР5  

Выводы не используются (уровень лог. «1»)

 

3 СР4
4 СР3
5 Vss Корпус
6 CP1 Вход от делителя напряжения с нагрузки
7 СР0 Выход импульсов
8 CP2 Корпус

МК DD1 питается напряжением 4,7 В от параметрического стабилизатора на стабилитроне VD1 и балластном резисторе R1. В качестве силового ключа использован мощный p-канальный МДП-транзистор VT3 типа IRF4905, который управляют с выхода GPO (вывод 7) DD1 через усилитель на n-p-n транзисторе VT2 типа 2SC1815. Резистор R2 — ограничивающий в цепи базы VT2, a R3 — нагрузка этого транзистора. При включении правого или левого поворота к выходу реле подключается хотя бы одна лампа, нагружая его. DD1 фиксирует наличие нагрузки и подает на выход GPO (вывод 7) DD1 положительные импуль­сы (включает реле).

Для определения наличия подключенной на­грузки (ламп накаливания или светодиодных ламп) в схему введен делитель напряжения R4, R5, R6. С резистора R6 снимается напряжение на вход GP1 (вывод 6) DD1. При отсутствии нагрузки, ког­да VT3 заперт, на вывод 6 DD1 с делителя посту­пает уровень лог. «1», и МК поддерживает VT3 в за­пертом состоянии. Когда при запертом VT3 нагрузка подключена, она шунтирует последова­тельно соединенные резисторы R5 и R6. При этом на вывод 6 DD1 с делителя поступит уровень лог. «О», который программно обеспечит включе­ние реле поворотов.

Когда конструкция была уже готова, было реше­но для контроля работы реле поворотов последо­вательно с резистором R3 включить красный све­тодиод (на схеме рис.1 он не показан).

Программа была создана в среде Flowcode [1] для МК DD1 PIC12F675, но ее несложно портировать и для PIC12F629. Код получился несложным, но объемным, как, пожалуй, все коды, создавае­мые во Flowcode.

Устройство собрано на печатной плате разме­рами 22×23 мм с применением SMD-компонентов. Плата установлена в корпусе от стандартного реле поворотов (см. фото). Печатная плата реле поворотов, как, впрочем, и принципиальная схема, разрабатывались в программе DipTrace.

Скачать архив к проекту (файлы проекта реле поворотов в Proteus с ис­ходниками и прошивкой, а также чертежи принци­пиальной схемы и печатной платы).

Ссылки

  1. http://flowcode.info/ — сайт русскоязычной поддержки программы Flowcode.
  2. https://www.driveru/b/2575388/- Реле по­воротов на PIC12F675 в блоге Максима Батурина.

Автор: Максим Батурин, г. Мурманск

Возможно, вам это будет интересно:

meandr.org

Сообщества › Электронные Поделки › Блог › Контроллер электровентилятора охлаждения двигателя на pic12f675

После сборки и установки на свой автомобиль устройства плавного пуска электровентилятора системы охлаждения двигателя, было предложено собрать устройство плавного регулирования оборотов того же электровентилятора системы охлаждения относительно температуры двигателя. Контроллер вентилятора охлаждения радиатора. Для сбора данного устройства как раз нашлись все подходящие детальки. Решил собирать на макетной платке, так как не было времени и разрабатывать плату было честно лень. Провозившись часа три и проматерив всё и вся устройство было готово. Фотографировать не стал, так как это был, просто ужас, куча спутанных проводков и деталек. После включения устройство естественно не за работало. Схему перепаивал дважды, но с таким же печальным результатом. И, чтобы не тратить опять время, собрал схему по оригинальной версии модуля плавного регулирования оборотов автомобильного электровентилятора системы охлаждения двигателя Смерч-7 предложенную Турмалином-НН.
Так как Турмалин-НН не предлагает нам версию своей печатной платы, разрабатывать пришлось самому в своей любимой программе DipTrace.

Схема контроллера

Схема довольно простая и не составит особого труда повторить её начинающим радиолюбителем.

А вот и моя плата, под дип.

Плату разрабатывал исключительно под свои компоненты. Как видите, транзистор посадил на довольно мощный радиатор SK-104, так как охлаждение много не бывает. Резисторы ставил столбиком, как на плате в старом телевизоре. Штепсиль использовал от платы стиральной машины.

Готовое устройство

Вид со стороны деталей

Сторона дорожек

Готовое устройство под установку

Плата получилось довольно симпатичной.

А, также набросал плату в смд варианте. При оставшимся том же радиаторе, применил вместо штепсися от стиралки, привычный винтовой клемник.

Плата смд варианта

Первое включение устройства собрал по варианту плавного пуска и остановки вентилятора. То есть контакт ХТ2 замкнул на +12В.

Первая схема – плавное управление вентилятором. Вторая схема – плавное включение и выключение вентилятора.

При подаче питания тестовый мотор на секунду включался и останавливался. А вот уже при замыкании контакта ХТ3 на землю наблюдается плавное раскручивание моторчика и при отключение контакта ХТ3 от земли мотор плавно останавливается. Устройство можно считать рабочим.

Теперь самое интересное. Как заставить работать устройство относительно температуры. Подключаем контакт ХТ2 к датчику ТМ-106, далее, доведя температуру двигателя до температуры примерно 85-90 добиваемся путём поворота движка переменного резистора R5 момента начала вращения электровентилятора. Дальше при росте температуры сопротивление датчика будет уменьшаться, и соответственно обороты электровентилятора будут увеличиваться. А при понижении температуры, наоборот уменьшаться вплоть до его остановки.

Тут основной смысл в том, что автомобиль должен быть оборудован датчиком резистивного типа. И ежели датчик у вас цифровой или по сопротивлению сильно разнится с датчиком ТМ-106, а его сопротивление должно быть порядка 240 Ом, то нужно будет устанавливать дополнительный датчик. И при номинальной температуре с датчика должно выходить в районе 6 вольт. Так как датчика ТМ-106 у меня нет и для проверки устройства на столе, собрал делитель напряжения с переменным резистором в 1 кОм. На выходе с делителя настроил напряжение около 6 вольт и поворотом резистора R5 добился момента начало вращения тестового электродвигателя. Имитируя работу термодатчика путём поворота движка резистора делителя напряжения, наблюдаем пук моторчика при уменьшении напряжения и его остановку при увеличении напряжения. Полагаю данный прибор можно установить практически на любой автомобиль. Если устройство не работает то следует по экспериментировать с подбором сопротивления резисторов R1 и R4. Данное устройство построено на микроконтроллере pic12f675 имеющий два порта АЦП. Полагаю прошивка схемы работает по принципу сравнения напряжения во внутреннем делителе напряжения со внешним.

Выкладываю свои материалы по сборке устройства.

Скачать схему, платы в DipTrace, фотографии и прошивки.

О том как всё это будет стоять на моём автомобиле будет отдельная тема.
Всем всего хорошего и удачи на дорогах.

www.drive2.ru

Ленивые поворотники на микроконтроллере pic12f675 — DRIVE2

В продолжение темы Реле поворотов на микроконтроллере pic12f675 Решил реализовать устройство комфортных поворотников, называемых мною ленивыми. В своём прошлом БЖ Удлинитель поворотников (собственная версия). подробно описывал процесс изготовления и установки подобного устройства. Это устройство до сих пор исправно работает в автомобиле. К тому времени я начал интересоваться программированием для МК. С начала я не знал каким процессорам отдать предпочтение. Попробовал поработать с PIC и так и на них пока остановился. Так как AVR и PIC почти братья решил попробовать устройство комфортных поворотников сделать в PIC варианте. Сначала порылся в интернете есть ли подобные проекты, оказалось их почти нет. Одна схема то без платы, другая без прошивки, третья вообще без какого либо описания только схема.

Мне понравился вариант без щёлкающих релюшек.

Нашёл эту схему.

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

Вот и решил закончить проект.

Эта уже моя схема

А это моя плата.

Сделать реальное устройство не составило труда, благо уже есть опыт.

И вот готовое устройство.

Теперь самое сложное написать программу для МК. Сказу честно что код мне дался сложно, без помощи ребят с форума Русский Flowcode сам бы я до многого не додумался. Код полностью мой, за меня его ни кто не писал. Я часами вглядывался в кубики программы прогонял эмуляцию пошаговом режиме, даже чертил на на бумаге. В итоге родился это код. Да в моём коде ещё есть над чем работать но устройство работает как ни странно именно так как задумывалось. Что свидетельствует сделанное мною видео.

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

Спасибо за помощь: mim, Taska, Eddy71

Скачать архив с материалами по проекту Ленивые поворотники на микроконтроллере pic12f675

www.drive2.ru

Встраиваемый вольтметр на PIC12F675 - RadioRadar

Измерительная техника

Главная  Радиолюбителю  Измерительная техника



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

Ставшее уже традиционным соединение светодиодного цифрового индикатора с микроконтроллером через преобразователь последовательного кода в параллельный 74HC595 требует использовать три вывода микроконтроллера для управления преобразователем кода и ещё по одному выводу для каждого разряда индикатора. Следовательно, для четырёхразрядного индикатора требуются семь выводов. Это не даёт возможности применять такие индикаторы с маловыводными микроконтроллерами, например, c PIC12F675, имеющим всего шесть выводов (не считая выводов питания).

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

Как обычно, информация выводится на индикатор разряд за разрядом по запросам прерывания от таймера микроконтроллера, следующим с периодом 2 мс. Процедура обработки каждого запроса состоит из пяти этапов. На первом этапе она устанавливает низкий уровень на выводе 10 микросхемы 74HC595, обнуляя этим её сдвиговый регистр. Этот этап - единственный, на котором через элементы индикатора течёт паразитный ток, но поскольку продолжительность его импульсов всего 1 мкс при периоде повторения 2000 мкс, паразитное свечение незаметно даже в темноте.

На втором этапе нарастающий перепад уровня на выводе 12 микросхемы 74HC595 переписывает нулевое содержимое сдвигового регистра в регистр хранения. Это полностью гасит индикатор.

На третьем этапе происходит загрузка информации в сдвиговый регистр микросхемы 74HC595 последовательным кодом, формируемым микроконтроллером на выводе 14 микросхемы. На её вывод 11 поступают тактовые импульсы.

На четвёртом этапе нарастающим перепадом уровня на выводе 12 микросхемы 74HC595 информация из её сдвигового регистра поступает в регистр хранения, причём благодаря высоким уровням на катодах разряды индикатораостаются погашенными.

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

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

Теперь расскажем о вольтметре, в котором использован описанный принцип.

Основные технические характеристики

Измеряемое напряжение, В ............... 0...80

Дискретность измерения, В .......0,1

Погрешность.................0,5% + ед. мл. разр.

Напряжение питания, В............7...15

Ток потребления, мА, не более ........................30

Схема вольтметра показана на рис. 1. В нём применена поэлементная динамическая индикация. В каждый момент времени высокий уровень установлен на анодах одной группы одноимённых элементов всех разрядов индикатора HG1. На общих катодных выводах разрядов, в которых эти элементы должны светиться, устанавливают низкий уровень, в противном случае - высокий. Обратите внимание, что одноимённые элементы могут быть включены одновременно во всех разрядах, но в каждом разряде в текущий момент времени включён только один элемент. Именно поэтому выбрано подключение анодов элементов к выходам микросхемы DD2, нагрузочная способность которых выше, чем выходов микроконтроллера.

Рис. 1. Схема вольтметра

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

У микроконтроллера PIC12F675-I/P (DD1) остаются не занятыми в динамической индикации линии ввода-вывода GP0 и GP3. Первая использована как вход АЦП, на неё подают через делитель R1R2 измеряемое напряжение. На линии GP3 в отсутствие перемычки S1 благодаря резистору R3 установлен высокий логический уровень, что служит сигналом, переводящим вольтметр в режим калибровки. Если перемычка установлена, уровень на этом выводе низкий и вольтметр работает в обычном режиме.

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

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

После калибровки выключите вольтметр и окончательно установите перемычку S1, иначе при следующем включении всё придётся повторить заново. Вольтметр может работать и без калибровки, если при его первом включении перемычка S1 уже установлена. В этом случае он использует коэффициент, записанный в программе, но погрешность может превысить 10 %. Об этом предупредит включённая точка в крайнем правом разряде индикатора.

Аналого-цифровое преобразование производится в "спящем" режиме микроконтроллера для уменьшения помех со стороны его работающих узлов. Из этого состояния он автоматически выходит по окончании преобразования.

Питается прибор напряжением 5 В, полученным с помощью интегрального стабилизатора напряжения DA1. Использовать вместо указанного на схеме стабилизатор 78L05 можно только в крайнем случае, так как стабильность его выходного напряжения на порядок хуже. Без ухудшения параметров можно применить стабилизатор LP2951. Стабилитрон VD1 на напряжение 5,6 В совместно с внутренним защитным диодом микроконтроллера предохраняют последний от повреждения при превышении измеряемым напряжением допустимого значения. Без ограничителя напряжение питания микроконтроллера в этой ситуации может критически увеличиться.

Устройство собрано на печатной плате размерами 40x36 мм из односторонне фольгированного стеклотекстолита толщиной 1,5 мм, показанной на рис. 2. Большинство резисторов и конденсаторов - типоразмера 0805 для поверхностного монтажа. Резистор R1 для надёжной работы при повышенном напряжении применён выводной мощностью 0,5 Вт. Конденсатор C1 можно установить и керамический, и выводной оксидный, для которого на плате предусмотрено посадочное место, обозначенное C1'. Индикатор FYQ-3641AHR-11 можно заменить другим из серии 3641А или трёхразрядным серии 3631А без переделки платы. Фотоснимок собранной платы прибора показан на рис. 3.

Рис. 2. Печатная плата

Рис. 3. Фотоснимок собранной платы прибора

Программа микроконтроллера написана на языке C в среде разработки MikroC.

Файл печатной платы в формате Sprint Layout 5.0 и программа микроконтроллера можно скачать здесь.

Автор: Б. Балаев, г. Нальчик, Кабардино-Балкария

Дата публикации: 15.04.2016

Мнения читателей
  • basmach / 03.05.2016 - 23:05
    под PIC12F683 было бы интересно попробовать

Вы можете оставить свой комментарий, мнение или вопрос по приведенному вышематериалу:


www.radioradar.net

Сообщества › Электронные Поделки › Блог › Реле поворотов на микроконтроллере pic12f675

Один знакомый попросил собрать ему реле поворотов без реле, то есть на транзисторном ключе. И как раз на шёл на нашем сайте подобную тему Электронное реле поворотов. Собрал схемку, но работой не был удовлетворён, так как реле работает постоянно генерируя импульсы. Нормальное реле поворотов работает как прерыватель тока только когда к нему подключена нагрузка. Тут я решил применить свои навыки программирования в среде Flowcode. За основу взял микроконтроллер pic12f675, можно сделать прошивку и под pic12f629. Код получился не сложным, не буду утверждать что он абсолютно правильный, но реле работает исправно. В цепь добавил контрольный светодиод. То есть когда питание на реле есть но нагрузка не подключена реле молчит. А при включении нагрузки светодиод начинает мигать показывая что реле работает. В качестве силового ключа применил мощный р-канальный МОП.

Вот собственно схема устройства.

Сразу сделал устройство в стандартном корпусе и применил смд компоненты.

Плата реле поворотов

Картинки готового устройства.


Скачать схему, плату, прошивку и исходник.

Видео работы моего реле

На видео кроме моего реле, собран стенд испытания нового проекта Комфортных поворотников на pic12f675/629. Код почти готов, а это уже другая тема.

www.drive2.ru

Оставить комментарий

avatar
  Подписаться  
Уведомление о