Контроллер для кордовых электричек
Ну так экран с кнопками и есть программатор. Или программатор может прошить пустую ардуину?
Просто нужны экран и кнопки для настройки, есть шилд экран с кнопками, если его можно использовать без uno, такой вариант тоже пойдет.
Сейчас для программатора нужно иметь Уно и шилд с кнопками,
а можно реализовать на i2c LCD 1602 + энкодер
Хотя, много сэкономить не получится
Ну так экран с кнопками и есть программатор.
на видео выше это просто экран без кнопок, чисто индикация
задал пару вопросов про пересчет частоты меандра в обороты мотора,
но что то мне подсказывает, что единого алгоритма может не быть,
так как схема намотки и количество витков на зубе тоже влияют на конечные обороты.
Но, как вариант, в режиме программирования можно добавить функционал расчета коэффициента пересчета.
Например,
- таймер выводит измеряемую частоту меандра на некоторый уровень, например 1200 Гц
- с помощью тахометра измеряются обороты и полученное число вводится в память контроллера.
А дальше чистая математик.
Но это если не найдется алгоритм рассчета
Проще за расчет тогда взять количество полюсов, оно обычно указано в описании мотора, и что самое интересное, в основном это 14, на те моторы которые используются в пилотаже. И эти данные вносить через программатор.
Попробуйте, по одной фазе прогнать через операционник, какой там будет меандр? Может будет нечто похожее, на то что снимали с транзисторов.
Скорее всего не пойдет, вот конкретный пример,
два мотора
Turnigy Aerodrive SK3 - 3530-1460kv Brushless Outrunner Motor
- Turns: 22T
- Voltage: 2~3S LiPo
- RPM/V: 1460kv
Turnigy Aerodrive SK3 - 3530-1340kv Brushless Outrunner Motor
- Turns: 24T
- Voltage: 2~3S LiPo
- RPM/V: 1340kv
Что такое Turns и почему с увеличение, падают обороты на вольт ?
вот меандр рядом с фазой
одну фазу через операционник не прогнать ), точнее прогнать можно, а меандр не получится.
на выходе получится или таже фаза или высокий уровень, фазовый сигнал не проходит через ноль.
В пятницу заберу другой мотор, для которого у меня есть пропеллер
и попробую соотнести обороты мотора, для которого известно kV с частотой меандра.
Все зависит от сайта который публикует, вот пример:
Фирменное Наименование: Surpasshobby Название позиции: бесщеточный двигатель Название позиции: C3548 КВ: 900 кВ Максимальная мощность: 1000 Вт Максимальный ток: 60А Полюса ротора: 14 Ток холостого хода: 2,2 А Сопротивление: 0033 Ом Размер двигателя: 35x48 Размер статора: 28 х 26 Тяга: 1780 г Размер двигателя (мм): Ф3548 Батарея: 2-5S Lipo Опора (дюйм):118/136/147
у всех моторов количество полюсов одинаковое 14, а kV разный
Да, все правильно, разное число витков на зуб. И количество зубов на одну фазу, может быть разным. Например 12 зубов, это по 4 зуба на фазу.
Так же схема подключения может быть разной, звезда или треугольник.
так в том и вопрос, как все это учитывать.
в общем, завтра заберу мотор с пропеллером и буду смотреть одновременно обороты и частоту.
а дальше начну делать выводы.
Turns
Это количество витков в обмотке на каждый зуб. От него зависят такие параметры как количество оборотов на вольт (KV) и максимальное напряжение. KV, так же зависит от способа подключения обмоток звездой или треугольником.
на неопознанном моторчике измерения на нескольких оборотах дали следующие цифры
значения достаточно условные, потому как обороты на тахометре немного плавали,
свет не стабильный и моторчик в руках
и частота на осциллографе тоже немного гуляла, по тем же причинамм.
обороты | частота меандра | делитель |
---|---|---|
2700 | 310 | 8,7 |
4200 | 480 | 8,75 |
4380 | 500 | 8,76 |
6950 | 800 | 8,68 |
Т.е. коэффициент можно условно считать 8,75
Ничего не понимаю
Так тахометр тоже может врать, а вернее скорее всего и врет.
Надо распаяться на транзисторе регулятора, где управляющий сигнал с контроллера и посмотреть, что там происходит и с ним сравнивать.
Еще интересен вопрос, а если взять другой мотор, любой, делитель будет так же 8.75 или нет?
в регулятор не хочу лезть ), задача сделать предельно простой вариант.,
другой мотор попробую завтра.
скорее всего “делитель” будет меняться в зависимости от параметров мотора.
отсюда надо будет подумать, как реализовать программирование требуемых оборотов.
например сделать калибровку, выше уже писал варинт
У меня вопрос, а оборот, это ведь когда отработают все три фазы? А мы меандр строим по двум фазам или трем?
по трем его построить не получится, это разница между фазовыми сигналами
ну я и тормоз )))
обороты в минуту, а частота меандра в Герцах (единицы в секунды)
310 / (2700 / 60) = 6,89
480 / (4200 / 60) = 6,86
500 / (4380 / 60) = 6,85
800 / (6950 / 60) = 6,9
отклонение 2 процента, можно считать погрешностью измерений.
в общем все по науке, коэффициент пересчета Герц в обороты в секунду
равен половине количества магнитов.
думаю точность регулировки оборотов в 2 процента всех устроит )
Вполне, это скорее всего погрешность тахометра. И исходя из этого, для настройки оборотов, можно брать шаг 100.
пишу регулятор оборотов, сломал всю голову,
как часто надо проверять обороты мотора для корректировки.
период импульсов с формирователя на малых оборотах 2 миллисекунды,
пишу программу так, что бы на каждом импульсе считались текущие обороты,
это примерно 50 раз в секунду.
и сразу второй вопрос, начиная с какого отклонения оборотов следует принимать меры ?
там в принципе процесс будет простой,
если при измерении оборотов отклонение больше или меньше <дельта>,
таймер будет <уменьшать>/<увеличивать> частоту PWW на входе в регулятор.
упростил задачу, сейчас Ардуина считает время на один оборот в микросекундах,
вот это время и будет браться за основу для автоматической регулировки.
иначе придется лезть подключать плавающую арифметику, а ресурсы Меги 328 не бесконечные.
придумал !!! как избежать плавающей математики.
при старте программа, пересчитывает требуемые обороты мотора в микросекундах на один оборот.
сразу считаем дельту, это допустимое отклонение, например 5 процентов в каждую сторону.
прелесть подхода в том, что этот расчет делается только один раз.
обработчик прерываний считает количество прерываний от кросс платы
и сравнивает их с количеством полюсов мотора деленным на два
получая тем самым время в микросекундах на один оборот мотора
А дальше все просто, полученный результат измерений сравнивается с требуемым
если результат меньше требуемое значение минус дельта - обороты больше требуемых,
то уменьшаем длительность импульса PWM, уменьшаем обороты мотора.
и наоборот, если результат больше “требуемого значения плюс дельта” - увеличиваем длительность PWM.
А подсчет полюсов? Вручную?
А подсчет полюсов? Вручную?
считать магниты или брать в описании мотора
других вариантов я не знаю.
Тогда в таймер добавить поле для записи параметра, не забыть. Или можно посчитать по обратной эдс , когда фаза неактивна. Нашел скетч esc на базе atmega48, там отслеживается обратная эдс, и на ее базе можно сделать аварийное отключение мотора, если мотор не вращается. Если нужно, скину скетч завтра.
пусть будет.
а пока дописал кусок автоматической регулировки оборотов.
сейчас думаю, как его проверить, варианта два
- использовать источник питания с изменяемым напряжением, но такого у меня нет
- увеличить нагрузку на мотор, установленный на стенде, даже не представляю как
есть третий вариант, поставить на средних оборотах (дабы не сгорел) и ждать пока мотор выкушает батарейку,
а в процессе следить за напряжением и оборотами мотора,
вот только батарейки 2S у меня все от 2500 мАч (питание борта бензинки),
а тестовый моторчик маленький и кушает в пике 1,5А,
это cколько же времени мне придется ждать хоть какой то результат ?
когда фаза неактивна
все равно надо знать количество полюсов