One-touch поворотники, они же Ленивые Поворотники |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
One-touch поворотники, они же Ленивые Поворотники |
8.3.2010, 17:37
Сообщение
#601
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
* * *
Данная разработка и любая ее версия являются собственностью лично Сергей SSh и компании Amadeus Project. Авторы не против самостоятельного повторения данной разработки и любой ее версии в личных целях. Авторы категорически против коммерческого применения данной разработки любой версии любым другим лицом кроме владельцев. * * * Решил все-таки открыть новую тему, чтоб не устройство не затерялось на задворках старой (IMG:style_emoticons/default/wink.gif) В той теме (http://forum.amadeus-project.com/index.php?showtopic=1203) была поставлена задача заставить моргать поворотник определенное число раз при легком касании к рычагу (не фиксируя его при этом) плюс автоматически включать аварийку при движении задним ходом. Детальное изучение сигналов подрулевого ЭБУ показало, что все команды он воспринимает путем сканирования поступающих с контактов (поворотника, габаритов, стеклоочистителей). Так, что, простыми средствами словить нужный сигнал никак не получится. Для интересующихся, выкладываю осциллограммы сигналов Сам импульс: pulse1.jpg ( 47 килобайт ) Кол-во скачиваний: 355 Их последовательность: pulse2.jpg ( 45,91 килобайт ) Кол-во скачиваний: 213 После изготовления нескольких вариантов устройства на обычных элементов окончательно удостоверился в бесперспективности этого направления и было решено применить МК. Разработка и изготовление устройства вместе с прошивкой заняло чуть более часа (сравнить с 2-мя неделями...). Сегодня испробовал на машине - работает отлично. Выкладываю схему и прошивку. Небольшой нюанс - на очень быстрое касание рычага устройство не реагирует, поворотник моргнет 1 раз, для серии миганий надо придержать рычаг в течении примерно пол-секунды. При установленном значении переменной PulseTime (см. ниже - 3000мс = 3сек.) времени хватает на 4 "тик"-а. Для любого другого числа просто надо скорректировать указанную переменную из расчета 0,7 сек. на одно подмигивание (по крайней мере на моем авто частота такая, измерял). Разводку пока не делал, т.к. хочу на той же плате смонтировать регулятор частоты взмахов стеклоочистителя, но схема настолько примитивна, что развести её не составит труда. Причем если что, то можно (как уже где-то писал) можно развести как удобно, просто потом сделать соотв. поправки в прошивке. Схема: circuit.JPG ( 22,69 килобайт ) Кол-во скачиваний: 432 Готовое устройство (IMG:style_emoticons/default/biggrin.gif) turn_signal.jpg ( 148,77 килобайт ) Кол-во скачиваний: 288 Точки подключения к подрулевуму ЭБУ: ECU_Board.jpg ( 50,84 килобайт ) Кол-во скачиваний: 253 Исходник прошивки: Код '*********************************************
'* 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 ***** |
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|