Съдържание:

Мотор с променлива скорост на серийно управление: 6 стъпки
Мотор с променлива скорост на серийно управление: 6 стъпки

Видео: Мотор с променлива скорост на серийно управление: 6 стъпки

Видео: Мотор с променлива скорост на серийно управление: 6 стъпки
Видео: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Юли
Anonim
Мотор с променлива скорост на серийно управление
Мотор с променлива скорост на серийно управление

Контролирайте скоростта на малък двигател с постоянен ток без нищо друго освен със серийния порт на вашия компютър, един MOSFET и някакъв тривиален софтуер. (MOSFET и серийният порт съставляват "контрола на скоростта"; все още ще се нуждаете от двигател и подходящо захранване за този двигател; докато серийният порт може да осигури напрежение за включване и изключване на MOSFET, той може " t захранва тока, необходим на типичен двигател.)

Стъпка 1: Погледнете веригата

Погледнете веригата
Погледнете веригата

Ще направим Pulse Width Modulation, използвайки общ N-channel MOSFET за захранване, свързан към пина за предаване на данни от rs232 порта на компютъра. Когато серийният порт е празен, щифтът ще остане в състояние "1", което по времето, когато се превежда в rs232, е нещо като -12V (в зависимост от драйверите, може да е по -близо до -9V или -5V), и транзисторът ще бъде доста изключен. Когато предаваме "0" бита на серийния порт, rs232 щифтът ще отиде до +12V или така, което е достатъчно, за да включите повечето MOSFET -та доста добре.

Ако предаваме много "0" бис подред, двигателят ще бъде близо до напълно ВКЛЮЧЕН и моторът ще работи бързо. Ако предаваме предимно битове "1", двигателят ще работи по -бавно.

Стъпка 2: Свържете го

Свържете го
Свържете го

Тъй като има само един компонент и само няколко връзки, можете просто да добавите проводници "свободна форма".

MOSFET са статично чувствителни, така че бъдете малко внимателни, но много малко е критично.

Стъпка 3: Настройте файлове с PWM стойности

Настройване на файлове с PWM стойности
Настройване на файлове с PWM стойности

Един от начините за управление на двигателя без да се налага да пишете НИКАКЪВ софтуер е да подготвите някои файлове, съдържащи подходящи байтове (с повече или по -малко 0 бита), и просто да ги КОПИРАТЕ към COM порта, където имате свързан мотора. Подготвих няколко файла (използвайки emacs, но всичко, което работи за вас, е добре):

  • 0.pwm:: съдържа 5000 NULL знака (контролно пространство на повечето клавиатури) [br] Това е приблизително толкова близо до "пълна скорост", колкото ще можем да получим с тази техника.
  • 1.pwm:: съдържа 5000 знака за контрол-A (ascii 01) (един бит "1" на символ)
  • 3.pwm:: съдържа 5000 контролни символа C (ascii 03) (два бита "1" на символ)
  • 7.pwm:: съдържа 5000 контролни символа G (ascii 07) (три бита "1" на символ)
  • 15.pwm:: съдържа 5000 контролни символа (ascii 15) (четири бита "1" на символ)
  • 31.pwm:: съдържа 5000 контролни _ символа (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 bps е често срещана скорост на предаване. Той съвпада добре с "около" един байт на милисекунда, така че в този случай той съответства на ШИМ честота от 1000Hz, което според мен би трябвало да е добре за малки двигатели. Можете да експериментирате с различни скорости на битове, за да видите как работят нещата, което е едно от предимствата на този метод. Създайте прозорец DOS (или „Команден ред“) (ако приемете, че използвате операционна система Windows) и конфигурирайте вашия com порт като: mode com1: 9600, n, 7, 1 "Това казва на comm порта да работи с 9600bps и да изпраща 7 бита във всеки знак (за да съответства на нашите 7 различни битови дължини.)" n "означава НЕ четност, така че това ще бъдат единствените битове за данни. "1" означава, че ще има един "стоп" бит, който ще ни попречи да включим двигателя докрай (ох добре.) Така че сега можете да включите двигателя с команди като: копие 0.pwm com1: Тъй като изпращаме 5000 знака с приблизително 1 на милисекунда, двигателят трябва да се включи на пълна скорост за около 5 секунди. Ако искате по -малко от 5 секунди, направете по -кратък файл. По същия начин, можете да направите: копирайте 127.pwm com1: за да стартирате двигателя с възможно най -ниската скорост. С настройката, която имах, моторът изобщо нямаше да се върти с нищо "по -бавно" от 31.pwm, но YMMV (аз тънка k Имах 12V мотор, работещ с 5V батерии.) Командата 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, за да правите команди за копиране. (ОК. Изтеглих Visual Basic Express на Microsoft (който е безплатен) и успях да привържа хоризонтална лента за превъртане към скоростта на двигателя, управлявана чрез серийния порт. Прикачен zip. Вероятно има повече, отколкото е необходимо за дублиране на програмата на вашата система, но не можах да разбера кои битове са необходими. Програмата е едновременно опростена и затруднена за разбиране (съжалявам), тъй като е многопоточна. Една нишка не прави нищо друго освен извеждане на серийния порт, а основната нишка чете лентата за превъртане и актуализира информацията, използвана от серийната нишка.)

Стъпка 6: Експериментирайте

Експериментирайте!
Експериментирайте!

Ако нещата по принцип работят, това предоставя страшно много място за експерименти.

  • Поправете моите битови модели!
  • Има ли битрейт много значение?
  • Трябва ли да контролирате ширината на импулсите "включен" и "изключен", или просто контролът на тяхното съотношение е достатъчен?
  • Ако трябва само да контролирате съотношението, можете да обмислите многосимволни последователности при по-високи скорости на битове, за да получите повече нива на скорост. Извеждането на 0, последвано от 127, ще бъде около половината включено.
  • Това би трябвало да работи и за затъмняване на фенерчетата.

Препоръчано: