|
PWMDRV-S-M-L voor kleine tot grote motoren geschreven door Henny van Bodegom
Als je in de robotica een autonome robot wilt bouwen zul je ongetwijfeld een keer één of meerdere motoren aan willen sturen.
Nu zijn er zeer veel mogelijkheden om dat te doen.
Zo zou je de spanning uit een DA converter kunnen versterken en dan met een power transistor die als emittervolger is geschakeld de motor kunnen voeden. De motor stuurspanning is prachtig stabiel. Nadeel hiervan is dat zeker bij lage snelheden zeer veel vermogen door de powertor moet worden gedissipeerd, wat alleen maar warmte oplevert.
Deze methode wordt daarom in de praktijk nauwelijks toegepast.
Beter is het om de motor een bepaalde tijd met de volle voedingsspanning te verbinden en daarna weer uit te schakelen en dat meteen vaste herhalingsfrequentie. Dit noemt men Pulse Width Modulation(puls breedte modulatie). Het grote voordeel is dat er geen energie onnodig wordt "verstookt" in een powertor.
Wanneer de motor zich zou gedragen als een ohmse belasting dan is de gemiddelde spanning over de weerstand proportioneel met de duty cycle van het PWM signaal. De duty cycle is de verhouding tussen de aan-tijden en de pulsherhalingstijd van het PWM signaal. Zie fig. 1
klik op de foto voor een vergroting
De kleine gelijkstroommotoren die wij doorgaans gebruiken hebben permanente magneten en gedragen zich als een shunt motor. D.w.z. dat het toerental van de motor nagenoeg proportioneel is met de voedingsspanning van de motor en dat het toerental slechts in geringe mate afhankelijk is van de belasting. De stroom door de motor is recht evenredig met het koppel (de kracht) op de motor as. Verder hebben deze motoren een anker dat uit laagjes trafoblik bestaat en een oneven aantal wikkelingen. Door de massa van het anker gaat het zich als vliegwiel gedragen. Waardoor we een niet lineair verband krijgen tussen duty cycle van het PWM stuursignaal en het motor toerental. Zie fig. 2 (vrijloop dioden niet getekend)
Afhankelijk van de belasting zal het toerental drastisch varieren. Een dergelijk gedrag hebben sommigen van jullie al ondervonden tijdens het bouwen van de SUMO robots. Met name het schema'tje rond een L293D dat voor het B+ bordje was ontworpen had last van dit verschijnsel.
Om dit gedrag tegen te gaan is het noodzakelijk dat de motor gedurende PWM signaal met de voedingsspanning wordt verbonden en gedurende de niet actieve fase van het PWM signaal wordt kortgesloten. Zie fig. 3 (vrijloop dioden niet getekend)
Er is altijd een kleine voorspanning nodig om de motor aan het draaien te krijgen, maar daarna is het verband tussen toerental en duty cycle vrijwel lineair.
Wanneer we nu de motor zowel vooruit als achteruit willen laten draaien is een z.g. H-brug schakeling nodig. Zie fig. 4.
Wanneer we de schakeling beter bekijken dan valt op dat over de power transistoren in ingeschakelde toestand een redelijke spanning valt, waardoor niet alleen onnodig vermogen wordt omgezet in warmte maar ook dat de spanning over de motor afhankelijk zal zijn van de stroom door de motor (dus van de belasting).
De L293D die in PWMDRVS wordt gebruikt en zijn grote broer de L298N die in de PWMDRV-M wordt gebruikt hebben een soortgelijke opbouw als in fig. 4 en kunnen elk twee motoren aansturen.
De L293D en L298N hebben een spanningsverlies over de brug die varieert tussen 2V tot 4V afhankelijk van de belasting. Bij gebruik van deze IC' s moet men de voedingsspanning dus 2V tot 4V groter kiezen dan de maximale spanning van de motor.
Een H-brug die wordt opgebouwd met MOSFET's heeft doorgaans een zeer gering spanningsverlies over de brug zelf, omdat de Rds-on van die MOSFET's zeer laag is. In de PWMDRV-L wordt daarom gebruik gemaakt van de LMD18200T die slechts geringe verliezen heeft en bovendien geheel beveiligd is tegen overbelasting.
klik op de foto voor een vergroting
Gebruikmakend van de hiervoor genoemde IC's heb ik een drietal motorstuurprinten ontworpen die direct op het eerder gepubliceerde Mini-552 computer printje kunnen
klik op de foto voor een vergroting
worden aangesloten d.m.v. bandkabel. Andere microcontroller boardjes kunnen uiteraard ook worden gebruikt, maar dan zal men speciale kabeltjes moeten maken.
In de bijgevoegde schema's kun je zien hoe één en ander is opgebouwd. Verder zijn ook de printlayout en componenten opstelling bijgevoegd. |