Многофункциональное светодинамическое устройство для стоп-сигнала на pic16f628a. Самая простая схема на микроконтроллере Диодная мигалка на пик контроллере


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

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

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

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









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

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

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность - простота схемы - надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на 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 контроллеров! Удачи!

В новогодние праздники, да и не только, возникает большая потребность в световой иллюминации.

Данное устройство можно назвать по-разному: лампой настроения, RGB-светильником, новогодней лампой, светодиодным маяком и пр. Как его использовать - подскажет фантазия.

Вот схема многоцветного RGB-светильника на микроконтроллере PIC12F629 (или PIC12F675). Для увеличения кликните по изображению.

Внешний вид собранного RGB-светильника.

Видео работы светильника в режиме "лампы настроения" (Mood Lamp).

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

    Медленная смена цветов. Зелёное, красное и синее свечение разной интенсивности смешиваются, что позволяет получить плавный перебор цветов радуги;

    Быстрое поочерёдное мигание красным, зелёным и синим цветом;

    Плавное увеличение белого свечения и затем 4 вспышки. Затем идёт повторение цикла;

    Поочерёдное резкое вспыхивание и медленное затухание основных цветов (синего, красного, зелёного). После цикл повторяется.

    Ровное свечение красным;

    Ровное свечение синим;

    Ровное свечение зелёным;

    Мигание синим;

    Ускоренная смена цветов;

    Ровное белое свечение;

    Ровное белое свечение с пониженной яркостью;

    Ровное белое свечение с минимальной яркостью;

    Ровное свечение фиолетовым (красный + синий);

    Ровное свечение оранжевым (красный + зелёный).

Это основные режимы работы светильника. Все остальные являются вариантами плавной смены цветов радуги с разной скоростью.

Чтобы оценить по достоинству всю богатую палитру режимов и работоспособность устройства лучше сначала его собрать на беспаечной макетной плате . Так называемой, "хлебной доске" (Breadboard).

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

Микроконтроллер перед запайкой в плату нужно "прошить ". О том, как это сделать, я уже рассказывал на страницах сайта. Чем прошивать - отдельный вопрос. Если нечем, то сначала нужно собрать самостоятельно USB программатор микроконтроллеров PIC или купить уже готовый . Он ещё не раз пригодится.

Во время прошивки PIC12F629 или PIC12F675 нужно обратить внимание на калибровочную константу. Не лишним будет сначала считать (“Read” ) данные с чистого микроконтроллера и записать куда-нибудь на бумажину значение константы. После прошивки микроконтроллера нужно проверить соответствует ли значение константы в ячейке 0x3FF считанному ранее значению. Если оно отличается, то меняем константу. О том, что такое калибровочная константа я уже рассказывал .

Список необходимых радиодеталей для сборки RGB-светильника.

Название Обозначение Параметры / Номинал Марка или тип элемента
Микроконтроллер DD1 8-битный микроконтроллер PIC12F629 или PIC12F675
Интегральный стабилизатор DA1 на выходное напряжение 5 вольт 78L05, MC78L05ACP (любой аналог)
MOSFET-транзисторы VT1 - VT3 - 2N7000 или КП501А (Внимание! У КП501А другая цоколёвка!)
Полупроводниковый диод VD1 (не обязателен) 1N4148, 1N4007 или аналог
Светодиоды HL1 - HL4 красного цвета свечения любые яркие диаметром 5 мм.
HL5 - HL7 зелёного цвета свечения
HL8 - HL10 синего цвета свечения
Резисторы R1 120 Ом МЛТ, МОН (на мощность рассеивания - 0,125 Вт)
R2, R3 68 Ом
Конденсаторы С2 220 нФ (0,22 мкФ) Керамические многослойные или любые аналоги
С3 100 нФ (0,1 мкФ)
Электролитический конденсатор C1 47 мкФ * 16 вольт любой алюминиевый (К50-35 или зарубежные аналоги)
Кнопка SB1 - любая тактовая кнопка (например, KAN0610-0731B)
Джампер J1 (не устанавливается) -

После подачи питания устройство начинает работать сразу. Нажатием кнопки SB1 можно переключать режим работы RGB-светильника. Кнопку можно нажимать хоть до бесконечности - переключение режимов происходит по кругу.

Печатную плату легко изготовить с помощью маркера для плат . Так делал я. Если маркера для плат нет, то можно применить "карандашный" метод или цапонлак . Умеете делать платы ЛУТ’ом - ещё лучше.

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

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

Пояснения к схеме.

Транзисторы 2N7000 можно заменить на КП501А. Но стоит учесть, что у КП501А другая цоколёвка! Вот такая.

Защитный диод VD1 можно не впаивать в схему. Он служит для защиты схемы при неправильном подключении питания - переполюсовке. Если такая защита не нужна, то диод VD1 тоже не нужен.

Резисторы можно подобрать с номиналами, близким к указанным на схеме (стандартное допустимое отклонение ±20%). Я, например, устанавливал R1 на 130 Ом, а R2, R3 - 82 Ом.

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