" А сегодняшний урок дети, мы посвятим натягиванию презирватива на глобус… А что такое глобус? Вот с этого мы и начнем! "
&&
Этот эпиграф здесь не случаен. Столь древний анекдот вспомнился после написания прошивки на фоне тех трудностей, с которыми пришлось столкнуться. Нервы потрепало прыгающее напряжение вылазиющие из всех щелей.
Смею утверждать, что сие изделие в стоке, спасено только стараниями программистов.
Не понятно, почему не доработали схему сразу, как например в изделии 719.3777-07. Ссылка на статью о нем.
Прошивка пойдет и к этому реле, только надо будет внести в нее коррекцию под напряжение на делителе канала АЦП (7я нога МК), согласно таблицам приведенным ниже.
Куда вносить изменения, отвечу по дополнительной просьбе. Это будет зависеть от версии прошивки.
***************************
Начало истории с 719.3777-14 здесь.
Реле не выключало ДХО после остановки двигателя.
На сайте VK производителя, грозятся все это исправить. А что делать нам, у кого изделие ущербное? Правильно, писать свою прошивку.
Это первый мой проект, сконфигурированный с помощью MCC генератора от Microchip. Впечатление о нем не однозначное, есть плюсы. Можно быстро сконфигурировать МК, не глядя в даташит. Здесь очевидна экономия времени. Но сам полученный код, нужно прилично править. Оно и понятно, код предлагается универсальный, на все случаи жизни. Не понравилось, что простые операции, такие как запрет прерываний, либо остановка таймера…, производится вызовом функции. Это проще сделать, сбросом единственного бита.
В ручную, проект можно собрать оптимальней, особенно если уже есть наработанные собственные библиотеки.
Но это уже тема для обсуждения на профильных форумах, которая превращена там в очередной флуд.
******************************
Доработки.
Прежде, необходимо заменить лампочку контроля включения дальнего света в приборке на светодиод, соблюдая полярность его подключения. После этого, становится понятным, когда включен режим ДХО, а когда дальний свет.
***
1.Тем, у кого ДХО гаснут не штатно, ( с большой задержкой, либо не гаснут вовсе), а в остальном, работа реле устраивает.
Из схемы необходимо выпаять только конденсатор С2. Возрастут пульсации. Может появиться посторонний "свист" в принимаемом сигнале "гаденькой" рации или приемника. В качественных изделиях, никакого свиста нет.
Перепрошивать изделие в этом случае, не нужно.
Можно припаять к площадке у четвертой ноги МК провод, и вывести его наружу по подобию канала габаритов, подцепив к концевику ручника.
Это решение мне не нравится. Из за риска примерзания колодок к барабану зимой, при длительных стоянках на ручнике. И к тому же, в инструкции об этом входе не слова. Он может работать не корректно.
******************************

******************************
2.Тем, у кого вышел из строя МК, и нет желания ничего менять. Либо МК цел, но хочется что то поменять, например яркость ДХО.
Выпаять конденсатор и прошится первой версией прошивки, внеся по желанию корректировки в исходном коде.
******************************
3.Тем, кому необходим канал по отслеживанию зажигания, например для заряди АКБ не снимая клемы, тот паяет два резистора, примерно как на рисунке ниже. И заливает версию прошивки 2.1. Конденсатор выпаивать не надо.
На торчащие провода, ( на фото) внимания обращать не надо, они распаяны для внутрисхемного программирования.
220кОм+10кОм+86я нога реле соединяются вместе( на других авто, плюсом может быть 85я нога, тогда паять надо туда) . Свободный вывод 220 кОм, паяем на 4ю. ногу МК, там есть площадка. Свободный вывод 10 кОм, на левый край конденсатора, как на рисунке. Это будет минус МК Vss.

******************************
Примечания.
*Внимание! При симуляции проекта в Proteus, после каждого нового запуска PWM, либо при новом "запуске" двигателя какого то … удваивается частота NCO. На практике такого нет, поэтому это надо принимать как глюк симулятора.
**В исходном коде применен обработчик кнопок, с излишними возможностями для поставленной задачи. В его основе лежит принцип "вертикальных счетчиков" Я его некогда писал под полную совместимость с "Тимофеевским" обработчиком. И последний, к этому проекту подходит больше. Он менее энергозатратен чем мой.
Для замены в проекте функции обработчика кнопок на Тимофеевскую ( Ник_Нэйм Tester), достаточно мой buttons.c файл, заменить на его. Компетентные люди, могут его даже несколько порезать.
Подробности здесь.

******************************
Приведу исходник в двух вариантах .
1. По отслеживанию состояния запущенного двигателя через канал АЦП, почти равнозначна штатной.
2. Более правильный, с отслеживанием включения зажигания по сигналу на 4-ой ноге МК. И отслеживанию запуска-останова двигателя по 7-ой ноге МК. Здесь потребуется небольшая доработка, см рисунок выше).
********************************************************
Вариант №1.
Первый релиз, с которым уже можно работать в сторону его модернизации. Вполне рабочая версия.
Испытания прошли успешно.
Скачать проект V1.0 в MPLAB + Proteuc. Для любителей поколупаться в исходниках, где пока творческий бардак с прицелом на другие версии.
На испытании версия V1.1 где в отличии от штатной:
— плавный розжиг дальнего из положения габариты-вкл -> в положение дальний->вкл. При быстром включении дальнего света из положения PWM (ДХО вкл), яркость возрастет с порога 30%, без гашения ДХО.
Некоторые компиляторы могут ругаться на модифицированную function "_PWM3_LoadDutyValue" будто бы она нереентерабельная. И создает ее копию. Теоретически это так. Доступ к ней одновременно могут получить несколько процессов. Но внутри функции, есть разграничение по задачам. Этот небольшое недоразумение, устраню, что бы глаз не мозолило. Но даже если оставить как есть, ничего страшного не произойдет.
<<./pwm3.c: 36: non-reentrant function "_PWM3_LoadDutyValue" appears in multiple call graphs and has been duplicated by the compiler>>
***********************************************************
Вариант №2.
С ней уже можно заряжать аккумулятор, не отключая его от борт сети автомобиля. Внедрен канал по отслеживанию зажигание вкл-выкл. Необходимо внедрить только два резистора, и перепрошить реле.
Испытана версия V2.1, c которой С2 выпаивать не надо.
***********************************************************
Поскольку применена мощная функция подавления дребезга кнопок, информация о включенных габаритных огнях, может прилететь позже информации о включенном дальнем, из за резкого поворота переключателя. В обработчике подавления дребезга, вполне может быть, что включенные габариты будут "дрожать" дольше контактов включения дальнего света. Этот момент, блокирован программно .
Хочу дополнить в следующем релизе:
— если забыли выключить дальний и заглушили двигатель, то при следующем запуске он не загорится. Для его активации, надо перещелкнуть крутилочку;
— убрать "ступеньку" при быстром переходе и режима"дальний" в режим "ДХО". Выполнено.
Хочу дополнить в следующей версии:
— блокировку запуска реле при выключенном зажигании, в момент когда идет зарядка АКБ, без снятия клем;Выполнено.
-написать код под исключенную из схемы сборку D2 (перемычка вместо нее, и упадет порог срабатывания ДХО), во имя избавления от пульсаций.
Функции со временем перепишу покрасивше, но пока идет отладка, в нынешнем представлении, они более удобнее.
Ниже следующий код заслуживает подробных комментариев.
void main(void) {
SYSTEM_Initialize();
Task_Buttons();
Task_Buttons();
Task_Buttons();
Task_Buttons();
/* В момент инициализации, вызываем четыре раза функцию обработчика кнопок. Ровно столько надо, что бы *прописались события и состояния кнопок, в момент подключения реле. Это послужит "защитой от дураков"
* (не оскорбление, а фраза среди программистов), на случай, если реле "воткнуть" при включенном *зажигании, или того паче, с работающим двигателем.
*/
INTCONbits.GIE = 1;
while (1) {
if (tic_ButtonsTimeout >= 5) {
tic_ButtonsTimeout = 0;
Task_Buttons();
\* После входа в главный цикл, вызываем обработчик кнопок, каждое шестое прерывание*/
signed char convertedValue_b = Boundary_Voltage; //Boundary voltage 13.3 && 12.9 volts
/* создаем переменную-буфер, в которой по переменно, в зависимости от условий, будет храниться пороговое напряжение включения, либо выключения ДХО. */
Эти напряжения можно выставить по "вкусу" в файле mmc.h в строках:
#define HI_BOUNDARY_VOLTAGE 83 //13.3v
#define LO_BOUNDARY_VOLTAGE 100 //12.0v
Согласно таблице или графика на рисунке.
//******************************************************************************
//15.0v=61=ADRESH
//14.5v=68=ADRESH
//14.0v=74=ADRESH
//13.8v=77=ADRESH
//13.5v=81=ADRESH
//13.3v=83=ADRESH
//13.0v=87=ADRESH
//12.9v=88=ADRESH
//middle step=1.3/0.1v
//******************************************************************************
signed char convertedValue = 0x00;
/* Переменная для возвращаемого реального значения старшего регистра ADRESH. Младший нам не нужен, в нем по сути мусор. Можно даже смело отщипнуть еще два младших бита от ADRESH*/
ADC_Read();
convertedValue = ADRESH;
/* Читаем ADC, результат в переменную, позже перепишу это на покрасивше*/
convertedValue_b -= convertedValue;
// Считаем разность между буфером и реальным значением ADRESH
if (convertedValue_b >= 0) {
// Если оно больше нуля, то двигатель запущен.
Flag.engine_started = 1;
} else {// иначе не запущен
Flag.engine_started = 0;
}
convertedValue = 0;
if (Button_jpEngineStarted) {
di();
m_Buttons.uiJustPressed & = 0xFB; }
/* Отнимаем от среднего значение ADRESH, его реальное значение. И если оно больше нуля, поднимаем флаг запущенного двигателя, если меньше, сбрасываем его. Эти флаги, попадают в обработчик кнопок, где отслеживается их состояние. И если эти значения совпадут четыре раза, тогда в переменных событий и состояний кнопок, появится единица во втором бите. Таким образом, получаем виртуальную кнопку Button_EngineStarted Запись такого вида будет означать ее реальное состояние. Запись вида Button_jpEngineStarted кнопка только что нажата(just pressed=jp). Ее надо сбрасывать после обработки, маской m_Buttons.uiJustPressed & = 0xFB; Аналогично и для события кнопка только что отпущена Button_jrEngineStarted(just released=jr) */
*********************************
Кнопки габаритов и зажигания инверсные. Т.е. нажато- выключено ( на входе делителя нет +12в) . Отжато- включено ( есть +12 на входе делителя, а на входе МК +5ть вольт).
Остальной код в объяснениях не нуждается. Все основные функции распределены по своим Си и хеадер файлам, поэтому здесь не видны.
Там где предстоит работа с буферными регистрами, запрещаются прерывания. Делается это во избежании не атомарного доступа к переменным.
**********************************
Радует, что в PIC этой серии, не надо заботится о сохранении калибровочной константы.
Выписка из PIC12(L)F1501/PIC16(L)F150X Memory Programming Specification
3.4 Calibration Words
The internal calibration values are factory calibrated
and stored in Calibration Words 1 and 2 (8009h,
800Ah).
The Calibration Words do not participate in erase
operations. The device can be erased without affecting
the Calibration Words.
В файле mcc.h ( во второй версии, эта секция вынесена в отдельный файл) в строках инклудов, можно менять настройки, а именно:
— время задержки включения ДХО после запуска двигателя и после его остановки;
-скорость изменения нарастания яркости;
-порог напряжения срабатывания ДХО.
#ifndef MCC_H
#define MCC_H
#define _XTAL_FREQ 16000000
#define INTERRUPT_TIC_SEC 8190 // number of interrupts per second
#define TIME_DRL_DELAY_START 3 //sec => delay time start in seconds
#define DRL_DELAY_START (INTERRUPT_TIC_SEC * TIME_DRL_DELAY_START)
#define TIME_DRL_DELAY_STOP 1 //sec => delay time stop in seconds
#define DRL_DELAY_STOP (INTERRUPT_TIC_SEC * TIME_DRL_DELAY_STOP)
#define BOUNDARY_VOLTAGE 77// The threshold trigger voltage of the DRL
#define SPEED_INCREASE_BRIGHTNESS 16//41=>1.00sec=>30%PWM=> TIME = 0.0244sec*SPEED_INCREASE_BRIGHTNESS
Скорость изменения яркости написана в условных единицах. Для написания макроса под перевод в секунды (доли секунды), необходимо заморачиваться с вещественными числами. Труд не каторжный, но все таки труд. К тому же, надо подключать еще и доп файлы к проекту, а это расход памяти. Пересчет не сложно выполнить по приведенной в комментариях формуле самостоятельно.
***********************************
Расход системных ресурсов после написания первого релиза.

График зависимости значения в регистре ADRESH от напряжения на контактах реле 85&86.

График зависимости значения напряжения на 7й ноге МК от напряжения на контактах реле 85&86.

Схема подключения программатора, с подачей внешнего питания +5в. Не забывайте:
— нумерация выводов с права на лево;
— снять ( в некоторых программах прошивальщиках установить) галку информирующую о подключении внешнего питания ( питание не от целевого устройства).


*************************************************************************************************
Теги. Tags.
Автоматическое включение дальнего отзывы.
ДХО 30%
ЭНЕРГОМАШ 719.3777-14 схема прошивка обзор отзывы.
719.3777-13, схема прошивка обзор отзывы.
719.3777-10, схема прошивка обзор отзывы.
719.3777-07 схема прошивка обзор отзывы.
Реле РАССВЕТ-14 схема прошивка обзор отзывы.
****************************************************************************************************
Заметки для себя, к данной статье они ни каким боком.
Перемыкаю диоды по минусу- после запуска ДХО кратковременно и гаснет.
Диод между + через лампочку и + по питанию не помогает. ( 87 и 86) Перемычка то же не помогает.
Комментарии 19
PIC одинаковый.
А изделие не совсем. Подтяжка на включение света разнополярная у них.
MOSFET по большому счету по барабану какая у него полярность на D & S.Но сам алгоритм управления, может быть иным.
Моей прошивкой перепрошьется, но будет ли работать верно, не скажу. Я бы не рисковал.
Может быть MOSFET "P chanel" тогда и управлять им надо по другому. Да мало ли что еще.
Что бы точно ответить на подобные вопросы, необходимо иметь подобное изделие на руках. Вспомнить, что там у меня в прошивке.
Как реализовано управление ШИМ и подача его на выходной каскад.
И под мою прошивку, придется доработать само реле.
Еще вопрос. А как вы разобрали реле или просто сломали корпус? Подозреваю, что на выходе из корпуса, переломлен провод на габариты, возможно из за этого и не выключались ДХО, так как нет контакта и при включении габаритов, реле не понимает, что нужно отключаться)))
Разбирается оно как также как и обычное автомобильное реле. Корпус на защелках.
Вряд ли провод оборван.
Прошивка там кривая.
Да разобрал уже, перепаял провод, скорей всего прошивка… Получается ваша прошивка не пойдет на мою релюху? Нужно еще программатор сделать)))
Azovsky2
Разбирается оно как также как и обычное автомобильное реле. Корпус на защелках.
Вряд ли провод оборван.
Прошивка там кривая.
С виду они идентичны, вот 13-я
Azovsky2
Разбирается оно как также как и обычное автомобильное реле. Корпус на защелках.
Вряд ли провод оборван.
Прошивка там кривая.
Привет! Подскажите, а в чем может быть причина не выключения реле (719.3777-13), т.е. включается но при включении габаритов не выключается? Снял, лежит в коробке…сегодня еще раз попробую поставить, может, что изменилось)))
Все ваши доработки применимы к реле 719.3777-13?
Я уже не помню что там в 13м. Экспериментировал с 14м и 07м. Давно это было. Мысли уже в других проектах.
Но в 14 и 07 помимо железа, косяки еще и самой прошивке. Само реле надо доработать и писать под доработанное, прошивку за ново. Сложного там нет ничего. За основу можно взять мой код к 14му реле.
При его написании впервые использовал MPLAB® Code Configurator (MCC). Автоматический генератор кода, и в последствии пожалел. Он получился дутым. В ручную будет куда компактней.
*
>>Все ваши доработки применимы к реле 719.3777-13?
Все зависит от схемы освещения конкретного автомобиля. Если при выключении зажигания исчезает масса на реле, то не помогут. надо переписывать прошивку.
В 13 реле полярность наоборот, 30-плюс, 87-минус
Azovsky2
Я уже не помню что там в 13м. Экспериментировал с 14м и 07м. Давно это было. Мысли уже в других проектах.
Но в 14 и 07 помимо железа, косяки еще и самой прошивке. Само реле надо доработать и писать под доработанное, прошивку за ново. Сложного там нет ничего. За основу можно взять мой код к 14му реле.
При его написании впервые использовал MPLAB® Code Configurator (MCC). Автоматический генератор кода, и в последствии пожалел. Он получился дутым. В ручную будет куда компактней.
*
>>Все ваши доработки применимы к реле 719.3777-13?
Все зависит от схемы освещения конкретного автомобиля. Если при выключении зажигания исчезает масса на реле, то не помогут. надо переписывать прошивку.
Доброго времени, заказал себе реле 719.3777-13, ожидаю на днях должно прийти, как думаете за год исправили они свои косяки по реле?да и думаю ваши посты до производителя дошли100%.
Доброго. Читали, это точно. Но продали право производства другой компании. У них есть страница VK, почитайте свежие отзывы. Не слежу за ними.
Изделие заявлено как универсальное. А все универсальное не идеально, и не настроено под отдельную марку авто.
Ок, спасибо.Реле получил, опробывал, работает как в описание.
Добрый день, а может подскажите, какой аналог из реле ДХО можно взять? Может сталкивались еще с какими-то :)
Аналогов масса, от заводских до самодельных. Из линейки от фирмы "12 вольт", ныне именуемой "Рассвет", можно подобрать "на любой вкус".
Все зависит от электро схемы конкретного автомобиля.
Главным условием является способ включения дальнего света. Плюсом или минусом. Типоразмер устройства второстепенен. Но его тоже надо учитывать, что бы свести к минимуму затраты по его внедрения в автомобиль.
В идеале все действия должны сводиться к замене штатного реле дальнего света на подобное изделие и подключение его дополнительного проводника в цепь габаритных огней.
Спасибо за ответ.
Машина — Лада Калина 1.
Я склонялся вот к этому www.12vi.ru/773/947/9117.html пока не прочитал ваши посты :) Теперь вот в раздумиях.
Видел еще какой то вариант с названием ДХО-30 elangltd.ru/katalog/avtom…/rele-elektronnoe-dho-30/ но он требует хоть и минимального, но влезание в проводку, что не хотелось бы.
На Калине оно может нормально работать. Почитайте статьи о работе этого реле на данном автомобиле.
Это на Акценте и на некоторых других авто, "исчезает масса". У меня в пред идущей статье все расписано. А в этой статье рекомендация, как его модернизировать. Всего лишь конденсатор выпаять. И недуг исчезнет.
Если хочется алгоритм к зажиганию привязать -тогда перепрошивка.
****
Второе реле по вашей ссылке выгодно отличается ценой. К тому же указано, что оно конкретно для Калины. И судя по количеству выходящих из его недр проводов, имеет кроме слежения за габаритами, другие каналы.
Покупать или нет, решает каждый сам. Статья рассчитана на того, у кого подобное реле уже есть и "болеет" болезнями описанными в предыдущий статье.
Работа заслуживающая похвал, но я теперь сижу и думаю, а надо ли мне покупать это реле и потом все это делать, ведь гавененькие маяковские h4 стоят на 200 тенге больше пачки сигарет в нашей стране. P.S. Салам из Казахстана.