УПРАВЛЕНИЕ ПОЛОЖЕНИЕМ ДВИГАТЕЛЯ ПОСТОЯННОГО ТОКА С ПОТЕНЦ...
Используемые вещи:
Arduino Uno R3 x1 https://www.sparkfun.com/products/11021
Потенциометр B10K x1 https://www.sparkfun.com/products/9939
Двигатель постоянного тока N20 x1 https://www.sparkfun.com/products/12285
L293D Shield для Uno/ или специальный драйвер H-Bridge, который потребуется перекодировать x1 https://www.sparkfun.com/products/315
История
Двигатели постоянного тока используются повсюду в робототехнике благодаря простоте управления и способности обеспечивать как скорость, так и мощность. Но есть одна ключевая проблема: им не хватает встроенной обратной связи. Итак, чтобы точно контролировать их движение, нам нужна внешняя помощь.
Один из распространенных способов сделать это — использовать серводвигатель, который представляет собой двигатель постоянного тока со встроенным потенциометром и схемой управления. Серводвигатель может вращаться на определенный угол в зависимости от входного сигнала контроллера. Однако серводвигатели могут быть дорогими, и им может не хватать крутящего момента или скорости для некоторых приложений.
Другой способ управления положением двигателя постоянного тока — использовать отдельный потенциометр в качестве устройства обратной связи. Потенциометр — это переменный резистор, значение которого меняет значение сопротивления в зависимости от вращения ручки. Прикрепив один к валу двигателя и измерив напряжение на нем, мы можем оценить положение двигателя. Затем в дело вступает Arduino, который сравнивает желаемое положение с фактическим, соответствующим образом регулируя скорость и направление двигателя.
В этом проекте я буду использовать мотор-редуктор постоянного тока N20, известный своими небольшими размерами и впечатляющей мощностью благодаря металлическому редуктору, который увеличивает крутящий момент при одновременном снижении скорости. Я также буду использовать корпус и шестерни, распечатанные на 3D-принтере, чтобы прикрепить потенциометр к двигателю. В корпусе есть паз для двигателя и потенциометра, а шестерни имеют 10 и 30 зубцов соответственно, что обеспечивает соотношение 3:1 между двигателем и потенциометром. Это означает, что при каждом полном обороте двигателя потенциометр будет поворачиваться только на 120 градусов.
Я буду использовать Arduino Uno вместе с экраном L293D для управления двигателем. Этот щит действует как драйвер, способный управлять четырьмя двигателями постоянного тока или двумя шаговыми двигателями. Он имеет четыре входных и выходных контакта для каждого двигателя, обеспечивающих ток до 600 мА на канал, а также регулятор 5 В и переключатель питания, и его можно установить поверх Arduino.
Arduino считывает аналоговое значение с потенциометра (отображенное в диапазоне от 0 до 1023) и желаемое положение, отправляемое через последовательный вход компьютера. Затем он вычисляет ошибку между этими двумя значениями и использует алгоритм пропорционального управления (с постоянным коэффициентом, называемым Kp), чтобы регулировать скорость и направление вращения двигателя. Этот алгоритм в основном преобразует ошибку в выходной сигнал (от 0 до 255), отправляемый на экран L293D. Затем экран преобразует этот сигнал в сигнал ШИМ, который соответствующим образом управляет двигателем.
Чтобы отслеживать, что происходит, Arduino отображает текущие и желаемые положения вместе с ошибкой на последовательном мониторе. Это позволяет вам видеть, как ведет себя двигатель, и даже позволяет вводить новые желаемые положения, чтобы проверить реакцию системы в режиме реального времени.
Благодаря этой настройке у вас есть экономичный и точный способ управления положением вашего двигателя постоянного тока, открывающий захватывающие возможности для ваших проектов в области робототехники!
Контроль положения «взрыв-взрыв»
Ардуино
Arduino считывает аналоговое значение с потенциометра (отображенное в диапазоне от 0 до 1023) и желаемое положение, отправляемое через последовательный вход компьютера. Затем он вычисляет ошибку между этими двумя значениями и использует алгоритм пропорционального управления (с постоянным коэффиц��ентом, называемым Kp), чтобы регулировать скорость и направление вращения двигателя. Этот алгоритм в основном преобразует ошибку в выходной сигнал (от 0 до 255), отправляемый на экран L293D. Затем экран преобразует этот сигнал в сигнал ШИМ, который соответствующим образом управляет двигателем.
Чтобы отслеживать, что происходит, Arduino отображает текущие и желаемые положения вместе с ошибкой на последовательном мониторе. Это позволяет увидеть, как ведет себя двигатель, и даже позволяет вводить новые желаемые положения, чтобы проверить реакцию системы.





























