Component · Actuator
DC-gelijkstroommotor (TT Motor)
De gele TT-tandwielmotor drijft de meeste robotauto's voor beginners. Versnellingsbak, werkelijke spanning en snelheid, en waarom een driver nodig is.
Wat het is
De TT-tandwielmotor is de geel-blauwe motor onderaan vrijwel elke robotauto voor beginners. Het is een kleine gelijkstroommotor met borstels die aan een kunststof reductietandwielbak is gemonteerd, met een dubbel-D-uitgaande as die rechtstreeks in een passend wiel wordt gedrukt. Koop er twee, voeg een chassis en een zwenkwiel toe en je hebt een robot die kan rijden en draaien. Daarom is dit de aandrijfmotor achter de eerste lijnvolger of robot met obstakelvermijding die de meeste mensen bouwen.
Een kale gelijkstroommotor draait op zichzelf veel te snel en veel te zwak om iets te verplaatsen. De versnellingsbak maakt hem bruikbaar: die verandert de snelle, zwakke draai in de langzame, krachtige draai met veel koppel.
Hoe het werkt
In de gele behuizing gebeuren twee dingen:
- De motor zet elektrische energie om in draaiing. Leg spanning over de twee aansluitingen en hij draait; keer de polariteit om en hij draait de andere kant op. Meer spanning betekent meer snelheid.
- De versnellingsbak verlaagt die snelheid. Een tandwielstelsel van ongeveer 1:48 betekent dat het wiel één keer draait voor elke ongeveer 48 motoromwentelingen. Je verliest evenveel snelheid als je koppel wint, en dat is de ruilhandel die je wilt: een wiel heeft koppel nodig, geen waas. Of deze verhouding geschikt is voor jouw robot kun je vóór aankoop berekenen; zie een gelijkstroom-tandwielmotor kiezen.
Om de motor te besturen doe je twee dingen tegelijk: stel de richting in door te kiezen welke aansluiting positief is, wat de H-brug doet, en stel de snelheid in met PWM door de voeding snel aan en uit te schakelen, zodat de motor een gemiddelde spanning ziet. Leer die combinatie in gelijkstroommotoren besturen met PWM en een H-brug.
Wanneer je hem gebruikt
Kies een TT-motor voor elke lichte robot met wielen en lage snelheid: lijnvolgers, robots met obstakelvermijding, doolhofrobots en een eerste basis met differentiaalaandrijving. Hij is goedkoop, vergevingsgezind en het onderwerp van vrijwel elke tutorial voor beginners.
Ga een stap verder wanneer je meer nodig hebt: voeg wielencoders toe als je afstand en snelheid wilt meten voor odometrie, of stap over op motoren met metalen tandwielen wanneer de robot zwaarder wordt of moet klimmen. Kunststof tandwielen raken bij mishandeling uitgesleten.
Bedrading en valkuilen
- Sluit hem nooit rechtstreeks aan op een logicapin. De aanloopstroom is ongeveer 1 A. Bestuur hem via een L298N of een vergelijkbare H-brug, gevoed vanaf de accu en niet vanaf de 5V-pin van de Arduino.
- Twee motoren passen niet perfect bij elkaar. Identieke PWM rijdt zelden volmaakt recht; stel één motor in software af of sluit een snelheidsregellus met encoders.
- Let op inschakelstroom en teruggeïnduceerde spanning. Motoren laten de voeding inzakken bij het starten en slaan spanning terug bij het stoppen. Houd motorvoeding en logicavoeding op gescheiden rails met een gemeenschappelijke massa; zie een robot van stroom voorzien.
- Match het wiel op de as. De dubbel-D-as past alleen goed in een passende dubbel-D-boring van een wiel; in een rond gat slipt hij.
De vier getallen op de datasheet van een motor
Elke gelijkstroommotor met borstels wordt door vier waarden gekenmerkt, en ze zijn niet onafhankelijk; de hele curve volgt uit twee ervan.
| Waarde | TT-motor bij 6 V | Betekenis |
|---|---|---|
| Snelheid zonder belasting | ~200 RPM | De snelste draaisnelheid die hij ooit haalt, zonder iets eraan vast |
| Stroom zonder belasting | ~150 mA | Het verbruik tijdens vrij draaien, voornamelijk wrijving in de versnellingsbak |
| Aanloopkoppel | ~0,8 kg·cm | Het grootste koppel dat hij kan leveren, bij toerental nul |
| Aanloopstroom | ~1 A | Het verbruik wanneer hij vastgehouden wordt. Het getal dat je driver moet overleven |
Het koppel van een gelijkstroommotor met borstels daalt lineair met de snelheid, van het aanloopkoppel bij nul RPM tot nul koppel bij de snelheid zonder belasting. De stroom doet het omgekeerde. Dat levert drie belangrijke gevolgen op:
Het maximale vermogen ligt bij de helft van het toerentalbereik. Vermogen is koppel × snelheid en het product van twee rechte lijnen bereikt zijn maximum in het midden. Een TT-motor bij 6 V levert zijn grootste vermogen rond 100 RPM.
Het maximumrendement ligt rond een kwart van het aanloopkoppel, ver boven het vermogensmaximum. Dat is het punt waarop je een robot wilt laten werken, niet het vermogensmaximum en uiteraard niet dicht bij het aanlooppunt.
De aanloopstroom is de ontwerpbeperking, niet de draaistroom. Een motor die blijft verbruiken van 150 mA, trekt direct 1 A zodra een wiel tegen een muur loopt; twee motoren die tegelijk vastlopen vragen samen 2 A. Je driver en accu moeten dat beide overleven, want op een robot gebeurt het voortdurend.
Een motor voor je robot dimensioneren
De rekensom duurt vijf minuten en lost de meeste “mijn robot is te traag”-vragen op voordat ze ontstaan.
Snelheid. Wielomtrek × RPM ÷ 60 levert meters per seconde:
65 mm wheel -> circumference = pi x 0.065 = 0.204 m
200 RPM -> 200 / 60 = 3.33 rev/s
speed = 0.204 x 3.33 = 0.68 m/s
Dat is loopsnelheid, ongeveer goed voor een lijnvolger en behoorlijk snel voor een doolhofrobot die bij kruisingen moet stoppen.
Koppel. Om een robot met massa m te versnellen met versnelling a heeft elk van de n aangedreven wielen nodig:
torque per wheel = m x a x r / n
Voor een robot van 500 g die met 0,5 m/s² versnelt op wielen van 65 mm (r = 0,0325 m) met twee aangedreven wielen:
= 0.5 x 0.5 x 0.0325 / 2 = 0.004 N.m = 0.041 kg.cm
Tegenover een aanloopkoppel van 0,8 kg·cm is dat bijna een factor twintig in reserve. Daarom werken TT-motoren prima in lichte robots en hoef je deze berekening meestal niet te maken. Doe dat wel wanneer de robot zwaar wordt of moet klimmen.
Controleer daarna de vloer. Het motorkoppel is slechts één grens; wrijving is de andere. Een lichte robot op een gladde vloer bereikt zijn gripgrens doorgaans rond een kwart van het aanloopkoppel, waardoor het grootste deel van het motorvermogen de vloer niet eens bereikt. De tutorial over duwkracht en grip werkt uit welke grens je werkelijk raakt.
Waarom je robot niet recht rijdt
Twee TT-motoren met identieke PWM rijden niet recht, en dat verrast mensen meer dan het zou moeten. De oorzaken zijn ongeveer gerangschikt van groot naar klein:
| Oorzaak | Gangbare grootte | Oplossing |
|---|---|---|
| Verschillen in wrijving van versnellingsbaken | 5–15% snelheidsverschil | Softwarecorrectie of snelheidsregellus |
| Verschillen in motorwikkelingen | Enkele procenten | Hetzelfde |
| Verschillen in wieldiameter | 1–2% | Meten en corrigeren in odometrie |
| Ongelijke gewichtsverdeling | Varieert | Accu verplaatsen |
| Verschillende aanloopdrempels | Eén wiel start bij 25% duty, het andere bij 32% | Beide meten; dit overheerst bij lage snelheid |
De laatste regel vangt mensen, omdat dit effect alleen bij lage snelheid optreedt. Een robot die bij volle snelheid goed recht rijdt maar tijdens kruipen sterk uitwijkt, laat twee verschillende wrijvingsdrempels zien, geen besturingsfout.
Er zijn twee echte oplossingen. De softwarecorrectie is een vermenigvuldigingsfactor per motor die je empirisch bepaalt: rij vooruit, meet de drift over 2 m, stel bij en herhaal. Het is snel en geldt alleen voor de accuspanning en het oppervlak waarbij je hebt afgesteld. De juiste oplossing zijn encoders en een snelheidsregellus, die continu corrigeren en niet om de accu geven.
De dode zone en waarom die belangrijk is
Onder een bepaald duty cycle draait de motor helemaal niet; eerst moet de statische wrijving in de borstels en het tandwielstelsel worden overwonnen. Bij een TT-motor is dat doorgaans 20–35% duty en het verschilt tussen twee motoren uit dezelfde verpakking.
Meet de drempel van jouw motor:
// Ramp up slowly and note where each wheel starts.
for (int duty = 0; duty <= 255; duty += 5) {
analogWrite(ENA, duty);
Serial.println(duty);
delay(500); // long enough to see it start
}
Compenseer daarna, zodat een klein commando een kleine beweging veroorzaakt in plaats van niets:
const int DEADBAND_A = 65; // measured, out of 255
int applyDeadband(int speed) {
if (speed == 0) return 0;
int sign = (speed > 0) ? 1 : -1;
return sign * map(abs(speed), 1, 255, DEADBAND_A, 255);
}
Zonder deze correctie doet het onderste kwart van je regelbereik helemaal niets. Daardoor gedraagt een PID-regellus zich zeer vreemd in de buurt van de streefwaarde, want kleine correcties hebben letterlijk geen effect totdat de opgebouwde integrale term de drempel passeert en de robot plots opzij schiet.
Problemen oplossen
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Bord reset wanneer de motoren starten | Motorstroom loopt via het besturingsbord | aparte accu; deel alleen de massa |
| Motor zoemt maar draait niet | Onder de dode zone of versnellingsbak vast | Verhoog de duty; controleer op een tandwiel met uitgesleten tanden |
| Robot wijkt alleen bij lage snelheid uit | Verschillende wrijvingsdrempels | Meet en compenseer elke motor afzonderlijk |
| Robot wijkt bij elke snelheid uit | Correctie of verschil in wieldiameter | Pas de softwarecorrectie toe en meet daarna de wielen |
| Wordt tijdens de rit langzamer | Accu zakt in | Snelheid schaalt met spanning; sluit een snelheidsregellus of gebruik een nieuw pakket |
| Schurend geluid en daarna vrij draaien | Uitgesleten kunststof tandwiel | Deze tandwielen raken uitgesleten door schokken; gebruik bij herhaling een motor met metalen tandwielen |
| Wiel wiebelt op de as | Ronde boring op een dubbel-D-as | Gebruik een passend dubbel-D-wiel |
| Eén motor veel zwakker | Borstels versleten of een gedeeltelijk uitgesleten tandwiel | Verwissel de motoren om vast te stellen welke kant de fout vertoont |
| Beide motoren horten tegelijk | Voeding levert onvoldoende aanloopstroom | Groter pakket; controleer de inwendige weerstand |
TT-motor of iets anders?
| Motor | Gangbare specificatie | Kies hem wanneer |
|---|---|---|
| TT-tandwielmotor | 3–6 V, ~200 RPM, kunststof tandwielen, ~$2 | Leren, lichte robots en alles op een vlakke vloer |
| TT met encoder | Idem, plus magnetische encoder | Je odometrie wilt; koop deze, inbouwen is pijnlijk |
| N20-tandwielmotor met metalen tandwielen | 6–12 V, veel verhoudingen, metalen tandwielen, ~$8 | Kleine robots die nauwkeurigheid of duurzaamheid nodig hebben |
| 25GA-370 | 12 V, hoog koppel, metalen tandwielen | Zwaardere robots, klimmen en gebruik buiten |
| Continu-draaiende servomotor | 4,8–6 V, ingebouwde driver | Je een wiel zonder aparte motordriver wilt |
Het belangrijkste inkoopadvies: als je denkt ooit encoders te willen, koop dan nu motoren met encoders. Achteraf inbouwen betekent de aandrijving uit elkaar halen, en het prijsverschil bedraagt een paar dollar per motor. Vrijwel elk project dat begint als lijnvolger en uitgroeit tot een doolhofoplosser loopt tegen deze beperking aan.
Verken de graaf
Gebruikt in deze bouwprojecten
Projecten, leerroutes en simulators waarin de DC-gelijkstroommotor (TT Motor) voorkomt.
- ProjectBouw een lijndoolhofoplosser-robot met LSRB-routegeheugen
- ProjectBouw een lijnvolgerrobot met een 8051-microcontroller
- ProjectBouw een lijnvolgerrobot: van simulator tot echte baan
- ProjectBouw een obstakelvermijdende robot: meten, scannen en sturen
- ProjectBouw een robotwagen die je via Bluetooth of wifi bestuurt
- LeerrouteMotorregeling voor robots: een leertraject
Vergelijken
Alternatieven
Vragen
FAQ over de DC-gelijkstroommotor (TT Motor)
Wat is een TT-tandwielmotor?
Een TT-tandwielmotor is een betaalbare gelijkstroommotor met borstels, een kunststof reductietandwielbak en een dubbel-D-uitgaande as die in een standaard robotautowiel wordt gedrukt. Het is de standaard aandrijfmotor voor de eerste robot op wielen die de meeste mensen bouwen, want twee motoren en een zwenkwiel vormen een complete 2WD-basis.
Welke spanning heeft een TT-motor nodig?
Een TT-motor werkt op 3 tot 6 volt. De meeste robotauto's voeden hem via een motordriver vanuit een pakket van 4×AA (6 V) of 2×18650 (7,4 V). Bij 3 V draait hij, maar met weinig koppel; 6 V is het gebruikelijke optimum voor een licht chassis.
Kan een Arduino een TT-motor rechtstreeks aansturen?
Nee. Een TT-motor neemt rond 150 mA op tijdens het draaien en bijna 1 A wanneer hij vastloopt, veel meer dan een Arduino-pin kan leveren, en de teruggeïnduceerde spanning kan de pin beschadigen. Bestuur hem altijd via een H-brug zoals de L298N en regel de snelheid met PWM naar de driver.
Hoe snel draait een TT-tandwielmotor?
Ongeveer 200 RPM zonder belasting bij 6 V. Onder het gewicht van een chassis draait hij langzamer, en dat is precies waarvoor de versnellingsbak met verhouding 1:48 dient: hij ruilt het hoge toerental van de motor in voor het koppel dat nodig is om de robot werkelijk te verplaatsen.
Waarom wijken mijn twee TT-motoren uit in plaats van recht te rijden?
Goedkope TT-motoren zijn nooit volmaakt gelijk, waardoor identieke PWM licht verschillende snelheden oplevert. Corrigeer dit in software door de PWM van één motor aan te passen, of voeg wielencoders toe en sluit een snelheidsregellus. Om dezelfde reden sturen robots met obstakelvermijding en lijnvolging elk wiel onafhankelijk aan.
Verder lezen