Все началось с того, в процессе работы над созданием ФУОЗ на микроконтроллере для лодочного двигателя Ветерок был спроектирован некая совокупность программ, таблиц и прошивки, которые образовали ФУОЗ с параметрами:
1. Помехозащищенный алгоритм обработки сигналов датчиков зажигания. «Глотает» импульсные помехи длинной менее заданной!!! Может быть излишне строгий, но работающий алгоритм раскодировки сигналов входных датчиков по 4 ключевым моментам времени и по всем каналам сразу – «скользящее» окно сравнения. 2. Реализация двухкоординатной зависимости УОЗ – обороты и, например – ДПДЗ. 3. 32 узловые точки по координате «Обороты» с линейной интерполяцией между узлами. 4. До 32 кривых в семействе УОЗ(обороты, X), переключаемых по внешнему параметру X, например – от ДПДЗ . 5. Все параметры храняться в FLASH памяти контроллера. 6. Возможна адаптация как к TCI, так и к CDI. 7. Входные датчики – или ДХ или щелевые – способные сгенерировать метку известной длины М градусов. Метка должна завершаться за N (N <M) градусов до ВМТ. В таком случае система сможет обеспечить УОЗ в диапазоне N…(M-3) градусов. В режиме старта и до нижнего табличного значения искрообразование на N градусах. 8. Верхний диапазон частоты вращения ~ 10- 12 тыс. 1/мин (зависит от параметров п.1). 9. Программная часть состоит из прошивки (ассемблер) для Atmega 328P (готовые платформы Arduino из AliExpress - что бы не паять SMD, а просто впаять в плату как микруху ядро МК) и управляющей программы для ПК (Windows). Управляющая программа (с исходниками на Lazarus) одна на всех (зафиксированы общие флаги и система команд для обмена между прошивками и программой по UART).
Испытано в лаборатории на макете лодочного мотора Ветерок с реальным процессом искрообразования и одновременной работой программы на PC.
Проект пока не закрытый и не универсальный. На каждый двигатель приходится корректировать базовые константы прошивки. Сейчас есть адаптированные прошивки систем УОЗ (обороты, ДПДЗ) для Ветерка (лодочный 2 цилиндра с раздельным CDI зажиганием), двигателя МС-40 (лодочный, 2 цилиндра с одновременным TCI зажиганием), Просто одноцилиндровый двигатель (публикуется тут). Законченных принципиальных схем нет, поскольку это просто конструктор.
Однако нашелся смелый доброволец, который подогнал проект, не без помощи конечно, к своему 4Т мотику и испытал его. Огромную благодарность в этой связи с этим хочу выразить товарищу fcftdbx
Много слов и не о чем. Сделайте например реальный проект для 2т. Схема, что паять. Как программировать и т.д. и т.п. ... для папуасов. И!!! По шагового потом объясните, что это и что то, и для чего. Потом можно его обсуждать и ... чем он лучше Фуоз от Флэша?
Много слов и не о чем. Сделайте например реальный проект для 2т. Схема, что паять. Как программировать и т.д. и т.п. ... для папуасов. И!!! По шагового потом объясните, что это и что то, и для чего. Потом можно его обсуждать и ... чем он лучше Фуоз от Флэша?
А если нет у меня другого 2Т двигателя? На Ветер уже сделал и схему и прошивку. Жду, когда сломается стоковый механизм ОЗ, да и руки не сильно "чешутся" ломать работающую вещь, ведь Ямахи из него не получиться, да и вопрос с питанием не решен - не хочу аккумулятор ставить на мелкомотор.
И это реально один двигатель 2Т, который видел живьем в своей жизни.
Далее, не претендую на лучше или хуже, чем у других. Вот Флэш на 4МГц "вытягивают" контроль на высоких оборотах - это достойно уважения. У меня просто другой подход.
Видео на 4Т мопеде (даже не знаю что за мопед) сегодня снял человек. ФУОЗ работает. Вроде стабильно и не глохнет и газует легко и не чуть не хуже или лучше, чем на прошивке Флэша (по словам испытателя). Специально просил подержать ручку газа на ~2300 1/мин - обороты не бегают. Что еще надо? А между прочим, как я понял, он просто три провода от Ардуинки в один из вариантов схемы Флэша воткнул вместо Mega8. Входные датчики оказались такими же, к и в базовом проекте. До того с человеком прошел за 20 минут процесс адаптации (обучения) и все.. он сам дальше "топает".
В сервере размещено все от начального файла разметка на Excell (первый и тяжелый шаг) -> исходник main.asm -> компилятор С.bat -> прошивальщик для Arduino совместимой платформы W.bat (надо COM порт указать) -> самонастраивающаяся оболочка UOZ.exe, с помощью которой происходит работа с таблицами.
Код сложный, но открытый и читабельный. Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся.
Комментариев много. Активно используются макросы и переопределения, что как мне кажется лучше чем "mov r29,r20" - вот и помни, где что лежит и как называется.
Да осознаю что инструкция нужна.... но сам не готов еще, потому, что не силен в нюансах 2Т и 4Т двигателях - не складывается универсальный алгоритм. Да и универсальных входных каскадов и выходных тяжко придумать. Пример входных цепей и выходных привел.
Размещая тему, готов пробовать обсуждать нюансы адаптации проекта под конкретный ДВС, а вот хватит ли времени на все на это - вот вопрос вопросов. Тут еще эта пандемия....
ВЫ хотя бы по пунктам коротко. 1. Загрузить это, сделать это 2. Загрузить это, сделать то. и т.д. ... 5. Запускаем мотор. Для непосвященных и не глубоко одаренных много непнятного. Ну потом и подтянутся и тестировщики. Зима долгая для Ветерка
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Схемотехника входного каскада и выходного зависит от конструкции датчика и системы зажигания.
Основной исходный файл прошивки причесал в части формата отображения. Внес кучу информации в Главную разметочную таблицу. Ссылка на скачивания все проекта не поменялась.
Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал.
Добавлено after 2 hours 42 minutes 44 seconds: Для madi044 по вопросу датчика.
В принципе как основа был датчик Холла. Для использования щелевого магнитного датчика или оптического есть два варианта.
Вариант 1. Схемотехнически преобразовать сигнал Вашего датчика к требуемой форме по моему описанию (приведено выше).
Вариант 2. Все как есть с простым преобразованием цифру до двух входных каналов и программу откорректировать. Точнее не откорректировать, а снова даунгрейтить с другого двухканального, двухцилиндрового проекта, например с Ветерка. Собственно так и появился проект для одноцилиндрового двигателя. Главная разметочная таблица и управляющая программа все равно одни на все проекты. ДВС отличаются для них только оборотами и таблицами УОЗ. Весь трэш приходится на прошивку (селектор Событий и т.д.). Универсальность сделать не могу иным путем, кроме как стандартизации входных и выходных линий.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
madi044
Заголовок сообщения: Re: Конструктор ФУОЗ для одногоцилиндрового двигателя
С.Н., Здравствуйте, возможна ли адаптация к индуктивным датчикам... Догадываюсь, что если используется только перепад импульса на входе, то можно - изменив полярность перепада при программировании входа. Если же опрос идёт постоянно - то сразу так нельзя. Между импульсами метки надо делать триггер... ============= Пардон, уже ответили.. Спасибо.. Значит, схемотехника..
Компаратор 393 давно и прочно определился как промежуточное звено между индуктивным датчиком и контроллером. Отличия лишь во входных фильтрах, как правило.
С.Н., Хорошо, а более предметно.. Чтоб не влазить в основное тело программы: 1. В программе переназначаю вход МК на какую-нибудь переменную. 2. Дописываю подпрограмму получения этой переменной. 3. Для этой подпрограммы назначаю 2 дополнительных входа под датчики. 4 Подпрограмму оформляю в виде обработки прерывания. Такое возможно? Или надо лопатить весь код?
Добавлено after 5 minutes 39 seconds: Arwood, Ваши схемы видел, они на положительный сигнал с датчика... Как будем обрабатывать отрицательный сигнал... Конвертор питания очень не хочется делать.. Если есть какие-то схемы с этим требованием, если не трудно, выложите. Вроде догадался - оптроны на входе компарера... Отбой... ============ ПС И компаратор перевести в режим триггера, пришёл один сигнал - триггер взвёлся, другой - сбросился..Либо после компаратора NE555, с предустановкой в "1", правда, если заводка будет, когда между метками, первый оборот будет пропущен, но это вероятность у меня 4%-длина метки 15 град.. Ясно...
Последний раз редактировалось madi044 Вт ноя 03, 2020 20:04:05, всего редактировалось 2 раз(а).
Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал.
Вы сами поняли, что вы написали? Проект от Флэша тестил на Ардуино. И так и сяк. Ардуино мощнее Атмеги8. И как вы писали, не надо паять "основу". И можно проще программировать, без программатора. Тестил два Ардуино. Один стер, второй как Ардуино. И можно легче было конструировать - Мозг - навоторы-силовая часть. Но так все это и осталось лежать к коробочке. Пока .... А ваше, даже "умные" не могут понять, от чего начать плясать... И что в нем (в проекте) такого интересного... Пппц
С.Н., Не совсем понятна полярность сигнала в щелевых датчиках... На месте метки - вырез пластины или наоборот - пластина? Другими словами - метка формирует "0" или "1"?
asel .Проект нормальный и он работает и связь с пк стабильная.
Возможно. Пока занимаюсь механикой и ... теорией-подготовкой. От вас и от него. Хотелось бы простых тупых пошапговых инструкций и действий. Не хочется сушить мозг.(Зимой может и посушим). Даже "кырым" не может понять простых вещей 1. может вы сможете объяснить , что там у Била Гейтса, раз вы уже его запустили. 2. Что там такого интересного? Нового. 3. Что там за датчик ДЗ. А если его нет и быть не может? 4. Что значит связь с ПК? Связь с ПК, как таковая , меня не интересует. Интересует вывод Графика на телефон в динамике. Сто раз объяснял зачем. Чтобы увидеть график и потом увидеть изменения в УОЗ при подключении МАР-сенсора. Потому как они разные, врезка разная и т.п. и т.д. Т.е. УОЗ от МАР сенсор нельзя высчитать математически. А только реальности. А потом уже коретировать график при работе с МАР сенсором. РС.А сейчас футбол Шахтер-Боруссия
Оппаньки , а что, отсчёт ведётся от начального угла до ВМТ? Тогда точно надо переходить на оптику, у меня выступ в районе 15-30 градусов. Махинации с преобразованием сигналов не катят... Либо оптика, либо лопатить весь код.. Ни то, ни другое мне не подходят. Жаль... Посмотрю алгоритм ДПДЗ, в этом польза.
1. В программе переназначаю вход МК на какую-нибудь переменную. 2. Дописываю подпрограмму получения этой переменной. 3. Для этой подпрограммы назначаю 2 дополнительных входа под датчики. 4 Подпрограмму оформляю в виде обработки прерывания. Такое возможно? Или надо лопатить весь код?
В программе нет такой переменной. Есть сдвиговая цепочка, биты которой заполняются алгоритмом защиты при случайном или преднамеренном изменении входной линии. Если в конце процедуры защиты определили, что это новое значение, в другой переменной Events происходит сдвиг другой цепочки 4 бита- динамика линии во времени. По динамике решаем что сейчас произошло.
Если нужен контроль двух датчиков в таком же ключе, надо добавлять и сдвиговую цепочку и расширять селектр Событий Events. Обычно у меня он 8 разрядный - по 4 бита на линию.
АЦП у меня усредняется.
Если речь идет о вспомогательных датчиках, вполне можно в основном цикле устроить их опрос и организовать реакцию системы на них.
У меня два процесса - основной цикл: АЦП, UART -бесправные процессы, их может прервать в любое время основная часть программы, которая вся сделана на прерываниях. В основной цикл лепите что хотите, но не использовать определенные регистры и не запрещать прерывания.
С.Н., Не совсем понятна полярность сигнала в щелевых датчиках... На месте метки - вырез пластины или наоборот - пластина? Другими словами - метка формирует "0" или "1"?
А вот тут я видать не смогу коорректно комментировать. Я имел ввиду щелевой индукционный датчик. Опять таки видел один, которые дает два импульса - положительный и отрицательный. Крутые фронты и медленный спад. Их и ловил оптопарами. Флэш также по моему делал.
Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал.
Вы сами поняли, что вы написали? Проект от Флэша тестил на Ардуино. И так и сяк. Ардуино мощнее Атмеги8. И как вы писали, не надо паять "основу". И можно проще программировать, без программатора. Тестил два Ардуино. Один стер, второй как Ардуино. И можно легче было конструировать - Мозг - навоторы-силовая часть. Но так все это и осталось лежать к коробочке. Пока .... А ваше, даже "умные" не могут понять, от чего начать плясать... И что в нем (в проекте) такого интересного... Пппц
Во первых, эти грабли я уже проходил.
Во вторых процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. Говорят, что даже цоколевка одинаковая (не проверял). То, что вы все 4Мгц кварц на него ставите - это Ваше проблема.
В третьих, правда до конца еще сам себя не убедил, но в моем проекте главная особенность - возможность повторения человеком, который в программировании не шарит. Читайте описание и выполняйте шаг за шагом. Не надо специальных программных средств.
[/uquote 3. Что там за датчик ДЗ. А если его нет и быть не может? 4. Что значит связь с ПК? Связь с ПК, как таковая , меня не интересует. Интересует вывод Графика на телефон в динамике. Сто раз объяснял зачем. Чтобы увидеть график и потом увидеть изменения в УОЗ при подключении МАР-сенсора. Потому как они разные, врезка разная и т.п. и т.д. Т.е. УОЗ от МАР сенсор нельзя высчитать математически. А только реальности.
3. Это на 4Т этого нету. НА 2Т - есть. На 4Т предложите другой параметр и им будет изменение давления. Дайте ТТХ на сигнал датчика и получите замену ДПДЗ. 4. А что Вы там на телефоне увидите на улице вне лаборатории и управляя мотоциклом? Так,что я считаю, что связь с ПК нужна только на стенде. Ну или такую систему телеметрии надо создавать, не каждый НИИ справится.
.. процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. ....
Весьма ценное замечание. Жаль, что ваш проект абсолютно несовместим с индуктивными датчиками. Будем с Флешем допиливать его программу. Я там показал ему некоторые упрощения - согласился..Не судьба...
.. процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. ....
Весьма ценное замечание. Жаль, что ваш проект абсолютно несовместим с индуктивными датчиками. Будем с Флешем допиливать его программу. Я там показал ему некоторые упрощения - согласился..Не судьба...
Вам схему нарисовать перехода? Две отпопары, RS тригер - все. Положительные входной импульс устанавливает тригер, отрицательный сбрасывает. Можно по крайней мере попробовать.
Одна проблема - лишняя схема не очень хорошо в условиях помех. Я могу сегодня сделать двухвходовый вариант. Один вход для первого положительного импульса датчика, второй для второго отрицательного. У меня же есть проект для 2Т двигателя с таким датчиком и одним выходным импульсом - одновременно в два "горшка" искра идет. Это ни чем не отличается от Вашего варианта. Надо?
...Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся. ..
В блокноте шрифт не моноширинный, пропорциональный, косые черты сжимает, например. А также количество пробелов в табуляции настраивается.В Нотепаде++ по умолчанию 4 пробела на табуляцию..
...Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся. ..
В блокноте шрифт не моноширинный, пропорциональный, косые черты сжимает, например. А также количество пробелов в табуляции настраивается.В Нотепаде++ по умолчанию 4 пробела на табуляцию..
Мне кстати редактор, встроенный в Far нравиться. Он правда настроен на ассемблер Intel.... Ну в целом хорошо
Нет, видимо, я плохо обрисовал суть проблемы...У меня метка (выступ на колоколе)начинается за 30 градусов до ВМТ и заканчивается на 15 градусах до ВМТ. Ваш ФУОЗ формирует искру в пределах метки. Когда-то, лет 8 назад, на своём мопеде 72 см3 я поменял коммутатор на аналоговый ФУОЗ с питанием от 12В, т.е. с преобразователем (как у Флеша в посту 1). Стало гораздо лучше, но хотелось получше.. Вот и набрёл на ветку Флеша. Для того, чтобы поставить ваш ФУОЗ, нужно или пилить выступ, или ставить диск, или колхозить колокол. В запасниках у меня лежит более мощный генератор, осталось докупить колокол. Я сторонник минимальных переделок, хотя на заводе могут на станках сделать все детали. Поэтому, без переделок ваш ФУОЗ на мой мопед не встанет - смотрел код - там много надо переделывать - не имеет смысла. А по поводу схемы, спасибо, я сам могу и нарисовать, и рассчитать и спаять.. Я только начинающий в программировании (стаж 2 месяца) - для меня затруднительно было читать ваш код (не критика, просто моё субъективное мнение). Смотришь на слово и догадываешься, либо это ключевое слово (а там может, или название регистра или дефайн из инклуда), а может и название регистра или ячейка памяти... Особенно, когда по 12 символов.. Поиском ищешь совпадения..Если бы были какие-то символы принадлежности в именах - читалось бы легче.. Макросы в 1 строку? Ну, ладно, просто отлаживать легче было. Работает, да и ладно.. Наверно, у меня требования завышенные...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения