Бегущие поворотники на arduino

08.01.2019
0
0
0
#1
Добрый день, единомышленники . Появилась идея собрать бегущие поворотники/стоп сигналы при помощи Ардуино и адресной светодиодной ленты. Не могу придумать как можно реализовать влечение поворотников / стопарей через педали. Честно, с Ардуино работаю ( буду работать ) первый раз , и не совсем понимаю его работу:(
Опыт в электротехнике есть , но не с Ардуино.
 
11.01.2019
1
0
1
#2
Главный вопрос будет как ты будешь импульсы получать от борт сети. Я пробовал динамические поворотники делать на 3х ватных диодах, из-за того что импульсы от реле поворотов приходят цыклически + шумы от генератора + импульс контроля целостности ламп. Ардуина не может на них корректно реагировать и всё летит коту под хвост(
 
#3
Я писал код на ассемблере для доп. стоп сигнала, но для микроконтроллера Pic16f84a. С ардуиной ещё только знакомлюсь. Сигнал брал с задних фонарей через сопротивление на вход МК. Стоп сигнал реализовать легко ( пришёл сигнал со стопа выводим анимацию на светодиоды, отпустили стоп - диоды погасли), а с поворотами чуть посложнее - на каждую вспышку поворотника срабатывает анимация бегущий огонь в ту или иную сторону , НО! важно один цикл потом ожидание до следующей вспышки ( так сохранится синхронность с поворотами). Могу скинуть весь алгоритм работы, останется только переписать в Си))) Видео не прикрепляется, можно найти в ютубе похожий проект: "стоп сигнал в спойлере ваз 2114"
 
#4
Я писал код на ассемблере для доп. стоп сигнала, но для микроконтроллера Pic16f84a. С ардуиной ещё только знакомлюсь. Сигнал брал с задних фонарей через сопротивление на вход МК. Стоп сигнал реализовать легко ( пришёл сигнал со стопа выводим анимацию на светодиоды, отпустили стоп - диоды погасли), а с поворотами чуть посложнее - на каждую вспышку поворотника срабатывает анимация бегущий огонь в ту или иную сторону , НО! важно один цикл потом ожидание до следующей вспышки ( так сохранится синхронность с поворотами). Могу скинуть весь алгоритм работы, останется только переписать в Си))) Видео не прикрепляется, можно найти в ютубе похожий проект: "стоп сигнал в спойлере ваз 2114"
Если есть алгоритм именно для поворотников присылай конечно.буду пробовать, а то у меня умные мысли закончились(
 
#5
Код в ассемблере с описанием, по аналогии можно переписать под ардуину:

Код с оформлением (BB-коды):
Start   btfsc    porta,0; проверяем ногу к которой подключен правый поворот
        goto    chl1;    если есть сигнал, то идем к метке сh1
        goto    chl2;    если сигнала нет, то идем к метке ch2
        
ch1     btfsc    porta,1; проверяем ногу к которой подключен левый поворот
        goto    avar ;   если есть сигнал, то выводим аним-ю аварийки
        goto    right ;  если сигнала нет, то выводим аним-ю прав.поворота

ch2     btfsc    porta,1; проверяем ногу на которой подключен левый поворот
        goto    left  ;  если сигнал есть, то выводим аним-ю лев. поворота
        btfsc    porta,2; если сигнала нет, проверяем нет ли сигнала на ноге к которой подкл. стоп
        goto    brake ;  если сигнал есть, то выводим аним-ю стоп сигнала
        btfsc    porta,3; если сигнала нет, проверяем ногу к которой подключен задний ход
        goto    rev ;    если сигнал есть, то выводим аним-ю зад.хода
        goto    start;   если сигнала нет, то идем на метку start
 
#6
Код в ассемблере с описанием, по аналогии можно переписать под ардуину:

Код с оформлением (BB-коды):
Start   btfsc    porta,0; проверяем ногу к которой подключен правый поворот
        goto    chl1;    если есть сигнал, то идем к метке сh1
        goto    chl2;    если сигнала нет, то идем к метке ch2
      
ch1     btfsc    porta,1; проверяем ногу к которой подключен левый поворот
        goto    avar ;   если есть сигнал, то выводим аним-ю аварийки
        goto    right ;  если сигнала нет, то выводим аним-ю прав.поворота

ch2     btfsc    porta,1; проверяем ногу на которой подключен левый поворот
        goto    left  ;  если сигнал есть, то выводим аним-ю лев. поворота
        btfsc    porta,2; если сигнала нет, проверяем нет ли сигнала на ноге к которой подкл. стоп
        goto    brake ;  если сигнал есть, то выводим аним-ю стоп сигнала
        btfsc    porta,3; если сигнала нет, проверяем ногу к которой подключен задний ход
        goto    rev ;    если сигнал есть, то выводим аним-ю зад.хода
        goto    start;   если сигнала нет, то идем на метку start
С анимацией это конечно круто. У меня вопрос поинтереснее. В моём случае поворотник делается не на ленте, а на 3х ватных светодиодах хоть и ограниченных по току. Алгоритм вида получили сигнал от поворота сделали действие у меня был(файл во вложении), а вот толку от него нет. Задачу упростили поделив задачи между двумя МК. Первый управляет ДХО и диодами поворотника левой, а второй тем же комплектом для правой фары. Беда подкралась откуда не ждали, это форма сигнала от реле поворотников шибко умной фольксваген джетты.
 

Вложения

#7
Вот такой сигнал приходит когда питание от АКБ (фото IMG_20190113_133203 ), на втором фото части сигнала после запуска двигателя (фото IMG_20190113_133221.jpg ). Так вот пока двигатель не запустили используя задержки, состояние порта, замер длительности импульса и прочие функции кроме прерываний я более-менее поборол отключение ДХО во время работы поворота, но стоит завести двигатель как начинается мракобесие
 

Вложения

#8
У меня тоже на светодиодах. А МК вообще как-то реагирует на сигнал поворота? Мне кажется не в джетте дело. МК же не работает с промежуточным значением, только 0 или 1, так что искажения сигнала не должны влиять. Попробуй поменять стуктуру кода.
 

Вложения

#9
У Гайвера было видео где он программу показывал для создания блок-схемы кода и отладки, не могу найти это видео. Ещё возможно что в схеме не хватает подтягивающего резистора порта на + питания, из-за этого могут значения скакать на входе МК.
 
#10
У Гайвера было видео где он программу показывал для создания блок-схемы кода и отладки, не могу найти это видео. Ещё возможно что в схеме не хватает подтягивающего резистора порта на + питания, из-за этого могут значения скакать на входе МК.
По первому вопросу. Изначально дабы защитить мк от случайного выгорания сигнал с реле поворотов через токоограничительный резистор подаётся на оптрон, а оптрон своим выходом замыкает порт на землю. Так как порт притянут к +5В внутренним подтягивающим резистором то каждый импульс от реле поворотов даёт нам "0" на порту и собственно по этому событию и отключается дхо и включается анимация поворотников. Структура кода менялась раз наверное 10 и "отловить" импульс поворота для корректной сработки неполучалось. Самый лучший вариант это при работе поворотников раз в 60-70 секунд проскакивала вспышка от дхо. Когда посмотрел сигнал с реле поворотов на осциллографе оказалось, что длительность импульса ~400мс как длительность паузы. И вроде всё хорошо только при уменьшении развёртки осциллографа (вложу видео) эти 400 мс импульса состоят ещё из 10-15 импульсов которые и вводят МК в заблуждение. Ставить просто задержку в 400 мс перед повторным чтением порта нехочется, теряется вся идея обработки сигналов с помощью МК, а хочется чтобы подстройка под разные машины была автоматической.
 
#11
Тогда остается только преобразовать пилу в прямоугольные импульсы, до оптрона. Можно использовать триггер Шмитта (снимок 1, 2). У меня на входе МК стоит простой делитель напряжения, сам вход не выгорает и реагирует адекватно на сигнал. Хотя не знаю какая форма имульса с поворотника, на классике наверно далеко не прямоугольная))) Осциллографа нет проверить(.
 

Вложения

#12
По первым попыткам посмотреть форму импульса использовал "пультоскоп"http://srukami.inf.ua/pultoscop_v25110.html(осцилографический пробник на ардуино). Он единственное не показал длительность импульса и каждого импульса в пачке. Тригер Шмидта надо попробовать, как раз собирал на его основе усилитель формирователь для частотомера. У вас в схеме есть кварц, для Pic контроллеров нет возможности использовать внутренний генератор?