lm393 обычно и используют, включая ДХ и индуктивные датчики. но его хоть мимниально но всеравно нужно обесить расыпухой, развести по рефренцу, разместить на общеей плате с общим питанием с атмегой, сильно близко к ножке а не на датчике, и тп и тд. поэтому лучше внутрений компаратор. но если замкнет то погорит чегонить.
трамблер крутится через колено либо шестеренкой или цепю, погрешность в 1градус на трамблере ранва 2 градусам на колене, это только внути трамблера. а еще каждое звено цепи, и каждая шестеренка, у них тоже люфт, статический и динамический. когда на выключеном моторе высталяешь метки и крутишь рукой колено, то цепь натягивается и все люфты выбираются, как мотор начинает крутится, то все эти люфты пляшут, поэтому уже лет 20 все авто, включая жигули, имеют точный датчик толко на колене. датчик детонации должен еще учитывать люфты во вкладышах. допустим нам удалось удалить все люфты, наприм если прерываетль прям на коленвале прикрутить (скорее всего у Вас так на 2т 1ц), то механический прерыватель никак не даст точное положение коленвала. не потому что он искрит или помехи, просто механически эта конструкция по законам физики не может быть точной, пружинка, вес, температура, износ.
но дело даже не в этом, преимущество даже не программе или свойстве сигнала, а то что магнит и ДХ будут работать сразу на изоленте! я раритетами увекаюсь, часто продавец требует срочно вывезти с парковки авто с разоренным моторм и не разрешает работать, там трамблера часто ваще нет, например потому что внутри мотора слизало звездочку и его нечем крутить, и требуется капиталка. в этом случае можно принести ссобой в кармане двойную катушку и арудуину и маленьктй акку, мгновенно наклеить изолентой магнит и езжай, ни с опто, ни с индуктивным так не получится. мне это было б важно, да и много кому, потому что 99% народа не хотят переходить на электронику именно иза необходимости в слесарных токраных работах, да еще мотор портить. магнитовинил решает эту проблему. собсно винил последние лет 15 и так используется всеми, от мерса до ситроена, ну кроме фв и японок, бутилкаучук, акрилвинил и тп, только там репер из 120 магнитных полей и требует точности. более того, эти м винилы плавают в масле внутри мотора.
для 4ц действительно все тоже самое, только крутящийся трамблер сдвигет бегунок к нужному цилиндру . если оставить тармблер, то можно использовать Ваш код прям щас. но вся ценность в том чтоб избавится от трамблера и получить точную и мощную искру от прямого соединения катушки со свечой. для этого просто учитывается, что когда 1и 4 цилиндры наверху в ВМТ, то 2и3 цилиндры внизу в нмт. соответвенно если приклеить в центр коленвала магнит, то он крутится и поочереди - когда 1и4 поршень идет вверх а 2и3 вниз замыкает дх, а когда 1и4 идуут вниз а 2и3 вверх, то размыкает ДХ. таким образом и по началу и по окончанию сигнала мы имеем точку отсчета для УОЗ+знаем какая пара цилиндров поджигается. но для этого нужна программная поддержка получения сигнал и по фронту и по спаду. почему никто так не делал и нет поодержки у других разработчиков? потому что приклеить магнит на колено просто негде, кроме того у железного магнита свои свойства и к железному колену его тоже не прикрепить. а когда появился винил, все уже перешли на 60-2. поэтому например у меня на мерсе 98года на маховике приклеен маленкий магнитик сбоку на наружнем радиусе маховика, и он дает только короткий импульс для начала отсчета, нужно ловит и обрбатывать сигнал, считать помехи и тп. с винилом тупо есть фронт и сад, всё! для 3 и 6 цилиндров так не получится, только для 2-4-8ц, иначе нужно немного усложнить конструкцию.
про Датчик Детонации. на старых моторах он совсем бесполезен и даже вреден. вспомните, одно время продавались коммутаторы типа силыч и тп, где максимальный уоз уменьшался пока не продадут стуки, а датчик вешали на алюминевый коллектор. сколько моторов тогда прогорело или тупо износилось. например у меня мерс 79 года, они уже сделали на моторе отливки по ребру цилиндра для датчика, но стали их ставить только через 10 лет силно модернизировав мотор. модернизация состоит из двух частей, наружний шум всего мотора и внутренний звуковой шум от днища поршня. наружний шум это гидрики, цепь, материал крепежа, например выхлопной, резиновые сайленты навесного, гидроподушки мотора и тп и тд. внутрений шум это прежде всего шкив с резиновым демпфером, переход с клинового на полиручейковый ремень, разработка натяжителя с демпфером, и даже кардан. можно переделать весь мотор , но вот они еще переделали форму камеры сгорания и поршни, это как поменять? далее на заводе с многомиленным оборудованием на конкретной модели мотора выжеляются шумы детонации и ложные, без этого датчик будет показывать кучу шумов, но что из них детонация не отличите.
для ардуинщиков с датчиком детонации еще проще, это условно микрофон, и подключить его нарямую к ардуине невозможно никаким скетчем. датчик подключается через специализированную микросхему, которая выдает комбинацию сигналов для дальнейшей программной обработки. чип мало того что дорогаой, так его еще сильно распаять нада. собственно все. надеюсь убедил и не будете тратить время и силы на детонацию. подключите его через компаратор к усилку и в нашниках настройте один раз мотор, потом выкинтье его и все. но и тут проблема, качество датчиков в магазе сегодня болшая проблемма, вплоть просто до фейка, пустого корпуса с замкнутым проводом. а уж материал болта для крепления датчика уже всем простили. детонацию не нужно допускать, а не слушать. когда вы услышали детонаицию, то она уже случилась. поэтому это предохранитель. ну подумайте, какой алгоритм для детонации? ну услышали вы его, далее изменили уоз, сохранили в епром, сразу или на второй раз, и далее при каждом новом пуске мотора после прогрева, отсутсвии ошибок будете проверять после прогрева+10км, есть ли детонация на разгоне? нет ее= вернули УОЗ обратно, а она опять проскочила. в итоге мотор будет всегда задушен а причина детонации так и останется. так вот не вдаваясь во все подробности, есть основные причины детонации, ранний уоз и бедная смесь, ну или неправильная смесь, с грязным воздухом и тп. если уоз раний, то алгоритм его уменшит. а вот если смесь бедная, то уоз нужно сильно увеличивать, а алгоритм то причину не унает. а если бракованые свечи каленые, то изменение УОЗ не поможет, и никогда не поймете, че происходит при вмешателстве алгоритма.
лучше пустить силы на трехпозиционный концевик дросселя. закрытый дроссель замкнут на земле 0, полностью открытый замкнут на подтяжку+, в промежутке High-Z. Два варианта реализации. Простой это через свободный АДЦ, на него вешается делитель напряжения, когда концевик разомкнут в воздухе, на АДЦ будет 2,5вольт, соответвенно концевик замкнут на землю то 0вольт, когда замкнут на поддтяжку то 5вольт. вот только чтоб получить 5 вольт на делителе при подтяже , надо подумать хорошо, тк если земля между клеммой акку и ардуиной с делителем будет разная, то по логике худшем случае разница потенциалов может быть 12-2,5вольта, = 9,5 вольт. поэтому от акку нужно давать не все 12в а тоже через делитель и тоже чистую землю. но проблема в жизни что бортовое напряжение пляшет от 10 до 14,5вольт, а бывает что и от 9 до 17. Соответственно алгоритм должен брать диапазон напряжения от 2,5 до некой границы, нужно посчитать. можно использовать вход компаратора, он по идее должен много выдерживать, но его жалко на это тратить. Далее если разработчик входит во вкус, что портов АДЦ становится не хватать. Поэтому вижу сложный способ. использовать обычный дискретный GPIO и постоянно опрашивать концевик. скорость переключения не так важна, если делать это раз в полсекунды, мотор это не заметит. Тогда алгоритм такой, сравнивать бит в регистре порта и регистре защелки. примерно так, отключаем подтяжку, записываем в 1или 0 по очереди, и читаем его, теперь в ключаем подтяжку и повторяем. если бит меняется подтяжкой, то значит HighZ. Если бит не меняется чего бы с ним неделали, значит на нем есть сигнал. получаем 3 положения дроселя с одного входа. вот что былобы полезно придумать вместо детонации.
Удачи, еще раз спасибо автору!
зы, прочитал себя, ужас сколько ошибок. извините, много настрочил в попыхах