PIC 12F629 / 12F675. МИГАЮЩИЙ СВЕТОДИОД | ArduinoKit

PIC 12F629 / 12F675. МИГАЮЩИЙ СВЕТОДИОД | ArduinoKit Самолеты

Описание схемы

Красные, зеленые и синие светодиоды расположены в три ряда по три светодиода в каждом ряду. Светодиоды расположены на печатной плате в произвольном порядке для улучшения эффекта смешения цветов при помещении в рассеиватель, например, сферу из матового стекла.

При использовании источника питания 12В светодиоды защищены резисторами R1, R2 и R3.

N PN-транзистор (BC547) подключен к катоду каждой цепи светодиодов для включения и выключения. Микроконтроллеры управляют этими транзисторами. Транзисторы управляются с помощью ШИМ. S1 используется для выбора различных цветовых эффектов.

Существуют отдельные каналы (цвета). Используя эту технику, можно эффективно генерировать любой цвет. Для установки и изменения цветов ведется файл, который легко редактируется. Если вам это не нравится, вы можете сами отредактировать файл со своими настройками.

Основной цикл

В основном цикле проверяется состояние флага задания TF (бит 0x00) в
регистре FLAGS (по адресу 0x0E). Если флаг установлен (значение 1)
выполняется подпрограмма OUTPUT. после выполнения подпрограммы флаг
задания сбрасывается (значение 0).

Проверка значения бита в регистре осуществляется с помощью команды
«btfss FLAGS, TF». Команда тестирует бит в регистре, если бит установлен
в «1», то следующая инструкция не выполняется, а следующие 2 цикла
выполняется команда «nop» («нет операции»). Если бит имеет значение «0»
то выполняется следующая по порядку инстукция.

Поскольку следующая инструкция является командой безусловного перехода
на метку MAIN, то при сброшенном флаге задания TF продолжается
бесконечный основной цикл программы. При установленном флаге задания
выполняется команда вызова подпрограммы «call OUTPUT», таким образом
текущее значение счетчика команд (PC – «Program counter») помещается в
стек, и происходит переход на подпрограмму с меткой OUTPUT.

Возврат из подпрограммы происходит при выполнении инструкции «return»,
при этом значение адреса из вершины стека помещается в счетчик команд.
Стек имеет 8 уровней, таким образом, возможна вложенность (то есть вызов
одной из другой) до 8 подпрограмм (в том числе и подпрограмма обработки
прерываний).После возврата из подпрограммы флаг задания сбрасывается уже знакомой нам командой «bcf».

Pic 12f629 / 12f675. мигающий светодиод

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

В этой статье будет описана простая тестовая программа для микроконтроллера PIC12F675. Первым шагом в изучении языка программирования, будь то C, Visual Basic или любой другой, является написание программы, которая выводит на экран текст “Hello World”. Когда вы начнете изучать программирование микроконтроллера PIC, вы увидите не “Hello World”, а постоянно мигающий светодиод. “.

Инициализация

C LRF очищает содержимое регистра одной командой. Команды

clrf PORTAclrf PORTB

мы обнулим содержимое регистров, связанных с портами ввода-вывода PortA и
PortB. Это необходимо, поскольку при сбросе микроконтроллера они могут
получить случайные значения.Команда «bsf» предназначена для установки определенного бита в байте регистра. Таким образом при выполнении:

Bsf СОСТОЯНИЕ, RP0

в регистре STATUS бит RP0 примет значение 1. Регистр STATUS кроме того,
что содержит флаги результатов арифметических операций (ноль,
возникновение переноса), также отвечает за выбор банка памяти при прямой
адресации. Микроконтроллер PIC16F84A содержит 2 банка памяти
(начинающихся с адресов 0x00 и 0x80), специальные регистры расположены
как в первом, так и во втором банке. Установив бит RP0, мы сможем
обращаться ко второму банку памяти.

Во втором банке памяти нас интересует регистр TRISB, определяющий, какие
выводы порта PortB являются входами, а какие выходами. Установкой с
помощью команды «clrf TRISB» всех битов регистра TRISB в 0, определяем
все выводы PortB как выходы.

Команда “bcf” сбрасывает определенный бит в регистре, поэтому при команде

Cff СОСТОЯНИЕ, RP0

Мы снова можем обратиться к первому банку памяти.

Теперь необходимо изменить значения регистра:

  • OPTION_REG, который можно использовать для настройки таймера Timer0
  • INTCON, определяющего, какие прерывания разрешены в системе.

Команда «movlw b’11010111’» загружает в аккумулятор W число, с помощью
которого мы устанавливаем источник для тактирования таймера от
внутреннего генератора, подключаем предделитель к таймеру а также
устанавливаем коэффициент предделителя (подробности смотрите в
документации). Командой «movwf OPTION_REG» мы отправляем число из
аккумулятора в специальный регистр OPTION_REG.

Команда «clrf TMR0» сбрасывает значение таймера Timer0, далее его
значение будет инкрементироваться с частотой равной частоте цикла
микропроцессора, деленной на выбранный нами предделитель. При
переполнении регистра TMR0 будет происходить соответствующее прерывание.

Для разрешения прерывания от таймера в специальном регистре INTCON
необходимо установить бит T0IE, а для глобального разрешения прерываний,
необходимо установить бит GIE, что и делают команды:

bsf INTCON, T0IEbsf INTCON, GIE

Также во время этой фазы устанавливается счетчик циклов основной программы:

movlw 0x3Dmovwf COUNTER

В результате выполнения этих двух инструкций в ячейку памяти,
обозначенную как регистр COUNTER (адрес 0x0F) будет помещено число 0x3D.

Таким образом, начинается цикл программы и завершается инициализация.

Контроллер шагового двигателя на pic12f629 | оборудование, технологии, разработки

Контроллер шагового двигателя

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

Общее описание.

В контроллере шагового двигателя используется процессор PIC12F629. Он стоит всего $0,5 за вывод и представляет собой 8-контактный микроконтроллер. Несмотря на простую схему и низкую стоимость компонентов, контроллер обладает достаточно высокой производительностью и широкой функциональностью.

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

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

Вот несколько ссылок на статьи о шаговых двигателях, а вот ссылка для водолазов.

Для управления униполярным шаговым двигателем используется драйвер биполярного транзистора.

Схема контроллера униполярного шагового двигателя

Схема не требует особых пояснений. Он подключен к контроллеру PIC:

  • Кнопки ” и “-” (через аналоговый вход компаратора);
  • Сигнал ON (запуск двигателя);
  • Контроллер (транзисторы VT1-Vt4 , защитные диоды VD2-VD9).
Смотрите про коптеры:  Юный Папа - Купить большие радиоуправляемые самолеты в Самаре

P IC использует внутренний тактовый генератор. EEPROM хранят информацию, такую как режимы и параметры.

Биполярные транзисторы KT972 имеют схему управления, которая может коммутировать при токе до 2 А и напряжении до 24 В.

Контроллер распаян на макетной плате с размерами 45 x 20 мм.

Внешний вид контроллера

Транзисторы серии BC817 в корпусах SOT-23 можно использовать, если ток переключения не превышает 0,5 А. Я ожидаю, что устройство будет довольно маленьким.

Работа программного обеспечения и контроллера.

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

Использование контроллера довольно простое.

  • Когда сигнал “ON” активен (замкнут на землю), двигатель работает, а когда он неактивен (отсоединен от земли), он останавливается.
  • Когда двигатель работает (сигнал “ON” активен), кнопки ” ” и “-” изменяют скорость. Каждое нажатие кнопки ” ” увеличивает скорость на наименьшее значение, а каждое нажатие кнопки “-” уменьшает скорость, удерживая нажатой кнопку ” ” или “-“.
  • При каждом нажатии кнопки ” ” скорость увеличивается на наименьшее значение.
  • Нажатие кнопки “-” уменьшает скорость.
  • Удерживая нажатой кнопку ” ” или “-“, увеличивайте или уменьшайте скорость на 15 цифр в секунду.
  • Когда двигатель остановлен (сигнал ON не активен). При нажатии кнопки ” ” устанавливается режим вращения в прямом направлении. Нажатие кнопки “-” переключает контроллер в режим обратного вращения.
  • Нажатие кнопки “-” переводит контроллер в режим вращения вперед.
  • Нажатие кнопки “-” переводит контроллер в режим обратного вращения.
  • Чтобы выбрать режим полного или частичного шага, удерживайте кнопку “-” при включении питания контроллера. Режим управления двигателем меняется на другой режим (реверс). Просто удерживайте кнопку – в течение 0,5 секунды.

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

Схема контроллера униполярного шагового двигателя

При использовании низкопороговых MOSFET-транзисторов драйвер может иметь более высокие параметры. Использование MOSFET-транзисторов, таких как IRF7341, имеет ряд преимуществ.

  • Сопротивление транзисторов в открытом состоянии составляет менее 0,05 Ом. Это означает, что падение напряжения мало (0,1 В при токе 2 А), транзисторы не нагреваются, и для охлаждения не требуется радиатор.
  • Ток транзистора до 4 А.
  • Напряжение до 55 В.
  • Два транзистора размещены в 8-контактном корпусе SOIC-8. Поэтому для реализации контроллера требуется 2 небольших пакета.

Таких параметров невозможно достичь с помощью биполярных транзисторов. Я настоятельно рекомендую версию с MOSFET-транзисторами для коммутации токов свыше 1 А.

Использование униполярных шаговых двигателей с контроллером

Двигатели с 5, 6 и 8 обмотками могут работать в униполярном режиме.

Схема подключения для однофазных шаговых двигателей с 5 и 6 проводами (выводами).

Схема подключения 6 выводов

В двигателях FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57STH, FL57STH с 6-проводной конфигурацией обмотки выводы обозначаются следующим образом: Желтый, красный и синий.

 Обозначение вывода на схеме Цвет провода
 A черный
 0 желтый
 C зеленый
 B красный
 0* белый
 D синий

Контроллер

Существует 5-проводная конфигурация, в которой общие провода обмотки соединены непосредственно внутри двигателя. Такой тип двигателя существует. Например, PM35S-048.

Контроллер с PM35S-048

Здесь представлена документация в формате PDF для шагового электродвигателя PM35S-048.

Схема подключения 8-проводного однополюсного шагового двигателя (проводники).

Схема подклюючения 8 выводов

Как и в предыдущей версии, все соединения обмоток сделаны снаружи двигателя.

Какое напряжение выбрать для шагового двигателя.

В соответствии с законом Ома, фазный ток зависит от сопротивления обмотки.

U = Iфазы * Rобмотки

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

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

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

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

В качестве следующего шага, любой из выводов фазы может быть назначен на фазу А. Таким образом, у вас будет 8 вариантов на выбор. Вы можете перебрать их. Учитывая, что обмотка фазы В имеет другой средний проводник, варианты сужаются еще больше. Фазные обмотки не переключаются, поэтому драйвер или двигатель не выходят из строя. Двигатель дребезжит и не вращается.

Помните, что слишком высокая скорость вращения (не синхронная) имеет тот же эффект. Т.е. необходимо установить заведомо низкую скорость вращения.

Драйвер биполярного шагового двигателя со встроенным контроллером L298N

Биполярный режим обладает двумя преимуществами

  • Двигатель можно использовать практически с любой конфигурацией обмотки;
  • Вращающий момент увеличивается примерно на 40%.

Проектирование схемы биполярного драйвера с использованием дискретных компонентов – неблагодарная задача. Проще использовать встроенный контроллер L298N. Описание на русском языке можно найти здесь.

Вот схема контроллера с биполярным драйвером L298N.

Схема контроллера биполярного шагового двигателя

В комплект поставки драйвера L298N входит стандартная схема. Фазный ток до 2 a и напряжение до 30 вольт доступны с этой версией контроллера.

Биполярный шаговый двигатель подключается к контроллеру.

К этой функции может быть подключен двигатель с любой конфигурацией обмотки с 4, 6 или 8 выводами.

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

Схема 4 вывода

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH и FL57STH с 4-проводной конфигурацией обмотки провода имеют следующую цветовую маркировку

 Обозначение вывода на схеме Цвет провода
 A черный
 C зеленый
 B красный
 D синий

Электрический чертеж двухполюсного шагового двигателя с 6 проводами (выводами).

Схема 6 выводов

Цветовые коды для этих двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57STH, FL57STH с данной конфигурацией обмотки.

 Обозначение вывода на схеме Цвет провода
 A черный
 C зеленый
 B красный
 D синий

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

Схема биполярного шагового двигателя с 8 проводами (выводы).

Возможны два варианта:

  • При последовательном соединении
  • При параллельном соединении.

Схема, показывающая последовательное соединение между обмотками.

Схема 8 выводов

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

Диаграмма параллельных обмоток.

Схема 8 выводов

Параллельное соединение обмоток увеличивает фазные токи в два раза. Его преимущество заключается в низкой индуктивности фаз. Этого требует высокая скорость вращения.

Итак, выбор между последовательным и параллельным соединением для биполярного шагового двигателя с 8 контактами определяется:

  • Максимальный ток проводника;
  • Максимальное напряжение проводника;
  • Скорость двигателя.

На этой странице содержится прошивка для микросхемы PIC12F629.

Подпрограмма output

В данной подпрограмме выполняются все «полезные» действия, по которым мы
можем судить о функционировании микроконтроллерного устройства. Нам
необходимо получить на выходе вот такую функцию:

Смотрите про коптеры:  Аппаратура радиоуправления на Arduino

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

В подпрограммах содержатся инструкции:

OUTPUT decfsz COUNTER, Fgoto NOT0movlw 0x3Cmovwf COUNTERNOT0 movf COUNTER, Wcall TABmovwf PORTBreturn

Инструкция «decfsz» предназначена для организации циклов. Она
декрементирует содержимое регистра COUNTER, в случае если результат не
равен нулю, выполняется следующая по порядку инструкция (переходим на
метку NOT0), иначе в течение 2 циклов выполняется пустая инструкция
«nop», а затем в регистр COUNTER помещается начальное значение 0x3C
(заметьте, т.к. декремент регистра осуществляется до использования
значения этого регистра в программе, при инициализации мы задали
значение на 1 большее).

Значение регистра COUNTER помещается в аккумулятор W, после чего
осуществляется чтение из таблицы путем вызова подпрограммы инструкцией
«call TAB». При возврате из таблицы в W содержится необходимое нам
значение состояния выходов. Это значение записывается в регистр PORTB,
чем осуществляется вывод сигналов из микроконтроллера. Далее происходит
возврат из подпрограммы командой «return».

Подпрограмма обработки прерываний

При переполнении регистра таймера происходит переход на вектор
прерывания по адресу 0x0004 и запрещаются все прерывания (автоматически
сбрасывается бит GIE в регистре INTCON). Подпрограмма обработки
прерывания прежде всего должна обеспечивать сохранение содержимого
аккумулятора W и регистра STATUS при перед началом обработки прерывания,
и восстанавливать значения W и STATUS по окончании обработки. Это
необходимо для предотвращения их случайной модификации в подпрограмме
обработки прерывания.

Содержимое аккумулятора просто помещается в заранее выделенную ячейку памяти командой «movwf W_TEMP».Регистр STATUS может изменять свое значение при выполнении ряда
инструкций, поэтому применяется маленькая хитрость. Содержимое регистра
помещается в аккумулятор с перестановкой нибблов (полубайтов) командой
«swapf STATUS, W», а оттуда помещается в заранее выделенную ячейку
памяти командой «movwf STATUS_TEMP».

Восстановление содержимого W и STATUS в конце подпрограммы происходит в
обратном порядке. Содержимое ячейки памяти, хранящей содержимое регистра
STATUS помещается в аккумулятор с перестановкой нибблов командой «swapf
STATUS_TEMP, W», и из аккумулятора переносится непосредственно в
регистр STATUS командой «movwf STATUS».

swapf W_TEMP, F swapf W_TEMP, W

Причина использования команды “swapf” заключается в том, что она не влияет на флаги в регистре STATUS.

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

btfss INTCON, T0IFgoto ENDISRbcf INTCON, T0IFbsf FLAGS, TF

Если бит не установлен, то произойдет переход к инструкциям
восстановления содержимого W и STATUS на метку ENDISR. Если бит
установлен то мы его сбросим вручную командой «bcf INTCON, T0IF» и
установим флаг задания командой «bsf FLAGS, TF». Далее выполнятся
инструкции восстановления содержимого W и STATUS.

Простой регулятор на pic12f629 для коллекторного мотора

Говорю сразу я не минусил.

Итак, во-первых, как я понимаю это: “npn и pnp соответственно”? (На биполярный транзистор это влияет, а на полевые транзисторы нет).

Следующее: Где на материнских платах вы нашли ключи PNP “P-канал”?

И в-третьих, 3 кГц – это вовсе не “высокая частота”, и в процессе эксплуатации (я сам собирал такую) можно услышать “вой голодного волка”, поскольку 3 кГц – это “золотая середина” для человеческого слуха.

По ссылке ходил (сам нагуглил) еще в прошлом году, представим что я перешёл впервые; ………… нифига не понятно!! Чем прошивали контроллер? Какой прогой? Каким программатором?, Где пояснения по самой прошивке, ведь некоторые софты (прошиваторы) затирают константу в конце кода, а этот рег без наличия последней не работают, ибо тактовый генератор контроллера “сходит с ума” без константы которую ему зашивают с завода, неопытный радиолюбитель по незнатию может ведро “ПИКОВ” запороть. Почему не указано, что вместо того контроллера подходит и PIC12f675?
Кстати кто уже нагородил огород и рег не пашет гуглим по запроссу “восстановление константы PIC12f675”

Меня интересует, какую печатную плату вы рекомендуете – ЛУТ или фоторезист?

§

Прошивка

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

Таблица значений

Эта таблица содержит несколько инструкций по обслуживанию, а также фактические значения 60, которые нам нужны:

TAB addwf PCL, F
nop
retlw b'00100001' ;1
retlw b'00000001' ;2
………
retlw b'00001100' ;60

Принцип чтения из таблицы в следующем. При вызове таблицы мы поместили в
W значение – номер «ячейки» таблицы. В подпрограмме происходит сложение
младшего байта счетчика команд PCL и значения из W инструкцией «addwf
PCL, F». Таким образом в памяти программ произойдет переход к инструкции
с адресом PCL W.

Таким образом, в W мы имеем желаемое значение в результате отдачи от таблицы.

Инструкция «nop» применена для выравнивания значений в таблице, т.к. таблица не вызывается при W=0.Следует отметить необходимость контроля содержимого аккумулятора W при
вызове таблиц, чтобы не произошел переход за границы программы.

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

Управление

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

Нажав один раз, можно запустить и остановить текущую последовательность. Кнопку S1 можно нажать в любое время, чтобы остановить последовательность и изменить цвет. Повторное нажатие S1 запустит последовательность.

Двойное нажатие (в течение 0,5 секунды) выбирает следующую последовательность. При двойном нажатии на кнопку все светодиоды выключаются перед началом следующей последовательности.

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

Приблизительно 1,2 секунды нажатия и удержания кнопки S1 переведут микроконтроллер в спящий режим. Когда микроконтроллер переходит в спящий режим, выбранная в данный момент последовательность, отображаемый цвет и текущий статус удержания сохраняются в EEPROM. Для выхода из спящего режима удерживайте кнопку S1 около двух секунд, а затем отпустите ее.

Через несколько секунд после последнего нажатия кнопки S1 номер последовательности, значения RGB и состояние удержания текущей последовательности сохраняются в энергонезависимой памяти EEPROM микроконтроллера.

Смотрите про коптеры:  Лучшие бесплатные советники форекс, огромный выбор, результаты тестов

При следующем включении RGB-драйвера происходит считывание сохраненного номера последовательности. При повторном включении питания контроллер, который находился в режиме ожидания, включится и останется в режиме ожидания до повторного нажатия кнопки S1.

Управление дхо на микроконтроллере pic12f629 – схема-авто – поделки для авто своими руками

При запуске и остановке автомобиля устройство будет автоматически включать дневные ходовые огни (DRL). Для этого проекта используется простой и недорогой микроконтроллер PIC12F629. Устройство имеет звуковой сигнал и другие полезные функции.

Снимок1
Краткая логика работы устройства

1.Питание 12в
2.При вкл зажигания после прохождения 6 импульсов с датчика скорости вкл ДХО
3.При вкл габаритов все переходит в штатный режим
4.При выкл габаритов переходим п.2
5.При остановке (например в пробке) ДХО выключится через 3 мин при начале движения п.2
6.При остановке и выключении зажигания, ДХО горит ещё 20 секунд и выключается (вежливая подсветка).

Как работает прибор:

1. когда устройство выключено, светодиод HL1 мигает один раз в секунду (1 Гц), указывая, что устройство находится в ждущем режиме.

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

3.Во время остановки активируется режим задержки времени выключения света (3 минуты), об этом сигнализирует встроенный бипер (2 коротких гудка – это при включенном зажигании и остановке автомобиля), если в это время выключить зажигание (например, во время длительной стоянки), прозвучит 4 коротких гудка, сигнализирующих о том, что активирован режим задержки времени включения света на 20 секунд и затем они выключаются (режим вежливого освещения), устройство переходит в режим ожидания.

4. При включении габаритных огней устройство переходит в режим ожидания, ЛДГ отключаются (в соответствии с правилами дорожного движения), и все продолжает функционировать в обычном режиме.

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

Светодиод H L2 показывает, работают ли фары ближнего света (включен, если не работают).

Управление ДХО на микроконтроллере PIC12F629

Это устройство можно использовать для автоматической коммутации, если реле допускает максимальный ток 10 А.

БС

Если вы хотите использовать дополнительное реле, например, SLC – 12VDC – SL – C, максимальный ток контакта составляет 30A, что достаточно для управления BS. Диоды HL1 и HL2 должны быть установлены в удобном месте, например, на приборной панели. Кроме того, ЗУМ должен быть установлен в удобном месте. На рисунке схемы показаны светодиоды на печатной плате. Установка бесплатна!

 Управление ДХО на микроконтроллере  ДХО на микроконтроллере PIC12F629
!

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

С КАЧАТЬ… [16.6 КБ] – Рисунок печатной платы (LAY), демо-версию прошивки и модель под PROTEUS

Автор; Федор Бросалин

Формат данных цветовой последовательности

Этот файл содержит данные последовательности R GB. Чтобы отредактировать этот файл, вы можете добавить в него данные, удалить данные и изменить их. Убедитесь, что все соответствует описанию. Обратите внимание на маркеры “конец последовательности” и “конец всех данных” и убедитесь, что каждая строка данных последовательности содержит пять записей, разделенных запятыми. (см. скриншот ниже)

Перед вами полезная онлайн-утилита для моделирования последовательностей: RGB LED Simulator

Как видно из скриншота выше, маркер “end_of_all_data” обведен фиолетовым цветом, а те, кто отмечает конец последовательностей, обведены красным цветом.

Требуется минимум одна последовательность и максимум 256 индивидуальных последовательностей.

  1. Каждая строка данных начинается с директивы ассемблера dt (таблица данных).
  2. Все данные указываются с использованием десятичных значений.
  3. Каждое значение данных должно быть разделено запятой.
  4. Данные последовательности в каждой строке имеют пять полей: fade rate: скорость перехода цвета от текущих значений к новым. Каждый шаг происходит с интервалом 5 мс x Fade Rate. Значение скорости затухания 0 означает, что значения RGB будут обновляться немедленно без затухания. Значение скорости затухания не должно быть установлено на 255, кроме как для обозначения конца последовательности. (см. ниже) Время удержания: После завершения затухания происходит задержка перед переходом к следующей строке данных. Интервал 50 мс x время удержания Значение времени удержания 255 после скорости затухания 255 означает конец данных последовательности.Красное значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)Зеленый Значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)Значение синего ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод полностью горит)Обычно изменения яркости светодиода более заметны между 0 и 128, чем между 128 и 255.Конец текущей последовательности данных обозначается значением поля Fade Rate, равным “255”. Когда приложение обнаруживает это, оно начинает последовательность с самого начала. В конце всех доступных данных последовательности поля Fade Rate и Hold Time должны быть установлены на “255”.
  5. Fade Rate: скорость, с которой цвета переходят от текущих значений к новым. Каждый шаг происходит с интервалом 5 мс x Fade Rate. Значение скорости затухания 0 означает, что значения RGB будут обновляться немедленно без затухания. Значение скорости затухания не должно быть установлено на 255, за исключением случаев, когда оно указывает на конец последовательности. (См. ниже)
  6. Значение Fade Rate, равное 0, означает, что значения RGB будут обновляться немедленно без затухания.
  7. Значение Fade Rate не должно быть установлено на 255, кроме как для обозначения конца последовательности. (См. ниже)
  8. Время удержания: после завершения затухания происходит задержка перед переходом к следующей строке данных. Интервал 50 мс x время удержания Значение времени удержания 255 после скорости затухания 255 означает конец всех данных в последовательности.
  9. Значение времени удержания 255 после скорости затухания 255 означает конец_всех_последовательных_данных.
  10. Красное значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
  11. Зеленый Значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
  12. Значение ШИМ синего цвета. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
  13. Обычно изменения яркости светодиода более заметны в диапазоне от 0 до 128, чем от 128 до 255.
  14. Конец текущей последовательности данных обозначается значением “255” в поле Fade Rate. Когда приложение обнаруживает это, оно начинает последовательность с самого начала.
  15. В конце всех доступных данных последовательности оба поля Fade Rate и Hold Time должны быть установлены на “255”.

Отредактированный файл sequenceData.inc необходимо сохранить и перекомпилировать rgb101g3_main.asm. Полученный файл rgb101g3_main.hex может быть запрограммирован с помощью программатора микроконтроллеров PIC.

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector