Автор Тема: Коммутатор на Arduino  (Прочитано 986 раз)

0 Пользователей и 1 Гость просматривают эту тему.

morium

  • Новичок
  • *
  • Сообщений: 127
    • пересел с XV400 1991 на XV1100 1990
    • Просмотр профиля
  • в седле с: 2000
Коммутатор на Arduino
« : Июля 15, 2020, 01:26:39 pm »
Здравствуйте други. Выкладываю схему самодельного коммутатора и прошивку под Arduino Nano для однодатчиковой Virago 400. В коммутатор зашита следующая характеристика угла опережения зажигания: ровная прямая в пределах с 1500 до 5750 оборотов двигателя, от 0 до 25 градусов, дальше с ростом оборотов остаются 25 градусов. Плюсом идут 8 градусов опережения,  которое заложено производителем ( расположении накладок на роторе ) , т.е. имеем опережение от 8 градусов до 33 относительно ВМТ.
Небольшое пояснение:
На роторе генератора установлены две накладки.

При вращении ротора и прохождении накладок через индукционный датчик имеем на выходе датчика следующую картинку: при входе накладки в датчик видим положительный импульс, при выходе отрицательный.


Положительный импульс открывает транзистор Т1, который зажигает оптопару, а та подтягивает ногу d3 микроконтроллера к земле (ноги d3 и d2 настроены на цифровой вход с подтяжкой на +5 через резистор 10 Ком). Отрицательный импульс открывает транзистор T2 и шевелит ногой d2 микроконтроллера. Далее программно по разнице времени между импульсами определяется какая именно накладка (переднего или заднего цилиндра) вошла в датчик,  и в определенное время в зависимости от оборотов двигателя подаются импульсы на ноги d10 и d11 микроконтроллера. При подаче на d11 логического 0, оптопара закрыта, транзистор Т3 закрыт, на базе Т5 положительный потенциал, транзистор Т5 открывается, и на катушку переднего цилиндра подается напряжение для её  насыщается. При выводе на d11 логической 1 (+5в), оптопара зажигается, открывает транзистор T3, на базе T5 появляется 0, Т5 закрывается, с катушки снимается напряжение, происходит искровой разряд на свече переднего цилиндра. Аналогично для заднего цилиндра и ноги d10.



PS: огромное спасибо участнику этого форума под ником screep. Его советы и наработки значительно облегчили мне разработку данного устройства. Во вложении схема и рабочий скетч для Arduino IDE. В проекте не реализованы такие функции штатного коммутатора, как управление релюхой бензонасоса и датчиком боковой подножки. Проект реализовывался, как запасной коммутатор, поэтому все делалось максимально просто и быстро, поэтому тапками прошу не закидывать, критика и конструктивные предложения приветствуются. Если нужны дополнительные пояснения, спрашивайте тут. На коммерческой основе собирать данный девайс не планирую.

morium

  • Новичок
  • *
  • Сообщений: 127
    • пересел с XV400 1991 на XV1100 1990
    • Просмотр профиля
  • в седле с: 2000
Re: Коммутатор на Arduino
« Ответ #1 : Июля 15, 2020, 01:43:49 pm »
Не грузятся картинки, прошу модератора подправить 2 и 3 ссылки на изображения в первом посте.


Антон усы

  • Старожил
  • *****
  • Сообщений: 2172
  • Чебоксары
    • SEROW 225, ORION 125 A
    • Просмотр профиля
    • Мой канал в ютюбе
  • в седле с: 2007
Re: Коммутатор на Arduino
« Ответ #2 : Июля 16, 2020, 09:09:23 am »
Крутяк!!! Как в работе себя показал?

morium

  • Новичок
  • *
  • Сообщений: 127
    • пересел с XV400 1991 на XV1100 1990
    • Просмотр профиля
  • в седле с: 2000
Re: Коммутатор на Arduino
« Ответ #3 : Июля 16, 2020, 11:09:08 am »
Крутяк!!! Как в работе себя показал?
Работает хорошо. Надо бы еще тест на максималку и на разгон сделать ну и погонять подольше. В целом результатом доволен, очень много времени потратил на отлавливание глюков и помех.

screep

  • Бывалый
  • ***
  • Сообщений: 169
    • Yamaha XV400, Kinlon JL150
    • Просмотр профиля
  • в седле с: 2012
Re: Коммутатор на Arduino
« Ответ #4 : Июля 16, 2020, 01:41:23 pm »
Да... а Скрип тем временем свой "шаттл" всё никак не доведет до ума ...
(но ничо так, дорогу осилит идущий. такой у меня "путь самурая" . )
ты таки входной (-ые) каскад(-ы) проще обыграл (но с "потерей ног") но ничо так. главное, что работает.
поздравлям!
даччик подножки можно забадяжить - поставить релюху, и коротить вход.
бензонасос - в ранних версиях вираг я видел эл. схему, так там он включен ч-з релюху, катуха которой подключена просто к одному из выводов катух. да или вообще, сделать его постоянно включенным, всё равно он , нагнав давление , выключается.
Reach out & touch faith!(c)
...я проснулся среди ночи, и понял, что - всё...(с)

screep

  • Бывалый
  • ***
  • Сообщений: 169
    • Yamaha XV400, Kinlon JL150
    • Просмотр профиля
  • в седле с: 2012
Re: Коммутатор на Arduino
« Ответ #5 : Июля 16, 2020, 03:52:14 pm »
...или тупо таймером на 555 эту релюху дёргать.
Reach out & touch faith!(c)
...я проснулся среди ночи, и понял, что - всё...(с)

Kirill12

  • Новичок
  • *
  • Сообщений: 115
  • Москва
    • XV 750 Virago 86 год
    • Просмотр профиля
  • в седле с: 2010
Re: Коммутатор на Arduino
« Ответ #6 : Июля 16, 2020, 09:33:22 pm »
Привет!

Великое дело делаешь!
Очень нравится мне, что на ардуино (я - профессиональный разработчик, если что), потому как это удобно, доступно и просто для повторения.
Код у тебя суровый, но работает, и хорошо ;)

Я одно время страдал с двухдатчиковой 750 своей, но потом подогнали мне рабочий коммутатор, и я успокоился 8)

Эх, попробовать чтоли доделать свой коммутатор на досуге...

Kirill12

  • Новичок
  • *
  • Сообщений: 115
  • Москва
    • XV 750 Virago 86 год
    • Просмотр профиля
  • в седле с: 2010
Re: Коммутатор на Arduino
« Ответ #7 : Июля 16, 2020, 09:38:18 pm »
Я, кстати, по схематике могу порекомендовать сходить на SECU-3 и посмотреть, как у них сделана фильтрация питания и выходные каскады. Там прелесть в том, что схема проверена и хорошо обкатана. Не будет глюков трудноуловимых от помех и наводок.
Я не настаиваю, просто предлагаю ;)

screep

  • Бывалый
  • ***
  • Сообщений: 169
    • Yamaha XV400, Kinlon JL150
    • Просмотр профиля
  • в седле с: 2012
Re: Коммутатор на Arduino
« Ответ #8 : Июля 17, 2020, 06:37:58 am »
с 2-датчиковой там еще проще, чем с однодатчиковой будет.
Reach out & touch faith!(c)
...я проснулся среди ночи, и понял, что - всё...(с)

morium

  • Новичок
  • *
  • Сообщений: 127
    • пересел с XV400 1991 на XV1100 1990
    • Просмотр профиля
  • в седле с: 2000
Re: Коммутатор на Arduino
« Ответ #9 : Июля 17, 2020, 07:18:27 am »
Привет!

Великое дело делаешь!
Очень нравится мне, что на ардуино (я - профессиональный разработчик, если что), потому как это удобно, доступно и просто для повторения.
Код у тебя суровый, но работает, и хорошо ;)

Я одно время страдал с двухдатчиковой 750 своей, но потом подогнали мне рабочий коммутатор, и я успокоился 8)

Эх, попробовать чтоли доделать свой коммутатор на досуге...

На счет кода, согласен. Сначала делал через прерывания, поэтому и прицепил входной каскад на ноги d2 и d3. Прерывания срабатывали при смене высокого уровня на низкий. В процессе отлавливания глюков отказался от прерываний, да так и оставил, можно все вернуть обратно, код будет красивее (а глюки были из-за малой емкости кондеров во входном каскаде, стояли по 1 мкФ, были ложные срабатывания, поставил 10 мкФ и все стало нормально).

morium

  • Новичок
  • *
  • Сообщений: 127
    • пересел с XV400 1991 на XV1100 1990
    • Просмотр профиля
  • в седле с: 2000
Re: Коммутатор на Arduino
« Ответ #10 : Января 29, 2021, 10:18:00 am »
Продолжаю тему, но уже для 1100 вираги двухдатчиковой 1990 года выпуска. На роторе здесь всего одна нашлепка и размер у неё почти в 2 раза меньше, чем на 400-ке. В родных мозгах каждый датчик обрабатывается своим микроконтроллером, поэтому в старых мозгах 2 микроконтроллера, а начиная с 1991 года уже идет один датчик и один микроконтроллер. Датчики запараллелил и подключил к схеме (та которая  делалась на 400-ку), и снял такую диаграмму.

Импульсы синего графика - это вход нашлепки в датчик, красные - выход из датчика. Т.е. по изображению слева - направо видим вход - выход нашлепки в первый датчик, затем вход - выход нашлепки во второй датчик, затем оборот вала и все повторяется.
Остается подправить код программы под новые углы.

 

Ошибка базы данных

Пожалуйста, повторите ещё раз. Если ошибка продолжает повторяться, обратитесь к администратору.