INHOUDSOPGAWE:

Seriële beheerde motor met veranderlike snelheid: 6 stappe
Seriële beheerde motor met veranderlike snelheid: 6 stappe

Video: Seriële beheerde motor met veranderlike snelheid: 6 stappe

Video: Seriële beheerde motor met veranderlike snelheid: 6 stappe
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Julie
Anonim
Seriële beheerde motor met veranderlike snelheid
Seriële beheerde motor met veranderlike snelheid

Beheer die snelheid van 'n klein DC -motor met niks anders as die seriële poort op u rekenaar, 'n enkele MOSFET en 'n paar triviale sagteware nie. (Die MOSFET en die seriële poort vorm die "spoedbeheer"; u benodig nog steeds 'n motor en 'n geskikte kragtoevoer vir die motor; terwyl die seriële poort die spanning kan verskaf om 'n mosfet aan en af te skakel, kan dit ' t verskaf die stroom wat deur 'n tipiese motor benodig word.)

Stap 1: Kyk na die stroombaan

Kyk na die stroombaan
Kyk na die stroombaan

Ons gaan Pulse Width Modulation doen met behulp van 'n generiese N-kanaal-MOSFET-kragbron wat aan die Transmit-data-pen gekoppel is vanaf die rekenaar se rs232-poort. As die seriële poort ledig is, sit die pen in die "1" -toestand, wat teen die tyd dat dit vertaal is na rs232 iets soos -12V is (afhangende van die bestuurders, dit is moontlik nader aan -9V of -5V), en die transistor sal heeltemal af wees. As ons '0' bisse op die seriële poort oordra, sal die rs232 -pen ongeveer +12V wees, wat genoeg is om die meeste mosfets redelik goed aan te skakel.

As ons baie "0" bis in 'n ry oordra, sal die motor naby aan wees en die motor sal vinnig loop. As ons meestal "1" bisse oordra, sal die motor stadiger loop.

Stap 2: Draai dit op

Draai dit op
Draai dit op

Aangesien daar slegs 'n enkele komponent en slegs 'n paar verbindings is, kan u net 'gratis vorm' drade byvoeg.

MOSFET's is staties sensitief, dus wees 'n bietjie versigtig, maar baie min is krities.

Stap 3: Stel lêers op met PWM -waardes

Stel lêers op met PWM -waardes
Stel lêers op met PWM -waardes

Een manier om die motor te beheer sonder om enige sagteware te hoef te skryf, is om 'n paar lêers met gepaste grepe (met min of meer 0 bisse) voor te berei, en dit eenvoudig na die COM -poort te kopieer waar die motor gekoppel is. Ek het verskeie lêers voorberei (met behulp van emacs, maar alles wat vir u werk, is goed):

  • 0.pwm:: bevat 5000 NULL karakters (beheerruimte op die meeste sleutelborde) [br] Dit is omtrent so naby aan "volle spoed" as wat ons met hierdie tegniek sal kan kry.
  • 1.pwm:: bevat 5000 beheer-A karakters (ascii 01) (een "1" bietjie per char)
  • 3.pwm:: bevat 5000 beheer-C karakters (ascii 03) (twee "1" bisse per char)
  • 7.pwm:: bevat 5000 beheer-G karakters (ascii 07) (drie "1" bisse per char)
  • 15.pwm:: bevat 5000 beheer-O karakters (ascii 15) (vier "1" bisse per char)
  • 31.pwm:: bevat 5000 beheer-_ karakters (ascii 31) (vyf "1" bisse per karakter)
  • 63.pwm:: bevat 5000 "?" karakters (ascii 63) (ses "1" bisse per karakter)
  • 127.pwm:: bevat 5000 DEL -karakters (ascii 127) (sewe "1" bisse per karakter)

(Noudat ek prentjies geteken het, sal u agterkom dat die werklike bitpatrone nie ideaal is nie. Aangesien rs232 -reeks LSB eers oordra, wil ons regtig in nulle in plaas van een's skuif. 'N Oefening vir die student!)

Stap 4: Speel met DOS: Stel u COM -poort in en kopieer die lêers

Speel met DOS: Stel u COM -poort op en kopieer die lêers
Speel met DOS: Stel u COM -poort op en kopieer die lêers

9600 bps is 'n algemene bitrate. Dit pas mooi by ongeveer 'een byte per millisekonde', so in hierdie geval kom dit ooreen met 'n PWM -frekwensie van 1000Hz, wat volgens my goed moet wees vir klein motors. U kan met verskillende bitsnelhede eksperimenteer om te sien hoe dinge werk, wat een van die voordele van hierdie metode is. Skep 'n DOS (of "Command prompt") venster (as u 'n Windows -bedryfstelsel gebruik) en stel u com -poort in soos: mode com1: 9600, n, 7, 1 "Dit sê dat die comm-poort op 9600bps moet loop en 7 bisse in elke karakter stuur (om by ons 7 verskillende bitlengtes te pas.) Die 'n 'beteken GEEN pariteit, die "1" beteken dat daar een "stop" -bit sal wees, wat ons sal verhinder om die motor heeltemal aan te skakel (nou ja.) Nou kan u die motor aanskakel met opdragte soos: kopieer 0.pwm com1: Aangesien ons 5000 karakters teen ongeveer 1 per millisekonde stuur, moet die motor ongeveer 5 sekondes naby volspoed aanskakel. Maak 'n korter lêer as u minder as 5 sekondes wil hê., u kan doen: kopieer 127.pwm com1: om die motor teen die laagste moontlike spoed te laat loop. Met die opstelling wat ek gehad het, sou die motor glad nie draai met iets "stadiger" as 31.pwm nie, maar YMMV (ek dun k Ek het 'n 12V -motor met 5V batterye.) Met die COPY -opdrag kan u lêers saamvoeg, so as u wil hê dat u motor moet versnel en dan weer kan vertraag, kan u iets doen soos: kopieer 31.pwm+15. pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Stap 5: Beheer die motor vanuit 'n program

Beheer die motor vanuit 'n program
Beheer die motor vanuit 'n program

As u 'n program skryf, kan u waarskynlik COM1: as 'n lêer oopmaak en dit eenvoudig skryf asof dit 'n ander lêer is. Dit sal baie handig wees om die tydperke waarop die motor aangeskakel is, te bepaal. Moenie vergeet dat die stelsel waarskynlik die karakters wat u na die seriële poort stuur, buffer nie, dus net omdat 'n WRITE -oproep terugkeer, beteken dit nie dat die motor klaar is met wat u ook al gesê het nie. Aangesien ons niks "fancy" doen met die com -poortseine nie, hoef u nie die ingewikkelde opsies wat dit ondersteun, te ondersoek nie. (alhoewel, as u kan uitvind hoe u 'n BREAK -reeks na die com -poort moet stuur, is dit 'n deurlopende '0' -toestand en sal die motor ALTYD ry; meer as om 0 karakters te stuur.)

As u met u programmeertaal u nie na COM1:, stuur nie, kan u die motor nog steeds beheer deur DOS te "roep" om opdragte te doen. (OK. Ek het Microsoft se Visual Basic Express 2005 (wat gratis is) afgelaai en daarin geslaag om 'n horisontale skuifbalk aan die motorsnelheid vas te maak, wat via die seriële poort beheer word. Zip aangeheg. Dit het waarskynlik meer as wat nodig is om die program te dupliseer op u stelsel, maar ek kon nie presies uitvind watter stukkies nodig was nie. Die program word vereenvoudig en moeiliker om te verstaan (jammer) omdat dit met 'n veelvoudige draad is. hoofdraad lees die rolbalk en werk inligting op wat deur die reeksdraad gebruik word.)

Stap 6: Eksperimenteer

Eksperimenteer!
Eksperimenteer!

As dinge basies werk, bied dit baie ruimte vir eksperimentering.

  • Maak my bietjie patrone reg!
  • Maak die bitrate baie saak?
  • Moet u die breedte van die "aan" - en "af" -pulse beheer, of is dit net voldoende om die verhouding te beheer?
  • As u slegs die verhouding hoef te beheer, kan u rye met meer karakters teen hoër bitsnelhede oorweeg om meer spoedvlakke te kry. Uitset 0 gevolg deur 127 sou ongeveer die helfte wees.
  • Dit moet ook werk vir die verduistering van flitsligte.

Aanbeveel: