Почему я не могу просто подключить шаговый или карданный двигатель (BLDC) к заземлению, 5 В и аналоговым выводам Arduino?
Сегодня я подключил карданный двигатель BLDC к своему Arduino, и он издал очень небольшое дрожание. Я попытался установить аналоговый вывод для сигнального вывода двигателя (у двигателя было три вывода, я предположил, что один-питание, один-заземление, а один-сигнал/данные/положение), но двигатель почти не двигался. Я хотел, чтобы мой двигатель вращался с некоторой постоянной скоростью, определяемой этим сигнальным выводом, или, может быть, переместился в положение, указанное в сигнальном выводе.
После дальнейших исследований я нахожу много страниц, где мне советуют использовать "контроллеры" или другие сложные настройки для управления двигателем. Я не понимаю, почему это так сложно. Разве не может быть просто подключить шаговый двигатель к Arduino и получить несколько постоянных оборотов на основе управления Arduino?
@Nick N, 👍0
Обсуждение3 ответа
Мало того, что доступный ток ограничен, но, в частности, шаговый двигатель не способен работать только за счет подачи питания.
Его приводные катушки должны быть запитаны последовательно, чтобы "тянуть" ротор вокруг, и последовательно со скоростью, которая приводит ротор в движение с требуемой скоростью вращения. Схема для этого является внешней по отношению к шаговому устройству, обычно представляет собой комбинацию логических сигналов от микроконтроллера (обычно) и аппаратного обеспечения для преобразования этих сигналов в приводные токи, последовательно передаваемые на катушки статора. Это то, что делает шаговые двигатели такими гибкими - управляемыми по направлению и скорости, вплоть до одноступенчатого уровня (в зависимости от расположения ротора)-за счет более сложной схемы привода. Короче говоря, шаговые двигатели необходимо непрерывно программировать, чтобы управлять ими в соответствии с требованиями механической системы.
Это вопрос власти. Под этим я подразумеваю Мощность = Мощность x Ток
.
Проще говоря, микросхема регулятора питания 5 В на Arduino предназначена только для питания микроконтроллера(ов) и нескольких других электронных компонентов.
В Arduino есть небольшой регулятор 5 В, который способен выдавать от 100 мА до 500 мА в зависимости от вашего Arduino. Не забывайте, что сам микроконтроллер потребляет примерно 20 мА. Оставшийся ток способен питать элементы с очень низким энергопотреблением, такие как датчики, выключатели, светодиоды и т.д., Но не детали, требующие большего питания. К сожалению, двигатели требуют гораздо большей мощности, чем может обеспечить регулятор на Arduino.
Я предлагаю вам использовать второй источник питания 5 В. Например, вы могли бы использовать:
- Настольный источник питания
- Блок питания типа штекерного пакета или зарядного устройства для телефона
- Старый компьютерный источник питания
- Преобразователь постоянного тока в постоянный (как этот)
Это лишь некоторые из них. Есть еще много вариантов.
Бесщеточный двигатель постоянного тока состоит из трех катушек провода, соединенных в конфигурации Y (wye) или Δ (delta), и магнитного ротора. Катушки равномерно расположены вокруг двигателя на 360 градусов. Может быть несколько полюсов или "копий" каждой катушки, поэтому не обязательно 120 градусов от катушки A до катушки B - например, это может быть ABCABCABC, чтобы пройти полный круг с 40 градусами между катушками. Здесь нет проводов питания, заземления или передачи данных, только электромагниты.
В любом случае, когда ток проходит через одну из катушек, он образует электромагнит и притягивает ротор в это положение. Мы говорим, что катушка под напряжением. Многократно включая и выключая различные катушки, вы заставляете ротор вращаться по кругу. Если вы активируете A, затем B, затем C, затем A, затем B, затем C, он вращается в одну сторону; активируйте C, затем B, затем A, затем C, затем B, затем A, и он вращается в другую сторону. Направление тока также имеет значение, потому что противоположный ток создает противоположное магнитное поле. Конечно, вы также должны правильно рассчитать время - поэтому магнитная сила всегда тянет ротор вперед, чем он находится в данный момент. Когда ротор догоняет магнитную катушку, вы переключаетесь на следующую. Я слишком упрощаю.
Чтобы использовать его, вы можете купить контроллер, у которого есть провода питания, передачи данных и заземления, а также 3 провода для магнитов, и вы говорите контроллеру идти, и он обрабатывает все переключение и синхронизацию для вас. Вы могли бы создать свой собственный, но удачи.
Степперы-это та же основная идея, но оптимизированная для низких скоростей и точных движений вместо больших движений. Поскольку вы не так сильно заботитесь о времени для шагового двигателя - вы перемещаете его по одному шагу за раз и на самом деле не пытаетесь использовать его инерцию - вы можете написать свой собственный алгоритм управления, если хотите. Обратите внимание, что цифровые контакты Arduino все еще не могут выводить достаточный ток, поэтому вам все еще нужна какая-то схема. Или вы можете купить контроллер шагового двигателя.
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Шаговый двигатель с концевыми выключателями
- Запустить два степпера одновременно
- Как контролировать скорость шагового двигателя 28BYJ-48 без использования библиотеки?
- Обратная связь по положению для шагового двигателя
- Библиотека AccelStepper: Как перейти на позицию, не замедляясь?
- Питание Arduino напрямую от драйвера двигателя (DRV8825) или внешнего источника питания?
- Можно ли использовать шаговый двигатель?
arduino не является источником питания ... его выходная мощность по току очень ограничена ... он не может напрямую управлять двигателем ... вам повезло, если ваши выходные контакты arduino все еще живы после вашего эксперимента, @jsotola