Есть у меня пара единиц детского электротранспорта для внуков:

k1.jpg (193.26 кБ. 799x666 - просмотрено 3415 раз.)

m1.jpg (160.6 кБ. 800x666 - просмотрено 126 раз.)
И настала пора их модернизировать, поскольку «умерли» окончательно свинцовые аккумуляторы, перестал устраивать «жесткий» старт и отсутствие возможности регулировки скорости. Последние два пункта особенно актуальны, так как внуки разновозрастные и, если старших «дерганье» не особо беспокоит, но маловата скорость, то младших, наоборот, пугает и дерганье и скорость…
Побродив по интернету, нашел тему про «Плавный пуск» на этом форуме. Собрал схему на макете… Поиспытывал… Работает, но не понравилось, что очень трудно добиться нужных параметров, поскольку схема аналоговая и «все от всего» зависит!
Возникла идея собрать схему на «ардуинке» - имелся небольшой опыт в других проектах…
После некоторых усилий, потраченных на разработку, родилась такая схема:

схема.JPG (163.09 кБ. 1754x1240 - просмотрено 154 раз.)
Вот так это выглядит «в железе»:

k2.jpg (128.49 кБ. 685x516 - просмотрено 125 раз.)

k3.jpg (141.96 кБ. 736x574 - просмотрено 49 раз.)

m2.jpg (153.73 кБ. 877x652 - просмотрено 47 раз.)

m3.jpg (190.78 кБ. 800x600 - просмотрено 103 раз.)
Собрал из того, что было под рукой, ну и… «алиэкспресс» помог…
Поскольку не являюсь программистом, программы «рисую» в среде «FlProg»…
Вот как выглядит рабочая программа:

рег.jpg (114.98 кБ. 1843x728 - просмотрено 125 раз.)
Возможности схемы:
- позволяет устанавливать желаемую максимальную скорость
- при включении двигателей педалью скорость нарастает плавно до достижения установленной максимальной
- есть защита по току, при срабатывании которой двигатели отключаются
Можно реализовать плавное управление скоростью при помощи педали или ручки «газа», но я сознательно отказался от такого решения. Как было мною замечено, пользователи данной техники, независимо от возраста, предпочитают только один режим – газ в пол! Да и трясет водителя по неровной дороге так, что удерживать педаль или ручку газа в нужном положении не детская задача! Тем более, приобретя некоторый опыт, водители ухитряются регулировать скорость прерывистыми нажатиями на педаль.
Обращаю внимание, что через контакты педали подается напряжение питания на двигатели и силовую часть схемы, в то время как слаботочная часть схемы включается отдельным выключателем. Это сделано для безопасности – при не нажатой педали двигатели гарантированно обесточены, а значит «глюк» программы или неисправность схемы не приведут к неконтролируемому включению двигателей!
На квадроцикле, где педаль с двумя контактными группами, вторая пара контактов дает сигнал «ардуине» о нажатии педали. На машинке, где педаль с одной парой контактов, для формирования такого сигнала используется дополнительное небольшое реле, срабатывающее при подаче питания на силовой транзистор.
В качестве источника питания используется «подуставший» литий-ионный аккумулятор от самоката напряжением 36 В и емкостью 7,8 А/ч. В полностью заряженном состоянии он выдает 42 вольта, поэтому для питания схемы использован DC/DC преобразователь. Поскольку имевшийся у меня DC/DC допускал входное напряжение только до 40 вольт, последовательно с ним включена цепочка из трех диодов, на которой падают «лишние» 2 вольта. Понижающий преобразователь настроен на 10 вольт. Этого достаточно для управления силовым полевым транзистором и, в то же время, можно без опаски подавать на внутренний стабилизатор платы «ардуино» через вход «Vin». На схеме изображен внешний стабилизатор 7805, т.к. на одной из плат у меня внутренний вышел из строя, а на другой для экспериментов с датчиками оборотов нужен был более мощный источник 5 вольт.
Пробовал подавать ШИМ от «ардуинки» на затвор силового транзистора (IRFP064N) напрямую, без согласующих каскадов – работало, но форма импульсов на затворе не понравилась. При рабочих токах транзистор мог сильно греться. Поэтому добавил целых четыре транзистора и получил практически идеальные импульсы и чуть теплый блок даже в жаркую погоду! Шунтирующий моторы диод FR307. И транзистор и диод выпаивал из имеющегося «хлама», ориентируясь по минимальному сопротивлению и максимальному току. Конкретных рекомендаций дать не могу. На квадрике и на машинке защита по току настроена на 10 А. На квадрике срабатывала несколько раз, на машинке ни разу, хотя потребляемые токи примерно одинаковые. Объяснить можно, скорее всего, тем, что на машинке не пытаются ехать туда, куда на квадрике – колеса маленькие, трясет сильнее!
На квадроцикле родные движки были уже подгоревшие, поэтому заменил их на моторчики для шуруповерта (550-е) на 24 вольта, включив последовательно. Делал это с расчетом на возможность подачи на них полного напряжения батареи. При реальной эксплуатации регулятор скорости выставлял чуть больше половины, иначе квадрик слишком быстро носится – деду тяжело следом бегать

… Поскольку моторчики брал новые, то при монтаже запаял на них конденсаторы. На машинке таких конденсаторов нет, разницы в работе (в смысле помех на схему) не заметил.
На машинке моторы на 12 вольт, также включены последовательно. Чтобы при регулировке скорости случайно не подать на них слишком большое напряжение (батарея используется та же на 36 вольт), в программе ограничил пределы регулировки где-то до 24 вольт на максимуме. В реальной эксплуатации на максимум ни разу не ставил – так же чуть больше половины. Тем самым, на примере машинки схема продемонстрировала еще и способность работать достаточно мощным понижающим преобразователем напряжения.
Последовательное включение моторов играет роль дифференциала и на ровной поверхности имеет плюсы в виде более легкого маневрирования, но при движении по гравийке или неровному грунту случаются зависания одного колеса, и тогда без «толкача» не обойтись… Впрочем, это тоже имеет плюс, ибо «любишь кататься – люби и саночки возить»! Не заметил особого огорчения в таких ситуациях со стороны водителей – слезают, толкают, садятся и едут дальше!
Блоки запущены в эксплуатацию в начале лета, отработали достаточно интенсивно без замечаний. Разве что, разъемы надо использовать понадежней – на квадрике разъем от компьютерного блока питания от вибрации выпадал.
Теперь немного о программе.
«FlProg» использую по причине наглядности и достаточности для большинства интересных мне проектов. Навыков чтения цифровых схем здесь вполне хватает для составления довольно сложных программ! К примеру, возьмем фрагмент вышеприведенной программы:

1.jpg (29.58 кБ. 1451x378 - просмотрено 102 раз.)
Здесь прямоугольник «скорость» это оцифрованное напряжение с движка подстроечного резистора «Скорость». При изменении напряжения 0-5 вольт, значение в этом прямоугольнике меняется в диапазоне 0-1024. Прямоугольник «мотор» это вывод «ардуинки» с сигналом ШИМ. Заполнение ШИМ задается числом в диапазоне 0-255. Поскольку диапазоны значений не совпадают, применен блок «SCALE», согласующий эти диапазоны значений. На полной схеме над прямоугольником «мотор» есть еще один, в котором написано «ШИМ 8КГц». Дело в том, что по умолчанию «ардуинка» выдает ШИМ 1КГц. Все работает, но мотор в некоторых режимах «пищит». Чтобы избавиться от писка, добавлен этот блок, перенастраивающий ШИМ на 8 КГц.
В принципе, такой программы достаточно, чтобы управлять мотором от ручки газа или аналоговой педали. Но был нужен плавный старт, поэтому схема была доработана:

2.jpg (92.46 кБ. 1849x793 - просмотрено 39 раз.)
Здесь добавлены «Педаль» (замыкающийся контакт), генератор «G-SM» и счетчик «CTU». Генератор генерит импульсы с периодом 4 мс. При нажатии на педаль, счетчик начинает считать эти импульсы с нуля до значения, которое поступает из ранее описанного блока «SCALE» (в диапазоне 0-255). Количество отсчитанных импульсов непрерывно подается на «Мотор». При достижении установленного максимума счет останавливается на достигнутом значении. При отпускании педали счетчик сбрасывается на ноль. Таким образом, при установке максимальной скорости (255) и периоде счета 4 мс, разгон будет происходить примерно 1 секунду. Изменяя период счета, можно корректировать время разгона. Для представленного выше электротранспорта 1 секунда оказалась оптимальным временем!
Опять же, на полной схеме программы, этот узел выглядит несколько сложнее. Дело в том, что в упрощенном варианте после нажатия педали и запуска мотора, отсутствует возможность оперативно регулировать обороты. Изменить обороты можно, только отпустив педаль, крутнув подстроечный резистор и снова нажав педаль. При наладке схемы это было неудобно. Поэтому был добавлен переключатель «Switch», который после достижения счетчиком максимума, переключает мотор напрямую к регулятору скорости. Так это и осталось в программе, хотя при реальной эксплуатации не потребовалось. Еще на рабочей программе есть переменная «стоп» и логический элемент «OR». Они нужны для остановки генератора после достижения счетчиком максимума. Тоже осталось после экспериментов…
Для полного описания программы, осталось добавить узел защиты по току:

3.jpg (89.42 кБ. 1390x674 - просмотрено 74 раз.)
Он состоит из «датчика тока» (мощный резистор 0,1 Ом), блока сравнения «I1>I2», одновибратора «TON» для блокировки импульсных помех, триггера-защелки «SR» для фиксации срабатывания, вывода индикации срабатывания и переключателя «Switch».
На вывод «датчик тока» поступает напряжение с резистора, которое пропорционально протекающему току. Например, при токе 10 А, на резисторе 0,1 Ом будет напряжение 1 вольт. После оцифровки такое напряжение будет представлено значением около 200 (5 вольт – это 1024; 1 вольт – это 1024:5=204). Принятое значение сравнивается в блоке сравнения с константой 200 и при превышении выдает сигнал на одновибратор, настроенный на 1 секунду. Если превышение тока длится менее 1 секунды, то оно игнорируется. Если больше, то срабатывает триггер-защелка «SR», который, в свою очередь, вызывает срабатывание переключателя и на мотор выдается ШИМ с заполнением «0», то есть «стоп»! Также появляется сигнал на выводе «перегрузка», на котором может быть светодиод или зуммер. Триггер-защелка нужен для предотвращения перехода схемы в автоколебательный режим, поскольку после прекращения подачи питания на мотор, пропадает и сигнал с датчика тока, что, в свою очередь, разрешает снова включение мотора. И так по кругу…
Сбросить срабатывание защиты по току можно выключением и последующим включением питания. Можно было сделать сброс и отпусканием педали, соединив вход R триггера с аналогичным входом счетчика «CTU», но дело в том, что совсем юные пользователи этой техники не всегда соображают, почему перестало ехать и начинают интенсивно топтать педаль, вызывая хоть и кратковременные, но частые перегрузки. А так, после срабатывания защиты моторы на педаль уже не реагируют. Для возвращения к нормальной работе надо именно выключить и снова включить питание. Более старшие пользователи это быстро осваивают, а мелкие вынуждены ждать, пока подойдет дедуля и разрулит ситуацию!
Таким образом, даже упрощенная версия программы, работу которой я постарался достаточно подробно пояснить, вполне годится для применения.
После компиляции, программа занимает в памяти ATmega168 всего 16%. При желании можно добавить еще каких-либо функций в зависимости от наличия фантазии.
Меня хватило только на выше представленное.
Надеюсь, кому-нибудь пригодится…
ссылка на файл программы.