Официальный сайт компании Arduino по адресу arduino.cc
Соленоидный двигатель, работа с таймерами.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 20/07/2017 - 09:09
Суть хобби-проэкта такова, собрал я соленоидный двигатель, точная копия рядного восьми-мицилиндрового 4хтактного мотора. Но роль поршней выполняют соленоиды. работа 1-5-7-3-8-4-2-6
На моторе установил магнит и геркон, что-бы считать время оборота коленвала. Импульсы на соленоиды должны подаваться по очереди. Период подачи всех импульсов равен двум оборотам, всемя подачи напряжения на каждый соленоид 2/5 времени оборота колена. А управление скоростью вращения хочу сделать через ШИМ задействовав переменный резистор. Подскажите с чего начать, спасибо!
Подскажите с чего начать, спасибо!
1 Изучение языка Си.
2 Более подробное прописывание ТЗ, кто на что подключен. Какие обороты, сколько и когда вкл соленоиды не вообще а конкретно в секундах, обороты двигателя и прочее.
каждый соленоид через транзистор и реле, подключается напрямую к Arduino. Стало быть соленоид(поршень) будет включен тогда, когда на пин Ардуино будет Low. Минус, также череp геркон поступает на соответствующий пин Arduino, геркон замыкается на доли секунды каждый оборот коленвала.
Допустим, скорость вращения коленвала 600об в минуту, это 10 об/секунду. один оборот за 0.1 секунды
В этом случае длина каждого из восьми импульсов на каждый соленоид должна будет равна 0.04секунды. Период же подачи всех импульсов должен быть равен 0.2 секунды. Обороты двигателя будут меняться постоянно, поэтому должны отсутствовать в программе delay.
Спасибо. В языке стараюсь разобраться.
Вот у вас модель четырех тактного двигателя. Повторяю ЧЕТЫРЕ такта. 600об/мин = 10 об/сек и такт равен 0,025 секунд. Разумеется в 4 тактном один такт рабочий . Так что соленоид должен работать 0,025 секунды в 0,1 секундном периоде. И не важно сколько у вас цилиндров. Так в 8-ми цилиндровом двигателе цилиндры работают , как вам не удивительно, по-парно.
К чему я говорю, вы не разобрались в работе оригинала, то нет гарантии , что поймете работу модели. На хапке работать не получится.
Вот у вас модель четырех тактного двигателя. Повторяю ЧЕТЫРЕ такта. 600об/мин = 10 об/сек и такт равен 0,025 секунд. Разумеется в 4 тактном один такт рабочий . Так что соленоид должен работать 0,025 секунды в 0,1 секундном периоде. И не важно сколько у вас цилиндров. Так в 8-ми цилиндровом двигателе цилиндры работают , как вам не удивительно, по-парно.
К чему я говорю, вы не разобрались в работе оригинала, то нет гарантии , что поймете работу модели. На хапке работать не получится.
странно, мне казалось я логично объяснил, 2/5 времени работы. а не 1/2. это будет 0.04 в 0.1 секундном периоде. И в рядном восьмицилиндровом двигателе цилиндры работают не попарно а последовательно. 1-5-7-3-8-4-2-6. С Уважением! и не забывайте, что 4 такта двигателя это 2 оборота а не один как считаете вы.
1. не ясна роль магнита и геркона.
а. зачем геркон, а не датчик Холла?
б. а нафига вообще обороты нужны?
2. есть ли кривошипно-шатунный механизм? если он есть, то тогда точно неясно зачем датчик.
3. станешь ли ты светодиодом имитировать горение топлива? В такте расширения?
1. не ясна роль магнита и геркона.
а. зачем геркон, а не датчик Холла?
б. а нафига вообще обороты нужны?
2. есть ли кривошипно-шатунный механизм? если он есть, то тогда точно неясно зачем датчик.
3. станешь ли ты светодиодом имитировать горение топлива? В такте расширения?
1.а. Двигатель достаточно большой. Длина коленвала 60см. Поэтому особой разницы нет, датчик холла, или геркон или просто микрик, суть в том что-бы считать время оборота.
б. Обороты нужны что-бы точно, и в нужный момент времени подавать на соленоиды напряжение. Программа должна каждый оборот менять длительность импульсов, например при разгоне, замедлении.
2. Есть много способов, заставить это дело вращаться, самый простой переделать на 2х тактный и поставить систему датчиков холла, подавать напряжение в момент хода на каждый из соленоидов. В этом случае вообще всё просто. Можно так-же собрать мою схему просто на таймерах микросхемах(правда будет это довольно муторно). Но фишка именно в 4х тактности.
3. Имитация конечно же будет :) А по звуку будет похоже на приятный дизелёк.
На форуме много реализаций тахометров. Поиск в верху. Почитайте посмотрите. Тахометры дают то что вам надо. Заоодно и привязываются к началу цикла. А дальше делим время оборота на количество цилиндров на оборот - получаем время отработки одного соленоида. Посылаем импульсы нужной длины.
каждый соленоид через транзистор и реле, подключается напрямую к Arduino.
напрямую сожгете нахрен пин.
необходим умощняющий элемент, полевик например , или ULN2003
Учитывая, что соленоиды будут работать не мгновенно, а в зависимости от скорости вращения и запитывать их необходимо бкдет по-разному в зависимости от скорости.
в идеале запитка соленоида в начале последней четверти цикла и отсечка при достижении верхней точки.
на верхнюю точку можно поставить дофига всего как контактного так и бесконтактного. датчик холла непрокатит тк он будет показывать не положение а работу соленоида, о котором и так все известно. я поставил бы оптический датчик на пару градусов не доходя начала/конца цикла.
Спасибо, конечно не напрямую, хочу использовать полевик и реле, кучка реле придаст как раз некую изюминку звука, хотя менее надёжно конечно. Изучаю скетчи тахометров.
Это в идеале, а на практике все сложнее. Подвижная истема соленоида и двигателя имеет инерцию и отсечка не уменьшает уже приобретенную кинетическую энергию.
Нужно ставить инкрементный оптический энкодер + датчик начального положения коленвала (1 положение на оборот) или абсолютный оптический энкодер. И тогда не придется механически "вылавливать градусы" не доходя до ВМТ.
Да там всё ещё проще. Время включённого состояния соленоида должно зависить от скорости. Для этого двигателя достаточно. Можно подобрать при наладке по минимальному дребезгу и максимальнону крутящему моменту.
Еще если не тупить сильно , а вспомнить, что рабочий ход ДВС это выталкивание поршня при сгорании, а рабочий ход электродвигателя это притягивание "поршня". А еще вспомнить конструкцию простого коллекторного двигателя. То Ардуина точно там не надо. Достаточно сделать коллектор на диске и все.
Удивительно информативные сцылки
1.а. Двигатель достаточно большой. Длина коленвала 60см. Поэтому особой разницы нет, датчик холла, или геркон или просто микрик, суть в том что-бы считать время оборота.
б. Обороты нужны что-бы точно, и в нужный момент времени подавать на соленоиды напряжение. Программа должна каждый оборот менять длительность импульсов, например при разгоне, замедлении.
2. Есть много способов, заставить это дело вращаться, самый простой переделать на 2х тактный и поставить систему датчиков холла, подавать напряжение в момент хода на каждый из соленоидов. В этом случае вообще всё просто. Можно так-же собрать мою схему просто на таймерах микросхемах(правда будет это довольно муторно). Но фишка именно в 4х тактности.
1.а. геркон наврятли даст тебе реализовать большие обороты и точность их подсчета,только датчик холла.
б.можешь применить от сюда http://arduino.ru/forum/programmirovanie/elektronnyi-blok-upravleniya-na-avto?page=1#comment-297106 упровлять можно с помощью потенциометра .
2 я не вижу здесь 4 такта ,2 такта и 2 пропуска .
По большому счету мк нафиг не нужен. Пары оптодатчиков положения на каждый "цилиндр" ( на начало и конец работы соленоида) и RS триггеры управляющие соленоидами.
Можно еще проще. Шторка, затеняющая на период необходимой работы соленоида оптодатчик , закрепленная на коленвалу. Просто оптодатчик, например от старой мышы и ключ управления соленоидом.
каждый соленоид через транзистор и реле, подключается
и долго ли проживут контакты реле, коммутирующие 5 раз в секунду индуктивную нагрузку?
странно, мне казалось я логично объяснил, 2/5 времени работы. а не 1/2. это будет 0.04 в 0.1 секундном периоде. И в рядном восьмицилиндровом двигателе цилиндры работают не попарно а последовательно. 1-5-7-3-8-4-2-6. С Уважением! и не забывайте, что 4 такта двигателя это 2 оборота а не один как считаете вы.
как-то мне всегда представлялось, что рабочий ход у четырерёхтактного двигателя - это 1/4. Откуда 2/5?
По большому счету мк нафиг не нужен. Пары оптодатчиков положения на каждый "цилиндр" ( на начало и конец работы соленоида) и RS триггеры управляющие соленоидами.
Можно еще проще. Шторка, затеняющая на период необходимой работы соленоида оптодатчик , закрепленная на коленвалу. Просто оптодатчик, например от старой мышы и ключ управления соленоидом.
Куча рассыпухи или 1 мк с простой программой - что практичнее?
и 1 датчик "ВМТ 1 цилиндра", оптический или холла.
Рассыпуха олдскульнее :)
Рассыпуха безусловно олдскулл, но на рассыпухе подобное уже собиралось, и хватает для этого простых микриков каждый из которых замыкается в момент хода соленоида вниз. Но, это отлично работает если двигатель 2х тактный. Фишка в том что двигатель точная копия 4х тактника, тоесть в этом случае уже не получится ставить просто датчик на цилиндр.
Реле проживут довольно долго, по моим подсчётам неделю при непрерывной работе, быстрее умрут соленоиды. Никто не планирует ездить на этом двигателе. Реле будут обязательно, именно из за звука.
впуск первый такт, сжатие второй, возгорание третий, выхлоп четвёртый - это работа двс, 2 такта 1 оборот 4 такта 2 оборота.
почему 2/5, 2/5 оборота а не такта, Сгорание в двс по времени не больше 1/10 такта или 1/20 времени оборота. По этому и тут, соленоид должен начинать тянуть в верхней точке и прекращать до того как дойдёт до нижней точки. Если же он будет тянуть весь такт, то в нижней точке он будет только притормаживать двигатель. Так как копия 4х тактника, каждый второй оборот, каждый из восьми соленоидов, делает в холостую.
Почему не геркон?, при скорости велосипеда 75 км/ч колёса горного велосипеда делают явно больше 600об минуту и при этом спидометр прекрасно показывает скорость. Геркон+магнит.
постараюсь написать программу для одного соленоида.
Вы не поняли, что я писал в предыдущих постах , а повторять и убеждать мне лень, делайте как хотите.
Я же писал выше. Что всё прекрасно собиралось на рассыпухе. На тех-же 555тл1 и 561тм2, всё прекрасно работает. Но тут задача стоит собрать управление именно на мк. Мы в 21веке живём. Давайте ещё на лампах собирать управление?
Если есть схема на рассыпухе то её очень просто запрограмировать. Взять щилд с реле типа http://iarduino.ru/shop/rele/rele-elektromehanicheskoe-do-250v-10-a-8--kanal-5v.html
И датчик первого цилиндра любой. Остается только вопрос с запуском. Стартёр будет? Или рукой первый оборот?
Пока едет ко мне Arduino, спрошу как профан, будет ли работать данная программа, в правильном направлении иду?
к примеру у меня датчик оборотов, в спокойном состоянии нога МК будет подтянута на плюс, при срабатывании датчика на ноге присётствует минус.
П.С. стартер будет. Про реле спасибо, даже паять ничего не надо. И как раз восемь.
Реле не даст нужной задержки к примеру флажки при ударе начнут вибрировать или контакты будут пригорать,отсюда пропуски и неточность во времени исполнения.
Транзисторы будет правельней.Просто подобрать по мощьности.К примеру КТ817 вполне справляется с 5А.Задержка на сопротивление 15 ОМ 500ма срабатывает 3 милисикунды но на саленойды нужно помощьнее.
Ключь с двух транзисторов один типа SS8050 а второй силовой.По стоимости не дороже а по надежности и точности в разы лучше чем реле.