Многофункциональное светодинамическое устройство для стоп-сигнала на pic16f628a. Светодиодный стробоскоп на микроконтроллере PIC12f629 Принцип работы проблескового маячка с микроконтроллером pic

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность - простота схемы - надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM.Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим - в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:

Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.




Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля


Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe - файл оболочки программатора.
icprog.sys - драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm - файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1.(Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки" >> «Программатор

1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки" >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора

Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP - Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) - общий провод.
2. VDD (VCC) - плюс напряжение питания
3. MCLR" (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) - двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:

1.Линия MCLR" развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:


Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства


вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal - представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.


1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя! Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее


3. Нажимаем кнопку «Открыть файл...», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть - это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора


Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке - Microchip - MPASM Suite - MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка.HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!


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

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

Для правильной работы устройства светодиоды должны быть расположены так, как показано на рисунке выше. 1-й диод по схеме это ближний к корпусу устройства, 8-й СД - это крайний светодиод на линейке. Соответственно обозначены левыая и правые линейки.

Это устройство можно разместить за задним стеклом автомобиля или на спойлере. Светодиоды, конечно, должны быть красными! Никакой наладки устройства не требуется, запускается оно сразу. В ждущем режиме потребление тока ничтожно мало, поэтому для аккумулятора абсолютно не страшно.









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

mk_stop_2.rar
48.9 КБ
Рисунок печатной платы (LAY) и файл прошивки микроконтроллера (HEX)

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

Эта схема очень проста в сборке и не требует налаживания. При нажатии кнопки "Старт " включается автоматический режим воспроизведения.


Автоматический режим воспроизведения - это когда воспроизводятся все световые эффекты поочередно. Для остановки воспроизведения эффектов еще раз нажмите кнопку "Старт".


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


Чтобы переключить эффект нажмите кнопку "Назад " - для перехода к предыдущему световому эффекту, "Вперед " - для перехода к следующему.


Устройство собранно на печатной плате, рисунок и прошивка для контроллера в архиве. На плате собран и простой стабилизатор 5В, для питания контроллера (на схеме он не показан). Корпус - пластмассовая небольшая коробочка. Сами светодиоды выбираем любых типов и цветов, подходящих по напряжению и току. Их располагаем в любом виде - тут уже подключите свою фантазию. А если нужно сделать на основании этого девайса эффекты для дискотеки - просто усиливаем выходы микроконтроллера мощными полевыми транзисторами типа IRF. Автор конструкции: Пелех.М
2 часть
В данной статье предлагается 2 схемы светодиодных эффектов на микроконтроллерах PIC и AVR .

1) PIC12F629

Существует 4 функции:

* Chaser MODE
* Brake MODE
* Chaser / Brake MODE
* OFF

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

2) Attiny2313

Светодиодная гирлянда на микроконтроллере ATtiny231320PI

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

Данное устройство управляет 13 светодиодами, подключенными к портам микроконтроллера. В качестве микроконтроллера используется МК фирмы ATtiny231320PI. Благодаря использованию внутреннего генератора, выводы 4 и 5 задействованы как дополнительные порты микроконтроллера PA0,PA1. Схема обеспечивает выполнение 12 про- грамм эффектов, 11 из которых - индивидуальные комбинации, а 12-тая про- грамма – последовательный однократный повтор предыдущих эффектов. Переключение на другую программу осуществляется нажатием на кнопку SB1. Программы эффектов включают в себя и бегущий одинарный огонь, и нарастание огня, и бегущую тень и многое другое.

Устройство имеет возможность регулировки скорости смены комбинаций при выполнении программы, которая осуществляется нажатием на кнопки: SB2 – увеличение скорости и SB3 – уменьшение скорости при условии, что переключатель SA1 находиться в положении "Скорость программы”. Также имеется возможность регулировать частоту горения светодиода (от стабилизированного свечения до легкого мерцания), которая осуществляется нажатием на кнопки: SB2 – уменьшение (до мерцания) и SB3- увеличение при условии, что переключатель SA1 находиться в положении "Частота мерцания”. У переключателя SA2 замкнутое положение соответствует режиму регулировки скорости выполнения программ, а разомкнутое - режиму регулировки частоты горения светодиодов.
Порядок нумерации светодиодов в схеме соответствует их порядку зажигания при выполнении программы. При необходимости вывод RESET может быть использован для сброса, а в качестве порта PA2 он не задействован. В устройстве выбрано при программировании тактовая частота 8 МГц от внутреннего генератора (фузы CKSEL3..0 - 0100).Хотя возможно использование частоты в 4 МГц(фузы CKSEL3..0 - 0010) с соответствующими изменениями временных интервалов работы схемы.
Тип светодиодов, указанный на схеме использовался в опытном образце, для схемы подойдут любые светодиоды с напряжением питания 2-3 вольта, резисторами R1-R17 можно регулировать яркость свечения светодиодов.

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

Схема МК мигалки

Устройство заставляет мигать светодиод примерно с 1-секундным интервалом. Схема очень простая. Помимо стандартных элементов, общих для каждого устройства с участием PIC16F84A, имеется всего два дополнительных элемента: светодиод и токоограничивающий резистор сопротивлением 220 Ом. Схема испытана на макетной плате. Тут использован один из сегментов 10-полосной светодиодной сборки.

Как следует из схемы, светодиод подключен к порту rb1 16F84A. Если этот порт дает на выходе логическую 1 (прибл. +5 В) - светодиод горит. В противном случае он выключен. Следовательно, чтобы заставить мигать светодиод, нужно периодически выводить единицу на данном порту. Это достигается с помощью простейшей программы, которую можно

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

Есть следующие режимы: интервал между импульса (30 мсек и 10 мсек), частота повторений (1, 2, 3 и 4 сек), создание одинарных или двойных вспышек.

Поскольку выход микроконтроллера PIC12F629 способен выдержать максимальную нагрузку в районе 25 мА, то в схему стробоскопа включен транзистор, способный разгрузить выход микроконтроллера и увеличить ток, проходящий через светодиод. Этот транзистор имеет максимальный ток коллектора 100 мА, достаточный для питания большинства типов 5 мм светодиодов.

Резистор R4 выполняет роль ограничителя тока для светодиода. При питании стробоскопа в 5 вольт и падении напряжении на светодиоде в 1,8 вольта, ток протекающий через светодиод ограничен 47 мА.

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

Длительность импульса, интервал и режим стробоскопа могут быть выбраны пользователем с помощью блок перемычек. Как уже было сказано выше, в схеме реализовано два режима: одиночные вспышки и двойные (пауза между двойными вспышками составляет по умолчанию – 175 мсек).

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

Выбор режима работы светодиодного стробоскопа

Время длительности импульса, интервал и двойной режим все настраивается путем редактирования значения в EEPROM микроконтроллера PIC12F629, до его прошивки. Это значительно упрощает редактирование значений, поскольку не нужно повторно компилировать исходный код программы. Просто необходимо прошить HEX в память микроконтроллера.

Примеры изменения значений в памяти микроконтроллера PIC12F629

Изменение длительности вспышки. Предположим, вы хотите получить длительность импульса вспышки (вместо 30 мсек по умолчанию) 40 мсек. Тогда значение, которое нужно записать в EEPROM определяется следующим образом: 40 мсек / 1 мсек = 40. Теперь переведем 40 в шестнадцатеричную систему, получим 28, которое и нужно записать в 00 адрес EEPROM.

Рассчитаем изменение интервала между двойными вспышками на 0,2 сек (вместо 175 мсек по умолчанию) . Для этого 200 мсек/ 1 мсек = 200. Переводим в шестнадцатеричную систему получим C8 которое записываем в адресс 02.

Чтобы изменить интервал между серией вспышек на 1,3 сек (вместо 1 сек по умолчанию) нужно сделать следующее: 1,3 сек / 100 мсек = 13. Переводим в шестнадцатеричный вид получаем 0D. Данное значение прописываем в адрес 03 EEPROM.

Необходимо заметить, что 255 это максимальное значение, которое можно прописать в один адрес памяти.

Самый простой способ перевести число из десятичной в шестнадцатеричную систему (к примеру, число 40), это в поисковике google.com набрать: 40 to HEX. Получим ответ: 0x28. Приставка 0x в результате просто указывает нам, что значение приведено в шестнадцатеричной системе.

В схеме стробоскопа можно применить микроконтроллер как PIC12F629, так и PIC12F675.

Модификация схемы светодиодного стробоскопа (азбука Морзе – SOS)

Это модифицированная версия стробоскопа, позволяющая в системе азбуки Морзе организовать световую передачу сигнала SOS. Длина точки может быть установлена в одном из четырех периодов, а время между двумя последовательностями ‘SOS’ также может быть скорректирована.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то