Բովանդակություն:

Սերիական վերահսկվող փոփոխական արագության շարժիչ `6 քայլ
Սերիական վերահսկվող փոփոխական արագության շարժիչ `6 քայլ

Video: Սերիական վերահսկվող փոփոխական արագության շարժիչ `6 քայլ

Video: Սերիական վերահսկվող փոփոխական արագության շարժիչ `6 քայլ
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Հուլիսի
Anonim
Սերիական վերահսկվող փոփոխական արագության շարժիչ
Սերիական վերահսկվող փոփոխական արագության շարժիչ

Վերահսկեք մի փոքր DC շարժիչի արագությունը, բացի ձեր համակարգչի սերիական նավահանգստից, մեկ MOSFET- ից և որոշ չնչին ծրագրերից: (MOSFET- ը և սերիական նավահանգիստը կազմում են «արագության կառավարում». Ձեզ դեռ անհրաժեշտ է շարժիչ և համապատասխան շարժիչ այդ շարժիչի համար. Մինչդեռ սերիական նավահանգիստը կարող է ապահովել mosfet- ը միացնելու և անջատելու լարումը, այն կարող է ' t մատակարարել տիպիկ շարժիչի համար անհրաժեշտ հոսանքը):

Քայլ 1: Նայեք շրջագծին

Նայեք Շրջանին
Նայեք Շրջանին

Մենք պատրաստվում ենք անել Pulse Width Modulation- ը ՝ օգտագործելով ընդհանուր N-channel հզորության MOSFET, որը միացված է համակարգչի rs232 պորտից Transmit data pin- ին: Երբ սերիալային նավահանգիստն անգործուն է, քորոցը նստելու է «1» վիճակի վրա, որը մինչև թարգմանվել է rs232, նման է -12 Վ -ի (կախված վարորդներից, այն կարող է ավելի մոտ լինել -9 Վ կամ -5 Վ), և տրանզիստորը բավականին անջատված կլինի: Երբ մենք փոխանցում ենք «0» բիթ սերիալային պորտի վրա, rs232 փինն անցնում է +12V կամ ավելի, ինչը բավական է բավականին լավ միացնելու համար mosfets- ի մեծ մասը:

Եթե մենք անընդմեջ փոխանցենք շատ «0» բիս, շարժիչը մոտ կլինի ամբողջովին միացված, և շարժիչը արագ կաշխատի: Եթե մենք փոխանցենք հիմնականում «1» բիթ, ապա շարժիչը կաշխատի ավելի դանդաղ:

Քայլ 2: Լարացրեք այն

Wire It Up
Wire It Up

Քանի որ կա միայն մեկ բաղադրիչ և ընդամենը մի քանի կապ, կարող եք պարզապես լարեր ավելացնել «ազատ ձև»:

MOSFET- երը ստատիկ զգայուն են, այնպես որ մի փոքր զգույշ եղեք, բայց շատ քիչ կարևոր:

Քայլ 3: Ստեղծեք ֆայլեր PWM արժեքներով

Ստեղծեք ֆայլեր PWM արժեքներով
Ստեղծեք ֆայլեր PWM արժեքներով

Շարժիչն առանց softwareԱՆԿԱԱ software ծրագրաշար գրելու անհրաժեշտության մեկն է ՝ պատրաստել համապատասխան բայթ պարունակող ֆայլեր (քիչ թե շատ 0 բիթ), և պարզապես պատճենել դրանք 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 "?" նիշ (ասիական 63) (վեց «1» բիթ մեկ կերպարի համար)
  • 127.pwm:: պարունակում է 5000 DEL նիշ (ascii 127) (մեկ նիշից յոթ «1» բիթ)

(Այժմ, երբ ես նկարել եմ նկարներ, կնկատեք, որ բիթերի իրական նախշերը իդեալական չեն: Քանի որ rs232 սերիան առաջինը փոխանցում է LSB- ն, մենք իսկապես ցանկանում ենք զրոների փոխարեն փոխվել: Ուսանողի համար վարժություն):

Քայլ 4. Խաղացեք DOS- ով. Կարգավորեք ձեր COM նավահանգիստը և պատճենեք ֆայլերը

Խաղացեք DOS- ով. Կարգավորեք ձեր COM նավահանգիստը և պատճենեք ֆայլերը
Խաղացեք DOS- ով. Կարգավորեք ձեր COM նավահանգիստը և պատճենեք ֆայլերը

9600 bps- ը սովորական բիթ -արագություն է: Այն հիանալի կերպով համընկնում է «մոտ» մեկ բայթ մեկ միլիվայրկյանում, ուստի այս դեպքում այն միանում է 1000Hz հաճախականությամբ PWM հաճախականությանը, ինչը, իմ կարծիքով, պետք է լավ լինի փոքր շարժիչների դեպքում: Դուք կարող եք փորձարկել տարբեր բիթային տեմպերով ՝ տեսնելու, թե ինչպես են ամեն ինչ աշխատում, ինչը այս մեթոդի առավելություններից մեկն է: Ստեղծեք DOS (կամ «Հրամանի հուշում») պատուհան (ենթադրելով, որ օգտագործում եք Windows OS) և կազմաձևեք ձեր պորտը, ինչպիսին է: ռեժիմ com1: 9600, n, 7, 1 "Դա հուշում է, որ կոմերցիոն նավահանգիստը գործի 9600 բիթ / վ արագությամբ և ուղարկի 7 բիթ յուրաքանչյուր նիշում (կհամապատասխանի մեր 7 տարբեր բիտ-երկարություններին):" n "-ը նշանակում է ՈՉ հավասարություն, դրանք կլինեն տվյալների միակ բիթերը: «1» նշանակում է, որ լինելու է մեկ «կանգառ» բիթ, որը թույլ չի տա մեզ ամբողջովին միացնել շարժիչը (լավ): Այսպիսով, այժմ դուք կարող եք միացնել շարժիչը հրամաններով like: copy 0.pwm com1. Քանի որ մենք 5000 նիշ ենք ուղարկում մոտ 1 վայրկյան վայրկյանում, շարժիչը պետք է միանա ամբողջ արագությամբ մոտ 5 վայրկյան: Եթե ցանկանում եք 5 վայրկյանից պակաս, պատրաստեք ավելի կարճ ֆայլ: Նմանապես, կարող եք անել. պատճենեք 127.pwm com1. շարժիչը հնարավորինս ցածր արագությամբ գործարկելու համար: Իմ ունեցած կարգավորումով շարժիչը ընդհանրապես չէր շրջվի 31.pwm- ից «դանդաղ» բանով, այլ YMMV (ես բարակ եմ k Ես ունեի 12 Վ շարժիչ, որը լիցքաթափում էր 5 Վ մարտկոց:) COPY հրամանը թույլ է տալիս միացնել ֆայլերը միասին, այնպես որ, եթե ցանկանում եք, որ ձեր շարժիչը արագանա և նորից դանդաղեցնի, կարող եք անել հետևյալը. պատճենեք 31.pwm+15: pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Քայլ 5: Կառավարեք շարժիչը ծրագրից

Կառավարեք շարժիչը ծրագրից
Կառավարեք շարժիչը ծրագրից

Եթե ծրագիր եք գրում, հավանաբար կարող եք բացել COM1. Որպես ֆայլ և պարզապես գրել դրան, կարծես դա որևէ այլ ֆայլ լինի: Թվում է, թե կարող եք ժամանակաշրջան, որով շարժիչը միացված է, թողարկելով որոշակի թվով նիշ, շատ հարմար կլինի: Մի մոռացեք, որ համակարգը, ամենայն հավանականությամբ, կփրկի սերիալային պորտ ուղարկվող կերպարները, ուստի այն, որ ԳՐՈՄ է զանգը չի նշանակում, որ շարժիչն ավարտել է այն, ինչ դուք նրան ասել եք: Քանի որ մենք որևէ «շքեղ» բան չենք անում մուտքի ազդանշանների հետ, դուք չպետք է հետաքննեք այն սարսափելի ընտրանքները, որոնք այն կարող է աջակցել: (չնայած, եթե կարողանաք պարզել, թե ինչպես ուղարկել BREAK հաջորդականություն դեպի կոմպորտ, դա շարունակական «0» վիճակ է և շարժիչը կշարունակի ամբողջ ճանապարհով. ավելին, քան շարունակական 0 նիշ ուղարկելը):

Եթե ձեր ծրագրավորման լեզուն թույլ չի տալիս մուտքագրել COM1: (Լավ. Ես ներբեռնել եմ Microsoft- ի Visual Basic Express 2005 -ը (որն անվճար է) և հասցրել եմ հորիզոնական ոլորման սանդղակը կապել շարժիչի արագությանը, որը վերահսկվում է սերիական պորտի միջոցով: կցված է zip- ը: Հավանաբար այն ավելին է, քան անհրաժեշտ է ծրագիրը կրկնօրինակելու համար: ձեր համակարգում, բայց ես չկարողացա պարզել, թե կոնկրետ որ բիթերն են անհրաժեշտ: bothրագիրը և՛ պարզեցված է, և՛ ավելի դժվար է հասկանալ (ներողություն) բազմաթել լինելով: հիմնական շարանը կարդում է ոլորման տողը և թարմացնում սերիական շարանի օգտագործած տվյալները:)

Քայլ 6: Փորձ

Փորձ
Փորձ

Եթե ամեն ինչ հիմնականում աշխատում է, սա փորձերի համար սարսափելի մեծ տեղ է տրամադրում:

  • Ուղղեք իմ բիտ նախշերը:
  • Արդյո՞ք bitrate- ը մեծ նշանակություն ունի:
  • Պե՞տք է արդյոք վերահսկել «միացված» և «անջատված» իմպուլսների լայնությունը, թե՞ պարզապես բավարարում է դրանց հարաբերակցությունը:
  • Եթե դուք միայն պետք է վերահսկեք հարաբերակցությունը, կարող եք դիտել բազմաբնույթ հաջորդականություններ ավելի բարձր բիթային արագությամբ `ավելի արագության մակարդակ ստանալու համար: 0 արդյունքը, որին հաջորդում է 127 -ը, կլինի մոտավորապես կեսին:
  • Սա նույնպես պետք է աշխատի լապտերների լույսի մարման համար:

Խորհուրդ ենք տալիս: