Во-первых, поскольку я пришел из мира веб-программирования, я довольно новичок в электронике, и, возможно, некоторые из вещей, которые я делаю, неверны или могут быть сделаны лучше, поэтому любой намек будет высоко оценен.
Я строю робота/гусеничного автомобиля с 4 колесами. Каждое колесо напрямую подключено к двигателю постоянного тока 6 В 210 об/мин с энкодерами.
У меня двухсторонний драйвер двигателя с двумя Н-мостами.
Драйвер питается от аккумулятора LiPo 2S 7,4 В.
2 правых двигателя подключены параллельно к одному Н-мосту и 2 левых двигателя ко второму Н-мосту драйвера.
Я управляю двигателями через Arduino UNO, отправляя сигналы ШИМ на ШИМ драйвера.
Поскольку у моторов есть энкодеры, я мог считывать обороты одного энкодера с каждой стороны (одного слева и одного справа) и динамически настраивать ШИМ для другой стороны, принимая более медленную сторону за основную, а более быструю за задающую. раб, чтобы заставить их двигаться синхронно.
У меня проблема в том, что двигатели, которые подключены параллельно, двигаются с разной скоростью, хотя получают одинаковое напряжение/ШИМ-сигнал. Также их характеристики идентичны.
Я понимаю, что механически они не идентичны и на их работу могут влиять разные факторы, но как решить эту проблему? Является ли это возможным?
Вот мои идеи:
Может быть, есть другие правильные способы решения проблемы, о которых я понятия не имею. Но из большого количества подобных проектов, которые я нашел в Интернете, я думаю, что у них есть решение для этого. А может никого не волнует, что переднее колесо с правой стороны будет вращаться медленнее, чем заднее с той же стороны?
Двигатели постоянного тока всегда будут работать с разными скоростями.
Если у вас есть два двигателя, подключенных параллельно к одному драйверу, и вы измеряете скорость только от одного из них, то скорость другого двигателя будет непредсказуемой, если и когда двигатели не связаны механически. Нет реального способа исправить это с помощью электроники без добавления отдельных драйверов и обратной связи для каждого двигателя.
Если двигатели являются ведущими колесами, которые касаются земли, и разница крутящего момента между ними недостаточно велика, чтобы вызвать проскальзывание «шин», это может не быть проблемой, поскольку контакт с землей будет действовать как механическое соединение между двигателями. Примечание. Именно так ведущие колеса вашего автомобиля сохраняют одну и ту же скорость, несмотря на то, что они проходят через дифференциальную коробку передач. Однако потеря контакта с землей может вызвать некоторые странные эффекты.
В противном случае разумно установить зубчатый ремень или другое механическое соединение между валами двигателя, чтобы удерживать их вместе. Если у вашего поискового робота есть следы, это не проблема.
В некоторых случаях возможно совместное использование драйвера обоих двигателей. То есть иметь схему переключения, которая направляет мощность на каждый двигатель в процентах от времени, отдавая больший процент более медленному двигателю. Однако это, конечно, уменьшит производительность каждого двигателя на 50%, когда оба работают на скорости. Но это усложняется и не дает вам многого по сравнению с индивидуальным приводом для всех четырех двигателей.
LHigh = (L1 > L2 ? L1 : L2); RHigh = (R1 > R2 ? R1 : R2); SideToLowerPWM = (LHigh < RHigh ? 'RIGHT' : (LHigh > RHigh ? 'LEFT' : 'NONE'));
мне придется брать более высокие скорости с каждой стороны, потому что, когда одно из колес заглохнет, краулер остановится. Также нужна проверка на 0
ПлазмаHH
gsdaemon