Оглавление:

Двигатель с регулируемой скоростью с последовательным управлением: 6 шагов
Двигатель с регулируемой скоростью с последовательным управлением: 6 шагов

Видео: Двигатель с регулируемой скоростью с последовательным управлением: 6 шагов

Видео: Двигатель с регулируемой скоростью с последовательным управлением: 6 шагов
Видео: Простое управление оборотами шагового двигателя. 2024, Июль
Anonim
Двигатель с регулируемой скоростью с последовательным управлением
Двигатель с регулируемой скоростью с последовательным управлением

Управляйте скоростью небольшого двигателя постоянного тока с помощью всего лишь последовательного порта вашего компьютера, одного полевого МОП-транзистора и некоторого тривиального программного обеспечения. (MOSFET и последовательный порт составляют «контроль скорости»; вам все равно понадобится двигатель и соответствующий источник питания для этого двигателя; хотя последовательный порт может обеспечивать напряжение для включения и выключения mosfet, он может » t обеспечивает ток, необходимый для обычного двигателя.)

Шаг 1. Посмотрите на схему

Посмотрите на схему
Посмотрите на схему

Мы собираемся выполнить широтно-импульсную модуляцию, используя общий N-канальный силовой полевой МОП-транзистор, подключенный к выводу передачи данных из порта rs232 компьютера. Когда последовательный порт бездействует, контакт будет находиться в состоянии «1», которое к моменту его преобразования в rs232 будет примерно -12 В (в зависимости от драйверов оно может быть ближе к -9 В или -5 В), и транзистор будет полностью выключен. Когда мы передаем биты «0» на последовательный порт, на выводе RS232 будет напряжение +12 В или около того, чего достаточно для нормального включения большинства МОП-транзисторов.

Если мы передадим много «0» бис подряд, двигатель будет почти полностью ВКЛЮЧЕН, и двигатель будет работать быстро. Если мы передаем в основном биты «1», двигатель будет работать медленнее.

Шаг 2: Подключите его

Подключите его
Подключите его

Поскольку имеется только один компонент и несколько соединений, вы можете просто добавить провода «произвольной формы».

МОП-транзисторы чувствительны к статическому электричеству, поэтому будьте осторожны, но очень мало критично.

Шаг 3: Настройте файлы со значениями ШИМ

Настройка файлов со значениями PWM
Настройка файлов со значениями PWM

Один из способов управления двигателем без написания ЛЮБОГО программного обеспечения - подготовить некоторые файлы, содержащие соответствующие байты (с более или менее нулевыми битами), и просто скопировать их в COM-порт, к которому у вас подключен двигатель. Я подготовил несколько файлов (используя emacs, но все, что вам подходит, подходит):

  • 0.pwm:: содержит 5000 символов NULL (контрольное пространство на большинстве клавиатур) [br] Это примерно так близко к "полной скорости", насколько мы сможем получить с помощью этой техники.
  • 1. pwm:: содержит 5000 символов control-A (ascii 01) (один бит "1" на символ)
  • 3. pwm:: содержит 5000 символов control-C (ascii 03) (два бита "1" на символ)
  • 7. pwm:: содержит 5000 символов control-G (ascii 07) (три бита "1" на символ)
  • 15. pwm:: содержит 5000 символов control-O (ascii 15) (четыре бита "1" на символ)
  • 31.pwm:: содержит 5000 символов control-_ (ascii 31) (пять бит "1" на символ)
  • 63.pwm:: содержит 5000 "?" символы (ascii 63) (шесть бит "1" на символ)
  • 127.pwm:: содержит 5000 символов DEL (ascii 127) (семь бит "1" на символ)

(Теперь, когда я нарисовал картинки, вы заметите, что фактические битовые шаблоны не идеальны. Поскольку последовательный порт RS232 сначала передает LSB, мы действительно хотим сдвигать нули вместо единиц. Упражнение для ученика!)

Шаг 4: Играйте с DOS: настройте COM-порт и скопируйте файлы

Играйте с DOS: настройте COM-порт и скопируйте файлы
Играйте с DOS: настройте COM-порт и скопируйте файлы

9600 бит / с - это обычный битрейт. Он хорошо соответствует «примерно» одному байту на миллисекунду, поэтому в этом случае он соответствует частоте ШИМ 1000 Гц, что, я думаю, должно быть приемлемым для небольших двигателей. Вы можете поэкспериментировать с разной скоростью передачи данных, чтобы увидеть, как все работает, что является одним из преимуществ этого метода. Создайте окно DOS (или «Командная строка») (при условии, что вы используете ОС Windows) и настройте свой com-порт как: mode com1: 9600, n, 7, 1 "Это говорит порту связи работать со скоростью 9600 бит / с и посылать 7 бит в каждом символе (чтобы соответствовать нашим 7 различным длинам битов)." n "означает НЕТ четности, так что это будут единственные биты данных. «1» означает, что будет один «стоповый» бит, который не позволит нам полностью включить двигатель (да ладно). Итак, теперь вы можете включать двигатель с помощью команд например: copy 0.pwm com1: Так как мы отправляем 5000 символов с частотой примерно 1 в миллисекунду, двигатель должен включиться почти на полную скорость примерно на 5 секунд. Если вы хотите меньше 5 секунд, сделайте файл короче. Аналогичным образом, вы можете сделать: copy 127.pwm com1:, чтобы запустить двигатель на минимально возможной скорости. С той настройкой, которая у меня была, двигатель вообще не вращался бы с чем-то «медленнее», чем 31.pwm, но YMMV (я тонко k У меня был двигатель 12 В, работающий от батарей 5 В.) Команда COPY позволяет объединить файлы в одну цепочку, поэтому, если вы хотите, чтобы ваш двигатель разгонялся, а затем снова замедлялся, вы можете сделать что-то вроде: copy 31.pwm + 15. pwm + 7.pwm + 0.pwm + 7.pwm + 15.pwm + 31.pwm com1:

Шаг 5: Управление двигателем из программы

Управление двигателем из программы
Управление двигателем из программы

Если вы пишете программу, вы, вероятно, можете открыть COM1: как файл и просто записать в него, как если бы это был любой другой файл. Возможность отсчитывать периоды работы двигателя путем вывода определенного количества символов может оказаться очень удобной. Не забывайте, что система, скорее всего, будет буферизовать символы, которые вы отправляете в последовательный порт, поэтому только то, что вызов WRITE возвращается, не означает, что двигатель закончил делать то, что вы ему сказали. Поскольку мы не делаем ничего особенного с сигналами com-порта, вам не придется исследовать скрытые возможности, которые он может поддерживать. (хотя, если вы можете понять, как отправить последовательность BREAK на com-порт, это постоянное состояние "0" и будет приводить в движение двигатель ВСЕЙ путь; больше, чем отправка непрерывных 0 символов.)

Если ваш язык программирования не позволяет вам выводить данные на COM1:, вы все равно можете управлять двигателем, «вызывая» DOS для выполнения команд копирования. (Хорошо. Я загрузил Microsoft Visual Basic Express 2005 (который является бесплатным) и мне удалось привязать горизонтальную полосу прокрутки к скорости двигателя, управляемой через последовательный порт. Zip прилагается. Вероятно, у него больше, чем нужно для дублирования программы в вашей системе, но я не мог понять, какие именно биты были необходимы. Программа одновременно упрощена и усложняется для понимания (извините) из-за того, что она многопоточная. Один поток ничего не делает, кроме вывода на последовательный порт, а основной поток читает полосу прокрутки и обновляет информацию, используемую последовательным потоком.)

Шаг 6: Экспериментируйте

Экспериментируйте!
Экспериментируйте!

Если что-то в основном работает, это дает очень много места для экспериментов.

  • Исправьте мои битовые шаблоны!
  • Имеет ли значение битрейт?
  • Вам нужно контролировать ширину импульсов включения и выключения, или достаточно просто контролировать их соотношение?
  • Если вам нужно только контролировать соотношение, вы можете рассмотреть многосимвольные последовательности с более высокой скоростью передачи, чтобы получить больше уровней скорости. Вывод 0, за которым следует 127, будет примерно наполовину включенным.
  • Это должно работать и для затемнения лампочек фонарика.

Рекомендуемые: