Я пытаюсь заставить свой шаговый двигатель повернуться на 90 градусов, остановиться на секунду и повторить эти шаги.
Пожалуйста, обратите внимание, что я новичок, но я прошел курсы физики, поэтому я понимаю большинство основных понятий электроники, таких как напряжение, сила тока, последовательное, параллельное, сопротивление и т. д.
Таким образом, я настраиваю это с помощью raspberry pi, подключенного к драйверу шагового двигателя a4988 Pololu, который выдает 2 ампера при оптимальном охлаждении и 12 В, с биполярным шаговым двигателем, который рассчитан на 2 ампера на фазу и получает 12 В. . Моторы питаются от источника питания 30 ампер, 12 вольт.
Все подключено по приложенной схеме, проверено много раз. Было использовано много различных сценариев, и в настоящее время мы используем сценарий Python из RPI, который выполняет 50 шагов (90 градусов), а затем ждет одну секунду. Этот код работает и является правильным, потому что иногда он работает. При работе двигатель греется, но не горячий на ощупь. Кроме того, когда питание включено, но код не запущен, он иногда гудит и щелкает, не двигаясь. Источники в сети говорят, что это нормально.
Это кажется очень случайным, когда он работает и когда он не работает, например, при проверке тока, проходящего через один из проводов катушки, с помощью мультиметра, подключенного последовательно, двигатель работает отлично, но когда мультиметра нет, двигатель сходит с ума, гудит и меняет направление беспорядочно, одна из моих теорий относительно того, почему это связано с добавочным сопротивлением, и в этом случае последовательное подключение резистора может решить проблему, но, похоже, не устраняет корень проблема.
Другие предпринятые действия: - Использование arduino uno вместо Pi, те же проблемы - Запуск кода с использованием разных способов, разных библиотек и т. Д. - Переключение на другой двигатель и драйвер. -все переделывал несколько раз -регулировал винт регулировки напряжения на драйвере. -обеспечено адекватное охлаждение блока питания и драйвера (2 компьютерных вентилятора по 120 мил)
- схема проводки
https://i.imgur.com/undefined.jpeg -- изображение установки
-- используется код
любая помощь или предложения будут очень признательны, слишком много часов ушло на это. LMK, если нужна дополнительная информация.
Несколько возможностей:
Вы можете попробовать добавить задержки, чтобы получить рабочий цикл 50%, как это было предложено Джонком.
...
GPIO.output(21,true)
time.sleep(0,01)
GPIO.output(21,false)
time.sleep(0,01)
...
Вы также можете попробовать добавить в свой код рампы ускорения и замедления и использовать библиотеку Arduino, которая их поддерживает (например, AccelStepper).
Кроме того, переключение контекста на Raspberry Pi вызовет неравномерность синхронизации последовательности шаговых импульсов, что приводит к очень быстрому ускорению и замедлению двигателя, что может превысить возможности двигателя по крутящему моменту. Крутящий момент шагового двигателя обычно падает со скоростью вращения, но обычно имеет резонансную полосу, в которой крутящий момент падает почти до нуля в определенном диапазоне скоростей. Установка на вал маховика (или другой нагрузки с небольшой угловой инерцией) может минимизировать эффект резонанса.
Это повторяет несколько наблюдений / предложений от других, а также то, что я выполнял шаговое управление с использованием A4988 не раз, когда мой список белья (по порядку) был бы;
Транзистор
придурок
Транзистор
glen_geek
Джейк Чанн
glen_geek
Всплеск напряжения
уфок