Введение
Предлагаю интересную схему указателя поворотов, которую можно установить практически на любое транспортное средство - скутер, мотоцикл, автомобиль и даже гужевую повозку. Конечно, если на последней имеется 12-ти вольтовый источник питания.
Указатель поворотов выполняет следующие функции:
- удлинитель поворотов,
- сигнал "Спасибо",
- "аварийка".
Схема указателя поворотов
Устройство сделано на микроконтроллере AVR ATtiny13. Для уменьшения энергопотребления он тактируется от внутреннего RC генератора частотой 128 кГц. При программировании прошивки, нужно выставить соответствующие fuse биты и отключить внутренний делитель частоты.
Также для снижения энергопотребления в схеме применен специальный стабилизатор NCV4274, в котором собственный ток потребления не превышает ~150 мкА. Если такого стабилизатора нет в наличии, можно заменить его обычным линейным стабилизатором, например, популярной микросхемой LM7805.
VT2, VT4 - биполярные n-p-n транзисторы общего назначения BC547. VT1, VT3 - полевые транзисторы p-типа. Я использовал IRFR5305.
S1 - кнопка для сигнала "спасибо" и включения режима аварийки. S2 - переключатель поворотников. Питание для переключателя поворотов лучше брать от замка зажигания, а то при выключенном зажигании поворотники будут включаться.
Все резисторы мощностью 0,125 Вт.
Описание работы
При подачи питания устройство находится в режиме ожидания.
Кратковременное нажатие переключателя S2 включает функцию удлинителя поворотов - соответствующий поворотник моргнет три раза. Это удобно использовать при быстром перестроении транспортного средства. При включении поворотов с фиксацией все работает как в штатном режиме - соответствующий поворотник будет непрерывно моргать.
Короткое нажатие кнопки S1 включает сигнал "Спасибо"- поворотники моргнут три раза. Длительное нажатие S1 включает режим "аварийки", а кратковременное выключает его.
Программа
При небольших знаниях по Си и наличии среды разработки (Atmel Studio 6.1), количество "морганий" при кратковременном включении поворотников и в режиме "Спасибо" можно легко изменить. Они определены в основном Си файле как:
#define LED_BLINK_SHORT_TURN 3
#define LED_BLINK_THANK 2
Там же можно поменять период моргания поворотников. Сейчас он составляет 150 * 2 мс.
#define LED_BLINK_PERIOD 150
Демонстрация работы
{youtube}BJzf-xbCqCs{/youtube}
Исходник проекта и прошивка
Turn-Signal-As6.rar
Turn-Signal-firmware.rar
Автор устройства - Юрий Гузиенко. Прошивку написал я.
Comments
Вопросы можно задать здесь.
CLKDIV8 - 1
CKSEL1 - 1
CKSEL0 - 1
По поводу подключения лучше ответит Юра.
В протеусе в настройках фьюзов нужно выбрать частоту 128кГц и выключить делитель частоты CKDIV8
Уменя почему-то неработает в протеусе.Или точнее работает но не корректно.При нажатии на кнопку "аварийка" начинают моргать оба канала и больше на другие кнопки реакции нет.Если нажать например "вправо" - моргает правый канал,выключить невозможно,при этом при включении "влево" начинает поочередно моргать оба канала,опять-же как-то выключить все это невозможно.
Уважаемые а кто-то собирал данную схему реально в "метале"?А то сынишка
Фьюзы ставлю:
High - 11111
Low - 01111011
При таком роскладе фьюзов ,по ISP перестает просматриваться .К заводским настройкам помагает только паралельный прогер.
И все-же хотелось поподробнее про фьюзы.
По ISP шью PonyProg + STK200/300
При переключении на низкую тактовую частоту, частоту программировани я тоже нужно сделать ниже. Иначе программатор не будет опознавать микроконтроллер .
Cпасибо в PonyProg "раздуплил".Над о зайти в папку PonyProg ,открыть файл PONYPROG2000.IN I в Блокноте,потом запись SPIBusSpeed = NORMAL (норм.)поменять на SPIBusSpeed = VERYSLOW (медлен.)и все контролер просматривается.
Юзаю дальше,потом отпишусь.
"Пляски с бубном" были от того ,что не поставил подтягивающий резистор на Reset.В заблуждение ввел Proteus,я подумал что он подтянут програмно.Cхему на принтер с Proteusa и вот результат...Ну сам виноват.
Спасибо за статью!
FUSE для PonyProg - rastamanoff.ucoz.ua/Povorotniki/fuse_povorotniki.gif
Можно, только не на базу, а на колектор vt2 и vt4 и транзисторы помощнее нужно будет поставить, например эти SS8050.
В CodeVisionAVR поставь галку только на SUT0.
Хотелось бы заполучить. Можно ссылочку на обменник какой?!
Sprint-Layout5. 0 не хочет открывать((
Самое главное, это нет отсечки - "отказ от маневра", а просто переключается в работу другого плеча. Это очень не правильно и не удобно.
Было бы хорошо добавить возможность программировани я системы физически, а не программно. Не каждый силен работой в среде программировани я.
Кнопка аварийки это вообще утопия. Надо переделать и её нельзя, как есть, использовать. В противном случае схема должна быть постоянно запитана, что не есть правильно (при выключенном зажигании аварийка не работает ???!!!).
Не всегда правильно влазить со своими наработками в систему электричества авто. Причем с конкретной заменой или удалением определенных схематических особенностей. Потому, как эта фича признанна быть популярной именно в среде автолюбителей классического включения сигнализации поворотов, то надо выходить с положения именно добавления, а не вырезания.
Кстати, для классики лентяйку та некто ещё и не предложил. Проблема в первую очередь из а за того самого реле поворотов. Если мне кто скажет, что мол уже придумали, я отвечу, что всё уже проверено - не работает, как нужно.
Как итог, могу сказать так: автор потрудился на славу с написанием программы и её физической реализации. Но это физическая реализация "на столе". Когда дело доходит до установки, то появляются бока.
Хотелось бы совместными усилиями побороть данные проблемы и сделать это устройство более фукциональным.
Разобрал нафиг. Переделал под себя. Но никак не могу побороть инсталляцию под своё реле в три ноги.
Ставил 2803 (разница не большая). Но эмуляция проекта в протеусе показала аналогичные резы.
Code:
soft_timer_state = STIM_WORKS;
soft_timer_coun t = LED_BLINK_PERIOD;
Прерывания разрешены. В обработчике вижу строки:
Code:
if(soft_timer_state == STIM_WORKS){
if (soft_timer_coun t){
soft_timer_coun t--;
}
else{
soft_timer_state = STIM_EXPIRED;
}
}
и, если прерывание произойдет между строками
Code:
soft_timer_state = STIM_WORKS;
soft_timer_coun t = LED_BLINK_PERIOD;
и переменная soft_timer_coun t была==0, то поимеем в конце концов состояние, когда
Code:
soft_timer_state = STIM_EXPIRED;
soft_timer_coun t = LED_BLINK_PERIOD.
Это, ИМХО, не есть хорошо.
Да и декрементироват ься переменная soft_timer_coun t в прерывании не будет.
Короче - непонятно.
Автор пожалуста свяжитесь со мной есть вопросы по даному изделию. Готов вас заинтересовать.
Какие вопросы? Чем заинтересовать?
если есть такая возможность жду от вас ответа на Е-Mail.
Зарание благодарен за ответ.
Какой Е-Mail? Вы же его не указали. По поводу переделки алгоритма обращайтесь к автору прошивки
2. включатся поворот должен при кратковременом нажатии и выключатся при повторном или при включении противоположног о или аварийки.
Вот такие меня интересуют изменения.
У меня форд БронкоII старичек. подруливой переключатель отсутствует. но мне достались с какой-то япошки подруливый лепестки переключения коробки передачь. механически я их туда поставлю легко а вот шоб они работали там надо вот такая прошивка.
мое мыло nightriders@bk.ru
Схему чери могу скинуть для ясности подключения.
Зарание огромное спасибо.
RSS feed for comments to this post