![]() |
![]() |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
![]() |
![]()
Сообщение
#1
|
|
Технический Маньяк-Гуру ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Технический Маньяк Сообщений: 7049 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: ![]() ![]() ![]() |
* * *
Данная разработка и любая ее версия являются собственностью лично Сергей SSh и компании Amadeus Project. Авторы не против самостоятельного повторения данной разработки и любой ее версии в личных целях. Авторы категорически против коммерческого применения данной разработки любой версии любым другим лицом кроме владельцев. * * * Решил все-таки открыть новую тему, чтоб не устройство не затерялось на задворках старой (IMG:style_emoticons/default/wink.gif) В той теме (http://forum.amadeus-project.com/index.php?showtopic=1203) была поставлена задача заставить моргать поворотник определенное число раз при легком касании к рычагу (не фиксируя его при этом) плюс автоматически включать аварийку при движении задним ходом. Детальное изучение сигналов подрулевого ЭБУ показало, что все команды он воспринимает путем сканирования поступающих с контактов (поворотника, габаритов, стеклоочистителей). Так, что, простыми средствами словить нужный сигнал никак не получится. Для интересующихся, выкладываю осциллограммы сигналов Сам импульс: ![]() Их последовательность: ![]() После изготовления нескольких вариантов устройства на обычных элементов окончательно удостоверился в бесперспективности этого направления и было решено применить МК. Разработка и изготовление устройства вместе с прошивкой заняло чуть более часа (сравнить с 2-мя неделями...). Сегодня испробовал на машине - работает отлично. Выкладываю схему и прошивку. Небольшой нюанс - на очень быстрое касание рычага устройство не реагирует, поворотник моргнет 1 раз, для серии миганий надо придержать рычаг в течении примерно пол-секунды. При установленном значении переменной PulseTime (см. ниже - 3000мс = 3сек.) времени хватает на 4 "тик"-а. Для любого другого числа просто надо скорректировать указанную переменную из расчета 0,7 сек. на одно подмигивание (по крайней мере на моем авто частота такая, измерял). Разводку пока не делал, т.к. хочу на той же плате смонтировать регулятор частоты взмахов стеклоочистителя, но схема настолько примитивна, что развести её не составит труда. Причем если что, то можно (как уже где-то писал) можно развести как удобно, просто потом сделать соотв. поправки в прошивке. Схема: ![]() Готовое устройство (IMG:style_emoticons/default/biggrin.gif) ![]() Точки подключения к подрулевуму ЭБУ: ![]() Исходник прошивки: Код '*********************************************
'* Name : Turn.bas * '* Author : SSh * '* MCU : PIC12F675 * '* OSC : Internal, 4MHz * '* Date : 07.03.2010 * '* Compiler : PicBasic Pro 2.60 * '* Description: Turn signal one-touch system * '********************************************* ' +5V - 1 -|Vdd GND|- 8 - Ground 'RightIn - 2 -|GP5 GP0|- 7 - Rear 'LeftIn - 3 -|GP4 GP1|- 6 - RightOut '+ 10kOhn - 4 -|MCLR GP2|- 5 - LeftOut '**************************************************************************** *** ' ## Set MCU & OSC - Internal, GP4 - I/O, GP5 - I/O ## @ DEVICE pic12F675, INTRC_OSC_NOCLKOUT DEFINE OSC 4 ' Internal Freq. 4 MHz 'Variables Left VAR WORD Right VAR WORD ' I/O Ports LeftIn var GPIO.4 LeftOut var GPIO.2 RightIn Var GPIO.5 RightOut var GPIO.1 Haz Var GPIO.0 'Constants PulseTime con 3000 ' Delay time = 3s, 3...4 pulses TRISIO = %111001 ' RA1, RA2 - Output ANSEL = 0 ' All pins - digital CMCON = %00000111 ' Comparators - Off GPIO = 0 pause 500 ' Start-time pause ' ################################## ' ### Main part, working forewer ### ' ################################## main: PULSIN RightIn, 1, Right ' Look for pulse if Right < 8 Then ' Pulse not found gosub RightTurn ' Turn on right turn-signal Endif PULSIN LeftIn, 1, Left if Left < 8 Then ' Turn on left turn signal gosub LeftTurn Endif If Haz = 0 then gosub hazard endif GOTO main ' Loop ' ### End of main part ### ' ################### ' ### Subroutines ### ' ################### RightTurn: RightOut = 1 pause PulseTime RightOut = 0 lloop: PULSIN RightIn, 1, Right if Right < 8 Then goto lloop Endif return LeftTurn: LeftOut = 1 pause PulseTime LeftOut = 0 rloop: PULSIN LeftIn, 1, Left if Left < 8 Then goto rloop Endif return hazard: hloop: if Haz = 0 then RightOut = 1 LeftOut = 1 goto hloop else RightOut = 0 LeftOut = 0 endif return END ' ***** End of Program ***** |
![]() |
|
![]() |
![]()
Сообщение
#2
|
|
Технический Маньяк-Гуру ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Технический Маньяк Сообщений: 7049 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: ![]() ![]() ![]() |
Разводка, правда не мешало бы перепроверить хотя бы визуально:
http://ssh1957.narod.ru/turn/turn_signal.LAY ссылку удалил, рабочая разводка ниже, в сообщении #14 На разводке в левом верхнем углу дорожка проведена не "по-русски". Я это сделал с целью перевода запуска аварийки на "корпус". Надо будет просто перерезать дорожку, идущую от 10кОм на корпус и соединить верхний по схеме вывод этого резистора с выводом соседнего. И вместо 20кОм поставить перемычку. Только что заметил, что в исходнике как раз установлен такой запуск. Строка If Haz = 0 then Для запуска от +12В надо If Haz = 1 then Небольшая поправка в схеме, на разводке уже учтена ![]() 2 Haris67, Нужен программатор, в сети куча схем, софта и описаний процедуры прошивки. Ничего сложного нет в принципе, думаю - справишься (IMG:style_emoticons/default/wink.gif) Насчет премии - это лишнее (IMG:style_emoticons/default/wink.gif) , я бы тебе и так переправил, тем более, что после того как приобрел аж 2 USB-шных программатора - один совмещенный с development board, так, что на одной плате сразу и программируешь и проверяешь МК в работе, так вот, несколько собранных до этого СОМ-овских программаторов без дела валяются дома (правда не помню, может я оттуда уже кое-что посдирал, но это не важно - можно припаять обратно). Проблема в самой отправке, я недавно высылал небольшую плату по почте, так во-первых еле нашел отделение где согласились принять, да и то со скрипом. Не знаю, удастся ли во второй раз... Во всяком случае - поинтересуюсь. Но все же советую собрать самому - я уже рекомендовал - PonyProg, мало ли что придется прошивать в дальнейшем, хотя бы EEPROM приборки (IMG:style_emoticons/default/wink.gif) . PonyProg состоит из простенького базового блока, к которому можно приделывать адаптеры для прошивки различных типов микросхем (те программаторы, о которых я упоминал выше предназначены только для pic-контроллеров). Т.е если впоследствии встретится схема на Atmel - просто приделываешь небольшой блочок к существующему базовому и все. Опять же в сети есть бесконечное множество модификаций Пони, со схемами, разводками, рекомендациями по сборке, так, что проблем не должно возникнуть. |
![]() |
|
![]() ![]() |
![]() |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2025 Форум Технических Маньяков. |
|