Идея е-вела бередит меня уже с десяток лет, реализовал только сейчас!
Спойлер
Указанная сумма — средства на моторизацию обычного велосипеда, включая батареи.
Задача — именно поддерживать скорость на горизонтальном участке асфальта 20км/ч и помогать в остальных случаях.
Запас хода — ~30 минут
Приступим
Для начала поясню почему 50$ — предел стоимости самоделки — это цена китайской бензопилы, мотор от которой можно приколхозить, а 200$ — уже Honda Dio27.
Вводные были следующие:
- На горизонтальном участке асфальта, велосипедист на "дорожнике" дл поддержания скорости 20км/ч тратит 100Вт.
- Большая мощность нужна лишь кратковременно на разгонах/подьемах.
- Напряжение свинцовой(12В) батареи под нагрузкой сильно просаживается, в е-велах до 10В (а мощность — пропорциональна квадрату напряжения — падает вдвое (против 14В)!)
То-есть, для нормальной езды на велосипеде, достаточно номинально ОТДАВАЕМЫХ мотором 100Вт мощности — нужно только отвязаться от падения напряжения!
Это реализовано ШИМ-управлением питания 12-вольтового двигателя от батареи в 24В, плюс появляется возможность реализовать кратковременный ФОРСАЖ.
В итоге, был взят двигатель радиатора охлаждения General Motors (Daewoo AKA Opel Kadett) ~ 150Вт (потребление — на выходе как раз Over100Вт и есть) -13$.
И две наиболее ходовые батареи для бесперебойников — AGM, 12Вольт, 7ампер-часов каждая, по 10$.
Если взять еще цену Digispark — 2$
В общем плюс 1$ — транзисторы (2шт — IRLZ44NPBF) — у меня вышло $36, но допустим у кого-то нет фанеры, патрона от старой дрели и медных проводов сечением 2.5 квадрата.
Все это докупается на "блошином" рынке, да и компоненты можно использовать другие — двигатель, батареи.
Я пообещал себе, что в начале лета это все поедет — но не успевал, психонул — и таки поехало!
Поначалу, даже без контроллера — батареи заряжены током ~7.5% — 0.5А каждая, запараллелены и через обычный выключатель скоммутированы на двигатель.
Да-да, знаю — лютый колхоз, но надо было с чего-то начать, а дорабатывать и причесывать можно бесконечно.
За основу взят убитый Ашанбайк на колесах 24" (будет Кама/Десна/Салют), ну или колеса от них на этой раме.
Синяя изолента — НАШЕ ВСЕ (конечно уже вовсе не та)!
Заклеил вентилляционные отверстия, и был прав — пыли на движок садится слой в палец толщиной!
Крепление двигателя — из дельта-древесины (бакелитовой фанеры) и строительного металлического уголка.
Привод — прямой на покрышку.
Учитывая обороты под нагрузкой 2400Об/мин, для 20км/ч диаметр ролика должен составлять ~40мм (патрон обычной дрели). Но — деревня, грунтовка, ограничился двадцатью миллиметрами. Да, и в таком варианте, даже по грунту скорость держалась (~10км/ч), о разгоне нет и речи.
В общем, тестовый прогон первого десятка километров, показал таки ЛЮТУЮ необходимость повышения мощности двигателя хотя-бы до номинальной.
Я уже не говорю о КПД передачи на покрышку — 70% в прыжке.
Итак, схема подключения контроллера Digispark (да простит меня читатель за рисунок карандашом на бумаге).
Представляю какая сейчас на изюмском шляхе битва идет да, да, да — знаю не поставил резисторы подтяжки на кнопки. Были демоны резисторы, но они самоликвидировались )
Дело в том, что как оказалось не все входы Digispark-а вопринимают логический ноль, остальные так-же относятся к логической единице.
Схематически все — просто — цифровые пины ввода/вывода — любые, логический 0 на 5-ом ресетит контроллер. Реальность оказалась куда запутанней — пришлось подбирать методом тыка — в итоге повыкусывал резисторы подтяжки, соединил чтобы работало.
Для реализации девайса выпилил кусочек макетной платы 10х18 отверстий (3х5см).
Еще понадобились две кнопки для трех режимов:
- Нажата кнопка 1 — режим соответствующий 12В — 100% — едь, пока батареи не сядут.
- Нажата кнопка 2 — 15В — 156% — в принципе в бортсети авто такое напряжение, но дольше 15 минут лучше не использовать.
- Две кнопки сразу — ФОРСАЖ! 256% — рвонуть со светофора/от злой собаки, вгору, время — меньше — лучше (иначе горелые обмотки гарантированны).
Последний пока не реализовал — боюсь за щетки коллектора и обмотки — они даже на 1 режиме перегруз по току получают.
Остальное — резисторы — 2шт — 10K (подтяжка нуля на затворы транзисторов).
3K и 330R — делитель напряжения на аналоговый вход P2 (при падении до 18в — идет отсечка нагрузки).
2х100R- ограничение тока управления транзисторами с ШИМ-выхода P0.
Ну и наконец, 330R на Vin — ограничитель тока регулятора напряжения Digispark (дабы не сжечь стабилизатор напряжения).
В общем, в "железе" все выглядело следующим образом — силовые транзисторы закрепил на радиатор от какого-то процессора 70x60x40мм.
Сток IRLZ44 соединен с пластиной теплоотвода, поэтому дабы убрать необходимость изоляции близкорасположенных ног — двигатель подключал именно сюда (коричневый провод).
Пару слов о транзисторах — полевые, 5-го поколения, со внутренним обратным диодом (важно для подключения индуктивной нагрузки, как то: двигатель).
Максимальный ток — 47A, напряжение — 55В, Rds (при 5В на затворе и токе 25A) — 0.025Ом.
Можно выбрать любые другие мощные полевики с низким сопротивлением перехода.
Кроме того, для того, что-бы не использовать драйвер управления ОБЯЗАТЕЛЬНО должны быть с управлением логическим уровнем (L в наименовании).
Почему их два? Номинальные характеристики того-же сопротивления указаны для 25 градусов Цельсия и токах в 20-25А, при нагреве и большем токе будет хуже.
И да, логическая 1 — это не всегда ровно 5 вольт, сам-же транзистор на 4В по затвору недооткрывается, Rds уже 0.035Ом при токе 21А.
Запас должен быть по крайней мере двойной — а через движок, берущий до 14 Ампер при 12 вольтах, на 24В может протекать 28А!
Да и к тому-же их у меня в запасе с десяток — лучше сразу поставить пару, чем потом по одному перепаивать.
Совсем забыл, Digispark у меня включается в разьемы (PBS PBD).
Теперь — скетч:
//Программа для Digispark (Attiny85)
// Шим-контроллер двигателя постоянного тока
byte voltage1=0;
byte pwm0=0;
void setup()
{
//определение пинов
//ШИМ для MOSFET
pinMode(0, OUTPUT);
// аналоговый вход для чтения напряжения батареи
pinMode(2, INPUT);
// цифровые пины чтения состояния кнопок
pinMode(1, INPUT);
pinMode(3, INPUT);
}
void loop()
{
analogWrite(0,0);
delay(1);
voltage1 = analogRead(1)*62/1023;
//проверка состояния разряженности батареи - если напряжение ниже 18В - движок не стартует
if ( voltage1<18 )
{
goto lowvoltage1;
}
if ( digitalRead(3) )
{
if ( digitalRead(1) )
{
//расчет потребляемой мощности как пропорция квадрата напряжения - нормализуем до 12В
pwm0=(12^2/voltage1^2)*255;
analogWrite(0,pwm0);
delay(100);
}
}
else
{
//расчет потребляемой мощности как пропорция квадрата напряжения - нормализуем до 15В
pwm0=(15^2/voltage1^2)*255;
analogWrite(0,pwm0);
delay(100);
}
lowvoltage1:
;
}
Что можно поменять в схеме и компонентах?
-
Двигатель — изначально предполагал использовать МЭ-272 (ВАЗ), но корейский оказался доступнее, если взять движок на разборке, то можно сэкономить на дополнительные батареи.
-
Батареи — по соотношению цена-емкость (в ампер-часах) 12-вольтовые на 7А-ч — оптимальны, 2 батареи в 10А-ч обойдутся в цену ЧЕТЫРЕХ семерок! Если нужно увеличить пробег — соединяйте их попарно-параллельно! И да — никаких гелевых — только AGM!
Впечатления:
Тестовый прогон первого километра на более мощном режиме показал отсутствие перегрева двигателя (до 40 градусов цельсия) и чуть теплый радиатор транзисторов — значит схема рабтает корректно.
В состоянии покоя — потребление — 30мА — чисто Digispark, через MOSFET утечек нет.
Для выбранного типа привода нужны покрышки-слики.
Но даже при таких раскладах двигатель тянет куда веселей, чем от запараллеленых батарей напрямую — по асфальтовому участку даже с "ветерком".
В общем, идея ШИМ-управления 12-вольтовым двигателем от 24V-источника себя оправдала!
С Вами был Андрей, до новых встреч на Хабре!
Автор: Андрей Герасименко