Inhoudsopgave:

Serieel geregelde motor met variabele snelheid - Ajarnpa
Serieel geregelde motor met variabele snelheid - Ajarnpa

Video: Serieel geregelde motor met variabele snelheid - Ajarnpa

Video: Serieel geregelde motor met variabele snelheid - Ajarnpa
Video: How Does a Gerotor Pump Work? 2024, November
Anonim
Serieel geregelde motor met variabele snelheid
Serieel geregelde motor met variabele snelheid

Regel de snelheid van een kleine gelijkstroommotor met niets anders dan de seriële poort op uw computer, een enkele MOSFET en wat triviale software. (De MOSFET en de seriële poort vormen de "snelheidsregeling"; je hebt nog steeds een motor en een geschikte voeding voor die motor nodig; terwijl de seriële poort de spanning kan leveren om een mosfet aan en uit te zetten, kan het' t leveren de stroom die een typische motor nodig heeft.)

Stap 1: Kijk naar het circuit

Kijk naar het circuit
Kijk naar het circuit

We gaan pulsbreedtemodulatie doen met behulp van een generieke N-kanaals MOSFET die is aangesloten op de Transmit-gegevenspin vanaf de rs232-poort van de computer. Wanneer de seriële poort inactief is, staat de pin in de "1" -status, wat tegen de tijd dat het is vertaald naar rs232, ongeveer -12V is (afhankelijk van de stuurprogramma's kan het dichter bij -9V of -5V zijn), en de transistor zal behoorlijk UIT zijn. Wanneer we "0" bits op de seriële poort verzenden, gaat de rs232-pin naar +12V of zo, wat voldoende is om de meeste mosfets redelijk goed in te schakelen.

Als we veel "0" bis achter elkaar verzenden, zal de motor bijna volledig AAN zijn en zal de motor snel draaien. Als we meestal "1" bits verzenden, zal de motor langzamer lopen.

Stap 2: Sluit het aan

Sluit het aan
Sluit het aan

Omdat er maar één component is en maar een paar verbindingen, kun je gewoon "freeform" draden toevoegen.

MOSFET's zijn gevoelig voor statische elektriciteit, dus wees een beetje voorzichtig, maar heel weinig is van cruciaal belang.

Stap 3: bestanden instellen met PWM-waarden

Bestanden instellen met PWM-waarden
Bestanden instellen met PWM-waarden

Een manier om de motor te besturen zonder ENIGE software te hoeven schrijven, is door enkele bestanden voor te bereiden die de juiste bytes bevatten (met min of meer 0 bits), en deze eenvoudigweg te KOPIREN naar de COM-poort waarop u de motor hebt aangesloten. Ik heb verschillende bestanden voorbereid (met emacs, maar wat voor jou werkt, is prima):

  • 0.pwm:: bevat 5000 NULL-tekens (controleruimte op de meeste toetsenborden)[br] Dit komt ongeveer zo dicht bij "volledige snelheid" als we met deze techniek kunnen krijgen.
  • 1.pwm:: bevat 5000 control-A-tekens (ascii 01) (één "1" bit per teken)
  • 3.pwm:: bevat 5000 control-C-tekens (ascii 03) (twee "1" bits per teken)
  • 7.pwm:: bevat 5000 control-G-tekens (ascii 07) (drie "1" bits per teken)
  • 15.pwm:: bevat 5000 control-O-tekens (ascii 15) (vier "1" bits per teken)
  • 31.pwm:: bevat 5000 control-_ karakters (ascii 31) (vijf "1" bits per char)
  • 63.pwm:: bevat 5000 "?" tekens (ascii 63) (zes "1" bits per teken)
  • 127.pwm:: bevat 5000 DEL-tekens (ascii 127) (zeven "1" bits per teken)

(Nu ik foto's heb gemaakt, zul je merken dat de eigenlijke bitpatronen niet ideaal zijn. Aangezien rs232 serieel eerst LSB verzendt, willen we echt nullen in plaats van enen verschuiven. Een oefening voor de student!)

Stap 4: Speel met DOS: configureer uw COM-poort en kopieer de bestanden

Speel met DOS: configureer uw COM-poort en kopieer de bestanden
Speel met DOS: configureer uw COM-poort en kopieer de bestanden

9600 bps is een veelgebruikte bitsnelheid. Het komt mooi overeen met "ongeveer" één byte per milliseconde, dus in dit geval komt het overeen met een PWM-frequentie van 1000 Hz, wat volgens mij goed zou moeten zijn voor kleine motoren. U kunt experimenteren met verschillende bitsnelheden om te zien hoe dingen werken, wat een van de voordelen van deze methode is. Maak een DOS-venster (of "Opdrachtprompt") (ervan uitgaande dat u een Windows-besturingssysteem gebruikt) en configureer uw com-poort zoals:mode com1: 9600, n, 7, 1 "Dat vertelt de comm-poort om op 9600 bps te draaien en 7 bits in elk teken te verzenden (om overeen te komen met onze 7 verschillende bitlengtes.) De "n" betekent GEEN pariteit, dus dat zullen de enige databits zijn. De "1" betekent dat er één "stop"-bit zal zijn, die zal voorkomen dat we de motor helemaal aanzetten (nou ja.) Dus nu kun je de motor aanzetten met commando's like:copy 0.pwm com1:Aangezien we 5000 tekens verzenden met ongeveer 1 per milliseconde, zou de motor ongeveer 5 seconden op volle snelheid moeten draaien. Als u minder dan 5 seconden wilt, maakt u een korter bestand. Op dezelfde manier, je kunt doen: kopieer 127.pwm com1: om de motor op de laagst mogelijke snelheid te laten draaien. Met de setup die ik had, zou de motor helemaal niet draaien met iets "langzamer" dan 31.pwm, maar YMMV (ik dun k Ik had een 12V-motor op 5V batterijen.) Met het COPY-commando kun je bestanden aan elkaar rijgen, dus als je wilt dat je motor versnelt en weer vertraagt, kun je zoiets doen als:copy 31.pwm+15. pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Stap 5: Bedien de motor vanuit een programma

Bedien de motor vanuit een programma
Bedien de motor vanuit een programma

Als je een programma schrijft, kun je waarschijnlijk COM1: openen als een bestand en er gewoon naar schrijven alsof het een ander bestand is. Het lijkt erg handig om de perioden dat de motor aan staat te kunnen timen door een bepaald aantal tekens uit te voeren. Vergeet niet dat het systeem zeer waarschijnlijk de karakters die u naar de seriële poort stuurt, buffert, dus alleen omdat een SCHRIJF-oproep terugkeert, betekent niet dat de motor klaar is met doen wat u hem opdroeg. Aangezien we niets "fantastisch" doen met de signalen van de com-poort, hoeft u de geheimzinnige opties die deze mogelijk ondersteunt niet te onderzoeken. (hoewel, als je erachter kunt komen hoe je een BREAK-reeks naar de com-poort moet sturen, dat een continue "0" -status is en de motor helemaal aan zal drijven; meer dan het verzenden van continue 0-tekens.)

Als uw programmeertaal u niet toestaat om naar COM1: uit te voeren, kunt u de motor mogelijk nog steeds besturen door DOS te "roepen" om kopieeropdrachten uit te voeren. (OK. Ik heb Visual Basic Express 2005 van Microsoft gedownload (die gratis is) en ben erin geslaagd om een horizontale schuifbalk aan de motorsnelheid te koppelen, bestuurd via de seriële poort. zip bijgevoegd. Het heeft waarschijnlijk meer dan nodig is om het programma te dupliceren op uw systeem, maar ik kon er niet precies achter komen welke bits nodig waren. Het programma is zowel vereenvoudigd als moeilijker te begrijpen (sorry) omdat het multi-threaded is. Eén thread doet niets anders dan output naar de seriële poort, en de hoofdthread leest de schuifbalk en werkt de informatie bij die wordt gebruikt door de seriële thread.)

Stap 6: Experimenteer

Experiment!
Experiment!

Als de dingen in principe werken, biedt dit ontzettend veel ruimte voor experimenten.

  • Fix mijn bit patronen!
  • Maakt de bitrate veel uit?
  • Moet u de breedte van "aan" en "uit" pulsen regelen, of is eenvoudigweg het regelen van hun verhouding voldoende?
  • Als u alleen de verhouding hoeft te regelen, kunt u reeksen van meerdere tekens met hogere bitsnelheden overwegen om meer snelheidsniveaus te krijgen. Het uitvoeren van 0 gevolgd door 127 zou ongeveer de helft zijn.
  • Dit zou ook moeten werken voor het dimmen van zaklamplampen.

Aanbevolen: