Преобразователь сигнала датчика положения коленчатого вала

samusers
Offline
Зарегистрирован: 13.11.2019

Добрый день уважаемые форумчане прошу помощи у специалистов. Не знаю как написать скетч. Суть задачи: нужно преобразовать сигнал с датчика положения коленчатого вала 60-2 на входе ардуино в 36-2-2-2 на выходе с возможностью подстройки шим выходного сигнала. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

360/60=6 градусов на зуб.

360/36=10градусов на зуб.

При прохождении "зуба" около датчика - будет полная синусоида, т.о. будет ДВА прохождения через "НОЛЬ", т.е. реальная "точность" программно удваивается. Вот их и считай. Потом обычной математикой "подгоняй" под свои нужды.

Скажу сразу - будет это не совсем просто, как это может показаться.   )_))

samusers
Offline
Зарегистрирован: 13.11.2019

А если на входе будет 2 импульса на оборот. это проще будет или нет?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Всё дело в том, что это ДВС!!! А он, как известно, может выдавать и "НОЛЬ" оборотов и (допустим) 6000 об/мин. Вот в это то и кроется вся сложность обработки и эмуляции. Ну там есть ещё нюансы, но пока их можно опустить.

Вопрос в другом: сколько стоит оригинал (датчики и прочее) и почему принято решение о эмуляции?

PS: Схемотехника автомобилей несколько отличается от концепции дурдуины, поэтому этот эмулятор может быть мягко сказать - ненадёжным и привести, например, к дтп.

samusers
Offline
Зарегистрирован: 13.11.2019

на вход ардуины подается входной сигнал 58 импульсов два пропущено (с датчика положения коленчатого вала) но с изменение количества оборотов меняется скважность то есть частота следования импульсов. как это программно реализовать не соображу. но на выходе должно быть 13 импульсов 2 пропуска 16 импульсов 2 пропуска 1 импульс 2 пропуска и все повторяется но так же должна меняться скважность в зависимости от скважности входного сигнала + возможность подстройки выходной скважности. Все это затеяно потому что на мазде рх-8 поменяли мотор на поршневой а приборку и все функции завязаны через родной мозг. как то так   

-NMi-
Offline
Зарегистрирован: 20.08.2018

samusers пишет:

на вход ардуины подается......

как это программно реализовать не соображу.

но на выходе должно быть....... 

Это понятно.

Использовать один таймер в качестве счётного. Использовать Int0_Falling в качестве детектора "нуля" , например. Программно "пересчитать" 60-2 в то, что нужно, и...

На выход подать то, что должно быть.

PS: повторюсь ещё раз - в теории это выглядит достаточно просто, но на практике будет много "вывихов" с наступанием на грабли!!!

samusers
Offline
Зарегистрирован: 13.11.2019

Вы можете написать скетч для меня? сколько стоить будет samusers@yandex.ru 

Onkel
Offline
Зарегистрирован: 22.02.2016

Пишите ydom@mail.ru - сделаю. Большой опыт, подобных задач решал множество. Напишу код, проверю работу на макете. так что вы получите на 100% проверенный, рабочий код. ydom@mail.ru

Kakmyc
Offline
Зарегистрирован: 15.01.2018

А если посмотреть сигнал с датчика , то окажется, что пофигу сколько там "зубов", электроника смотрит только на "дырки".

-NMi-
Offline
Зарегистрирован: 20.08.2018

ТРИ!!! раза писАл в PS , что это не так просто, как это может показаться в теории.

Здесь нужно искать студента-альтруиста поблизости от автомобиля, ибо без аппаратной составляющей - все скетчи просто бесполезны. Да и "разовый" проект не имеет смысла на жизнь, т.к. он не окупится финансово. Если считать заработок программиста в днях - то это минимум 2тр. в день (8 часов). Не думаю, что вы это потянете финансово.

SS: тут есть "товарищи", которые могут ВСЁ, они скоро появятся, ждите...

samusers
Offline
Зарегистрирован: 13.11.2019

а это кстати хорошая идея

-NMi-
Offline
Зарегистрирован: 20.08.2018

Kakmyc пишет:
А если посмотреть сигнал с датчика , то окажется, что пофигу сколько там "зубов", электроника смотрит только на "дырки".

Это серьёзно?

Зачем тогда там именно 60-2, сделали бы вообще "лысый" )_))

samusers
Offline
Зарегистрирован: 13.11.2019

-NMi- пишет:

Kakmyc пишет:
А если посмотреть сигнал с датчика , то окажется, что пофигу сколько там "зубов", электроника смотрит только на "дырки".

Это серьёзно?

Зачем тогда там именно 60-2, сделали бы вообще "лысый" )_))

вот две осциллограммы с обоих датчиков. есть идеи товарищи?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Kakmyc пишет:
электроника смотрит только на "дырки".

Вот и покажите мне "ентиДырки"  )_))

Kakmyc
Offline
Зарегистрирован: 15.01.2018

-NMi- пишет:

Kakmyc пишет:
электроника смотрит только на "дырки".

Вот и покажите мне "ентиДырки"  )_))

Проблема в том, что вы неправильно подходите к задаче.
Не нужен вам этот сигнал с датчика.
Там следом идёт схема фильтрации и усиления.
И после нее уже сигнал имеет цифровую форму.
Вот эти импульсы и нужно корректировать.
Вы же сейчас пытаетесь приделать туда ещё одну систему фильтрации .
Зачем оно надо ?

Писал настраиваемый ограничитель оборотов с хард/софт отсечкой на Вольво. Там было именно так как я сказал.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Я вообще ни к чему не подхожу, мне это не нужно, просто. В таком случае у меня к вам вопрос: почему, если поменять полярность ДПКВ автомобиль (ДВС) либо не запускается совсем, либо работает не так, как нужно???_???  дЫрки то дЫрками и останутся в таком случае.

pcb
Offline
Зарегистрирован: 02.04.2015

Потому что:
1) Ширина этого импульса определяет скорость вращения
2) Импульс захватывается по восходящей, а потом по нисходящей(передний фронт, задний фронт)
3) Импульс возникает за несколько зубьев до ВМТ, что бы зажигание рассчитать и вовремя подать
Если полярность неверная, то не определяется скорость вращения, положение коленвала и, собственно, расчет и зажигание тоже неверно.

Ардуинки маловато для такой задачи, просто производительности не хватит, скажем, на оборотах выше 4т. в минуту.
Возьмите кортекс какой-нибудь(stm32-discovery), у меня на SAM21D в притык работало.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Увидел ролик о проблемах с ДПКВ, как всё запущено с этой электроникой )))

PS можно смотреть после 30 минуты

MaksVV
Offline
Зарегистрирован: 06.08.2015

Напишу по теме ТСа, вдруг пригодится кому. Его задача наиболее по простому и правильному скорее всего решается совсем другим путем. ТС поменял двиг и оставил старый эбу лишь чтобы работала приборная доска. Дак вот это делается эмулятором эбу по CAN. В щиток обычно нужно всего несколько фреймов загнать. Реверсится какие именно фреймы, быстро при наличии эбу. А если идти все же путем ТСа, то не обязательно 60-2 переводить в 36-2-2-2. 60-2 сигнал нам как таковой не нужен весь. Нам нужны только обороты, а их можно и по другому получить ( с катушки, форсунки, или также по обд2). А вот эмулировать сигнал 36-2-2-2 ардуина вполне потянет, если конечно эбу съест прямоугольный сигнал вместо синуса.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Там поди уж и тачка фчирмет ушла, а вы всё про эмулятор )))
Ффтопку!!!

storm134
Offline
Зарегистрирован: 14.04.2017

В атмеге есть компаратор. При его срабатывании срабатывает прерывание. Вот и обрабатывайте.  Так же есть счетный вход таймера Т0. 

storm134
Offline
Зарегистрирован: 14.04.2017

Атмега в отличие от СТМ обрабатывает команду за один такт.  На ней даже БПФ можно организавать.   Да и много чего еще.  Но если руки заточены только скетчи писать, то да - нихрена не выйдет.

nik182
Offline
Зарегистрирован: 04.05.2015

storm134 пишет:

Атмега в отличие от СТМ обрабатывает команду за один такт.  На ней даже БПФ можно организавать...


Спасибо. Поржал. Особенно про БПФ на СТМ.

storm134
Offline
Зарегистрирован: 14.04.2017

А зря.  На ядрах M3 очень хороший FPU.  по части плавающей точки  он даже обгонит авр с его то частотами. Но только кодить надо на голых сях, а не через HAL.  

ELECTROS
Offline
Зарегистрирован: 28.05.2021

Занимался подобным лет 10 или чуть больше назад и имитаторы датчиков и преобразовать сигнал одного типа датчика в другой на ДВС, неужели сейчас это всё актуально?

Пы.сы. один раз взялся за сомнительную вещь: там было управление клапаном ТНВД на бензинке, так вот было время поэтому взялся из спортивного интереса, схему считай накидал на коленке из макетки рассыпухи (аппаратно она заработала-считывался сигнал управления и модифицированным уже управлялось соленоидом), нооо...., в итоге уже потом выяснил у заказчика с трудом (напряг его осцил купить хоть самый дешманский, потому как он находился совсем в другом городе) что управление инверсное у того насоса что был и тот что он поставил, ну я то ему модифицировал прошивку с учётом этого и отправил (хорошо хоть догадался зашить ему лодырь, чтоб если чё по USB он прошить мог, как знал что пригодиться), это всё после этого как то заработало, но чтобы получить нормальную отдачу нужно было как то снимать характеристики насосов...в итоге он слился.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Дык а я те про чо и толкую, всё это бабуйня и обломки фуфломицина.
Фпесду таких закащщикоФФ)))

storm134
Offline
Зарегистрирован: 14.04.2017

Ну например на газельках актуально, когда туда 2UZ пихают

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

А....ну тагда панятна всё....
Т.к. газель это полный анус прям с завода и газелоиды априори нищеброды, то я никак не удивлён такими вывихами мозга.
Шо магу сказать: попутного .........

storm134
Offline
Зарегистрирован: 14.04.2017

Ну как бы новая газель далеко не копейки стоит. Вот только движки там гавно!.  а 2UZ имеет 380 сил.  И по ресурсу и надежности намного выше штатного ДВС от волги.

MaksVV
Offline
Зарегистрирован: 06.08.2015

А еще гавно рулевое , тормоза , ходовка, салон и электрика. Рама чтоли хорошая ?

DenEngineer
Offline
Зарегистрирован: 09.06.2022

если изменять сигнал в реальном времени, задержка изменит угол опережения зажигания. Проще пластинку на коленвале сменить с нужным количеством зубов. 36 по моему на субару стоит

 

b707
Offline
Зарегистрирован: 26.05.2017

DenEngineer, не лень поднимать темы из архива ради банальных замечаний?