Фуоз для китайского мотоцикла
ФУОЗ по дешману
Ребята на базе ардуино запилили фуоз, дешево и просто
https://www.youtube.com/watch?v=XP1SUmiTKZY
Каково мнение общественности?
Думаю надо попробовать, ради эксперимента.
Ссылки на инструкцию
https://customcult.netlify.app/
Прикольная тема. Пойду закажу себе парочку платок у китайцев на эксперименты..
Уже заказал 🙂 попробуем
Интересная тема, послежу. Давно подумывал про ФУОЗ на ардуинке, но пока знаний по написанию кода не хватает.
___________________________________________________________________
«Человека можно уничтожить, но его нельзя победить» (Э. Хемингуэй)
Интересная тема.
Удалось пока вроде разобраться с углами опережения, можно в самом скетче прописать более детальный диапазон, например с шагом в 500об/мин
Пока не понял, можно ли сделать второй сигнал через нужное время. Вроде выход Р4 можно использовать, но до конца не разобрался.
Второй сигнал зачем? На 4 горшка?
Кстати вопросик, в этом зажигании имеет значение разница в пропорциях шторка-окно, как оно обороты считает? На ютубе задал вопрос создателям сего, но они чего-то игнорируют.
Ниже задаётся для каких оборотов как угол использовать (но через формулу, в экселе подобрать удалось обратным методом)
Второй сигнал в целом можно использовать и для двух свечей в один цилиндр, и для v-моторов, и пр.
проще наверно вторую такую платку подвесить, со своим отдельным датчиком.
А вот сделать как в сарумановском несколько графиков, хотя-бы два, уже интереснее.
(Скетч использует 2970 байт (49%) памяти устройства. Всего доступно 6012 байт.
Глобальные переменные используют 41 байт динамической памяти.)
Именно эту часть поправил, чтобы без разрывлв было, пример куска ниже., с чем удалось поиграться. Как прописать сдвиг например в формате + n градусов или + %
И свыше каких-то оборотов можно вывести на нужную полку как сделано у ребят. У меня скетч получился с учетом детализации на 60%, и пришлось коэффициент до 4го знака прописывать
За знак спасибо, упустил при копипасте.
Я с программированием не очень знаком, если по переводу uint16 и uint8, а также IF ELSE в SWITCH CASE подскажешь, это очень поможет 🙂
Если дальше отодвинуть от системы зажигания?
Ага. Только комменты всё равно сильно отличаются от истинных расчётных значений. Да и расчёт совсем не гибкий.
Я бы переписал чуть иначе.
Сначала надо придумать график и объявить его в самом начале кода в виде констант:
#define RPM_700 700 // Первая точка у нас на 700 об/мин
#define ANGLE_700 0
#define RPM_1000 1000
#define ANGLE_1000 22 // богомерзкий float умножаем на 10, пусть пока побудет целочисленным, а так это 2,2 градуса
#define RPM_2000 2000
#define ANGLE_2000 150
#define RPM_3000 3000
#define ANGLE_3000 251
#define RPM_4000 4000
#define ANGLE_4000 337
Вот мы получили график из 5 точек, соответствующий комментариям (не фактическим формулам!)
Так как графики между точками линейные, то вместо диких вычислений с плавающей точкой, волшебными коэффициентами и магическими слагаемыми можно взять более красивую функцию экстраполяции (map), а для наглядности и простоты добавления точек использовать switch case:
// расчёт угла по таблице из 5 точек с возможностью расширения до 60
float get_angle (unsigned int rpms) < // функция расчёта угла. Возвращает число с плавающей точкой, в качестве входного параметра принимает целочисленное значение оборотов в минуту
byte tempRPM = rpms / 100; // Делим обороты на 100, чтобы не расписывать варианты для каждого значения
switch (tempRPM) <
int tempDEG; // временная переменная, чтобы не трогать float
CASE 1:
CASE 2:
CASE 3:
CASE 4:
CASE 5:
CASE 6:
tempDEG = ANGLE_700; // вот мы поставили для первых 699 об/мин нулевой угол
break; // Не забываем ставить break там, где нужно прекратить проверку, если найдено сов падение
CASE 7:
CASE 8:
CASE 9:
tempDEG = map(rpm, RPM_700, RPM_1000, ANGLE_700, ANGLE_1000); // Вот пример использования функции. Приводим положение текущего значения оборотов в минуту в заданном диапазоне 700. 1000 к соответствующей точке графика в диапазоне 0. 22
break; // Не забываем ставить break!
CASE 10:
// мне лень выписывать все строки от 10 до 19, да и пост слишком уж длинным получается, но они должны быть!
CASE 19:
tempDEG = map(rpm, RPM_1000, RPM_2000, ANGLE_1000, ANGLE_2000);
break;
CASE 20:
CASE 29:
tempDEG = map(rpm, RPM_2000, RPM_3000, ANGLE_2000, ANGLE_3000);
break;
CASE 30:
CASE 39:
tempDEG = map(rpm, RPM_3000, RPM_4000, ANGLE_3000, ANGLE_4000);
break;
CASE 40:
CASE 59:
tempDEG = ANGLE_4000; // А тут усреднение уже не нужно, тут полка угла.
break;
default:
tempDEG = 0; // По дефолту угол 0, если будет какое-то непредвиденное значение (например, 7000 RPM, или кто-то тоже поленится и не напишет CASE 25:, то при 2500 RPM тоже :-))
break;
>
return float(tempDEG) / 10; // и только сейчас переводим результат в число с плавающей точкой, делим на 10 и возвращаем в место вызова функции, хотя подозреваю, что оно нафиг не надо, т.к. в других местах тоже можно переписать под целые числа.
>
Этот кусок можешь вставить в конец кода.
А всю магию можно заменить на одну строчку:
ignitionDegree = get_angle(rpm);
Это можно написать ещё красивее, но мне лень. 🙂
Peacedeath подкрался незаметно, но слышен был издалека
Подправил шрифт в комментариях к коду, для лучшей читабельности. BuffoG
В общем, если ты решил всерьёз заняться этим вопросом, то:
— Создай отдельную тему.
— Вынеси в её шапку ВЕСЬ код, а не отдельные куски.
— Обсудим в комментах к теме реализацию с участием других коллег-оппозитчиков
— Потом поправишь код в шапке исходя из того, что у нас наваяется.
Но вообще для совместной разработки принято использовать gitHub 🙂
Peacedeath подкрался незаметно, но слышен был издалека
Скинь текст шестерёнкой, погляжу и покажу.
Увы, у меня несколько иная цель. Мне нужен в электронный тахометр сигнал системы зажигания, но гальванически развязанный от катушки, чтобы не спалить МК, и имеющий чёткие фронты без дребезга. Пока экспериментирую с оптопарой.
Peacedeath подкрался незаметно, но слышен был издалека
Отправил шестерней, потом можно сюда запостить итоговый вариант, чтобы при необходимости каждый сам мог просто углы свои проставить
Дырчик.SU
Часовой пояс: UTC + 4 часа
Зажигание с автоматическим ФУОЗ на микроконтроллере
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Чтобы желающие собрать зажигание не «лазили» по всей теме в поисках последних наработок, помещу их сюда Алгоритм: В программе организован цикл проверки флага INTF. Если INTF=1, проверяем какой из сигналов вызвал установку флага (NP или РP). При работе двигателя на низких оборотах (порог задается программно начиная с 975 об/мин) светодиод HL2 мигает с периодом 0.4с, а при бОльших оборотах горит постоянно. С помощью этого светодиода можно точно настраивать обороты ХХ. Постоянное свечение HL2 говорит о том, что контроллер формирует управляющий импульс в зависимости от оборотов КВ. Моментом начала отсчета служит второй отрицательный импульс. В памяти хранятся две характеристики, выбор осуществляется переключателем SA2. Переключателем SA3 включается функция обкатки. При достижении частоты вращения, записанной в память контроллера, прекращается подача управляющих импульсов на VS2. При снижении оборотов контроллер вновь начинает формировать управляющие импульсы. Схема соединений на мопеде: Осциллограмма сигнала с индукционного датчика, развертка 6.5 мс/дел. Нагрузочные характеристики датчика Напряжение на датчике (амплитудное) измерялось вольтметром постоянного тока, подключенного через диод КД105Б. Щупы вольтметра были зашунтированы электролитом емкостью 47 мкФ. Последний раз редактировалось Elektron 07 авг 2015, 21:52, всего редактировалось 8 раз(а). |
Рядовой пользователь |
Зарегистрирован: 10 фев 2013, 13:19
Сообщений: 73
Откуда: г.Кузнецк
Благодарил (а): 9 раз.
Поблагодарили: 11 раз.
Мой мопед: Stella
Администратор |
Зарегистрирован: 09 окт 2012, 19:39
Сообщений: 148
Откуда: Россия, Москва, САО
Благодарил (а): 10 раз.
Поблагодарили: 20 раз.
Мой мопед: Crosser Alpha 72
Администратор |
Зарегистрирован: 09 окт 2012, 19:39
Сообщений: 148
Откуда: Россия, Москва, САО
Благодарил (а): 10 раз.
Поблагодарили: 20 раз.
Мой мопед: Crosser Alpha 72
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Я не спец по разводке печатных плат, поэтому хочется чтобы кто-нибудь разбирающийся в этом посмотрел Плата нарисована в Sprint Layout 4.0 Alex170, как раз таки необходимость переходить на оптику или Холла меня и остановила, к тому же для их работы при запуске двигателя нужен источник питания, которого на мопеде нет. |
Почётный пользователь |
Зарегистрирован: 13 окт 2012, 18:00
Сообщений: 993
Откуда: Зеленоград
Благодарил (а): 76 раз.
Поблагодарили: 164 раз.
У VT2 на время инициализации портов микроконтроллера база в воздухе болтается. Алексей! Дайте топологию в графическом формате, ведь не у всех Sprint Layout стоит. |
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
|
Администратор |
Зарегистрирован: 09 окт 2012, 19:39
Сообщений: 148
Откуда: Россия, Москва, САО
Благодарил (а): 10 раз.
Поблагодарили: 20 раз.
Мой мопед: Crosser Alpha 72
Почётный пользователь |
Зарегистрирован: 13 окт 2012, 18:00
Сообщений: 993
Откуда: Зеленоград
Благодарил (а): 76 раз.
Поблагодарили: 164 раз.
По моему мнению для увеличения помехозащищённости микроконтроллера лучше иметь две земли, Возможно, полезным окажется дополнительный экранирующий слой на печатной плате. |
Рядовой пользователь |
Зарегистрирован: 10 фев 2013, 13:19
Сообщений: 73
Откуда: г.Кузнецк
Благодарил (а): 9 раз.
Поблагодарили: 11 раз.
Мой мопед: Stella
Рядовой пользователь |
Зарегистрирован: 29 ноя 2012, 12:49
Сообщений: 73
Откуда: Севастополь
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Мой мопед: Верховина-3
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Рядовой пользователь |
Зарегистрирован: 10 фев 2013, 13:19
Сообщений: 73
Откуда: г.Кузнецк
Благодарил (а): 9 раз.
Поблагодарили: 11 раз.
Мой мопед: Stella
Рядовой пользователь |
Зарегистрирован: 29 ноя 2012, 12:49
Сообщений: 73
Откуда: Севастополь
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Мой мопед: Верховина-3
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Рядовой пользователь |
Зарегистрирован: 29 ноя 2012, 12:49
Сообщений: 73
Откуда: Севастополь
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Мой мопед: Верховина-3
Рядовой пользователь |
Зарегистрирован: 02 фев 2013, 16:53
Сообщений: 62
Благодарил (а): 2 раз.
Поблагодарили: 2 раз.
Мой мопед: MTB-Дэшник )
При успешной реализации схемы, опробуйте график зажигания такого характера |
Почётный пользователь |
Зарегистрирован: 13 окт 2012, 18:00
Сообщений: 993
Откуда: Зеленоград
Благодарил (а): 76 раз.
Поблагодарили: 164 раз.
Если хотите защитить управление от неприятностей с тиристором, поставьте супрессор 1.5KE6.8 Оптрон ставят для гальванической развязки и повышения помехозащищённости схем управления. Последний раз редактировалось mrfixer 09 мар 2013, 15:14, всего редактировалось 1 раз. |
Рядовой пользователь |
Зарегистрирован: 29 ноя 2012, 12:49
Сообщений: 73
Откуда: Севастополь
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Мой мопед: Верховина-3
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Muma, спасибо, возьму на заметку. Custom, а схемку своего девайса можете показать? |
Рядовой пользователь |
Зарегистрирован: 29 ноя 2012, 12:49
Сообщений: 73
Откуда: Севастополь
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Мой мопед: Верховина-3
Почётный пользователь |
Зарегистрирован: 13 окт 2012, 18:00
Сообщений: 993
Откуда: Зеленоград
Благодарил (а): 76 раз.
Поблагодарили: 164 раз.
VD4 и VD9 однотипные, с Uобр=1000В, следовательно, о пробое выхода DD1:7 при попадании Предположим, при аварии VS2 с первичной обмотки катушки зажигания в цепь управления приходит Добавил позже. Последний раз редактировалось mrfixer 10 мар 2013, 11:20, всего редактировалось 1 раз. |
Рядовой пользователь |
Зарегистрирован: 10 фев 2013, 13:19
Сообщений: 73
Откуда: г.Кузнецк
Благодарил (а): 9 раз.
Поблагодарили: 11 раз.
Мой мопед: Stella
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Рядовой пользователь |
Зарегистрирован: 10 фев 2013, 13:19
Сообщений: 73
Откуда: г.Кузнецк
Благодарил (а): 9 раз.
Поблагодарили: 11 раз.
Мой мопед: Stella
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
На днях переразвел печатную плату под SMD (силовую часть оставил на обычных детальках). Для тех у кого заряжающая обмотка подключена напрямую к БКС (без диодного моста), добавил диод и параллельно ему конденсатор, как в штатной схеме. Немного изменил схему входного фильтра, как в этой схеме: http://ua3usy.narod.ru/ZA.htm. Товарищи, гляньте, может какие недочеты есть на плате (или схеме):
Последний раз редактировалось Elektron 14 мар 2013, 20:07, всего редактировалось 3 раз(а). |
Почётный пользователь |
Зарегистрирован: 13 окт 2012, 18:00
Сообщений: 993
Откуда: Зеленоград
Благодарил (а): 76 раз.
Поблагодарили: 164 раз.
C9 и С4 не нужны. Уже говорил про разводку земель viewtopic.php?p=14127#p14127 |
Местный |
Зарегистрирован: 07 мар 2013, 21:23
Сообщений: 202
Откуда: Санкт-Петербург
Благодарил (а): 12 раз.
Поблагодарили: 36 раз.
Мой мопед: Рига-4,Рига-30,ИЖ-П5
Телефон: 9533502667
Часовой пояс: UTC + 4 часа Кто сейчас на форумеСейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
|