Handboek · hoofdstuk 26Motoren en actuatoren
Van een kompasnaald die uitwijkt naar een dak dat zacht dichtschuift
Sensoren laten een microcontroller voelen; actuatoren laten hem iets doen. De meeste actuatoren steunen op één ontdekking: stroom maakt een magnetisch veld, en een stroom in een magnetisch veld voelt een kracht. In dit hoofdstuk leer je hoe een elektromagneet, een relais en een gelijkstroommotor werken, waarom het toerental van een motor met de spanning gaat en zijn koppel met de stroom, en hoe servo's en stappenmotoren een positie aanhouden. Met een H-brug laat je een motor in twee richtingen draaien. Zo kies en stuur je de motor die het schuifpaneel van het kasdak van de klimaatmodule opent en sluit.

- Je kan met de rechterhandregel de richting van het magnetisch veld rond een stroomdraad en in een spoel bepalen.
- Je kan de kracht op een stroomdraad in een magnetisch veld berekenen () en haar richting bepalen.
- Je kan uitleggen hoe een relais en een gelijkstroommotor werken, en wat de commutator doet.
- Je kan met het model en uitleggen waarom het toerental met de spanning en het koppel met de stroom samenhangt, en een motorkarakteristiek lezen.
- Je kan een servomotor en een stappenmotor aansturen en uitrekenen welke puls, hoek of stappen daarbij horen.
- Je kan een H-brug tekenen en uitleggen, met de verboden stand, en een motor met PWM in twee richtingen sturen.
- Je kan een motor met overbrenging kiezen voor een gegeven kracht en snelheid, en de aansturing ontwerpen.
Een kompasnaald die uitwijkt
In april 1820 gaf de Deense natuurkundige Hans Christian Ørsted in Kopenhagen een les over elektriciteit. Toen hij een stroom door een draad stuurde die boven een kompas hing, zwaaide de naald opzij. Elektriciteit en magnetisme, tot dan twee aparte raadsels, bleken één verschijnsel. Ørsted publiceerde het in juli; binnen enkele maanden toonde André-Marie Ampère in Parijs dat twee stroomdraden elkaar aantrekken of afstoten.
In 1821 liet Michael Faraday een draad met stroom rond een magneet draaien: de eerste elektromotor, een speeltje zonder nut, maar met een principe dat vandaag alles aandrijft. In 1834 bouwde Moritz Jacobi in Koningsbergen een motor die echt werk kon doen, en in 1838 voer er een boot met zijn motoren over de Neva.
Vandaag zitten er in een huis tientallen elektromotoren: in de koelkast, de wasmachine, de ventilator van de computer, de trilfunctie van een smartphone. In Habitat draaien ze de pomp, de ventilatoren en straks het kasdak. En het relais, dat al in de meetkas de ledstrip en de pomp schakelt, is gewoon een elektromagneet met een schakelaar eraan.
Een actuator kiezen is meer dan 'een motor bestellen': hij moet genoeg koppel geven, snel genoeg draaien, in twee richtingen kunnen, veilig stoppen en de juiste stroom vragen. Dat reken je hier uit voor de dakmotor van de klimaatmodule.

Stroom maakt een magnetisch veld
Wat je al weet. Een relais, een servo en een duwstang zetten een signaal van de microcontroller om in beweging (F25). Een spoel geeft een spanningspiek als je haar stroom onderbreekt, en daarom staat er een vrijloopdiode over (hoofdstuk 23). Tandwielen en een worm veranderen toerental en kracht (F12).
Rond elke stroomdraad ontstaat een magnetisch veld. De veldlijnen zijn cirkels rond de draad. Hun richting vind je met de rechterhandregel: omklem de draad met je rechterhand, duim in de richting van de (conventionele) stroom; je vingers wijzen de draairichting van het veld aan. In een tekening schrijf je een stroom naar je toe als ⊙ (de punt van een pijl) en een stroom van je weg als ⊗ (de veren).
De sterkte van het veld heet de magnetische inductie , in tesla (T). Op een afstand van een lange rechte draad met stroom is
Wind je de draad op tot een spoel, dan tellen de velden van alle windingen op. Binnenin loopt een sterk, bijna gelijkmatig veld; buiten lijkt het op het veld van een staafmagneet, met een noord- en een zuidpool. De rechterhandregel voor een spoel: je vingers in de draairichting van de stroom, je duim wijst naar de noordpool. Voor een lange spoel met windingen op een lengte geldt : met 400 windingen, 0,50 A en 4 cm lengte is dat 6,3 mT. Een ijzeren kern maakt het honderden tot duizenden keren sterker, tot ongeveer 1,5 à 2 T: dan is het ijzer verzadigd. Dat is een elektromagneet: een magneet die je aan- en uitzet.
| bron | magnetische inductie |
|---|---|
| aardmagnetisch veld (België) | ongeveer 50 µT |
| draad met 10 A, op 1 cm | 0,20 mT |
| spoel zonder kern: 400 windingen, 0,50 A, 4 cm lang | 6,3 mT |
| koelkastmagneet, aan het oppervlak | orde van grootte 5 mT |
| in de luchtspleet van een motor, of een neodymiummagneet | 0,2 tot 1 T |
Het relais
Een relais is een elektromagneet die een schakelaar bedient. In de meetkas schakelen vier relais de ledstrip, de pomp en de duwstang (F25). Het blauwe relais op de meeste relaismodules, het SRD-05VDC, heeft een spoel van 5 V (ongeveer 70 Ω, 71 mA) en contacten voor 10 A bij 250 V wisselspanning of 30 V gelijkspanning. Het grote voordeel: de stuurkring (5 V van de microcontroller) en de geschakelde kring (12 V of zelfs 230 V) raken elkaar nergens.
- 1Spoel
Honderden windingen dun koperdraad. Met 5 V loopt er ongeveer 71 mA: te veel voor een pin, daarom een transistor of een relaismodule (hoofdstuk 23).
- 2IJzeren kern
Maakt het veld van de spoel honderden keren sterker en leidt het naar het anker. Samen met het U-vormige juk vormt hij een bijna gesloten ijzeren kring.
- 3Anker
Een scharnierend ijzeren plaatje. Loopt er stroom, dan trekt de kern het naar beneden; het duwt via een isolerend stift het contact om.
- 4Veer
Trekt het anker terug als de stroom wegvalt. De datasheet belooft: aantrekken bij hoogstens 75 % van de nominale spanning (3,75 V), afvallen pas onder 10 % (0,5 V). Dat verschil is hysterese, zoals bij een Schmitt-trigger (hoofdstuk 24).
- 5COM
Het gemeenschappelijke, beweegbare contact: een verende strip die ofwel NC ofwel NO raakt.
- 6NC (normally closed)
In rust verbonden met COM. Gebruik het voor iets dat aan moet blijven als de sturing uitvalt.
- 7NO (normally open)
Alleen verbonden met COM als de spoel bekrachtigd is. De ledstrip en de pomp van de meetkas hangen aan NO: zonder signaal zijn ze uit.
- 8Aansluitingen van de spoel
A1 en A2. Over de spoel hoort een vrijloopdiode, kathode aan de plus (hoofdstuk 23); op een relaismodule zit die er al op.
Een stroom in een magnetisch veld voelt een kracht
Het omgekeerde van Ørsted: zet een draad met stroom in het veld van een magneet, en de draad krijgt een duw. Die kracht staat loodrecht op de draad én loodrecht op het veld. Staat de draad loodrecht op de veldlijnen, dan is ze maximaal:
De richting vind je met de vlakke rechterhand: steek je duim in de richting van de stroom en je gestrekte vingers in de richting van het veld (van N naar S); je handpalm duwt in de richting van de kracht. Keer je de stroom of het veld om, dan keert ook de kracht om. (Sommige boeken gebruiken de linkerhandregel van Fleming: die geeft dezelfde richting.)
Hoe groot? Een draad van 4 cm met 2,0 A in een veld van 0,080 T voelt : het gewicht van 0,65 g. Klein, maar met honderden windingen, een sterke magneet en ijzer rond de spoel wordt het de kracht die een motor laat draaien.
Een stroombalans op een keukenweegschaal
Is de kracht op een stroomdraad evenredig met de stroom? En hoe sterk is het veld van de magneet?
- U-magneet (of twee neodymiummagneten op een stalen U), polen 4,0 cm breed
- keukenweegschaal tot op 0,01 g
- stijve koperdraad in een statiefklem
- voeding die 3 A kan leveren, ampèremeter
- liniaal
- 1Zet de magneet op de weegschaal en zet ze op nul (tarra).
- 2Hang de draad vast in de klem, zodat een recht stuk van 4,0 cm door de spleet loopt, loodrecht op het veld, zonder de magneet te raken.
- 3Stuur 0,5 A door de draad en lees de weegschaal af. Verhoog in stappen van 0,5 A tot 3,0 A.
- 4Keer de stroom om: wat verandert er?
- 5Zet de aflezing uit tegen de stroom en bepaal uit de helling.
| (A) | 0,5 | 1,0 | 1,5 | 2,0 | 2,5 | 3,0 |
|---|---|---|---|---|---|---|
| aflezing (g) | −0,16 | −0,33 | −0,49 | −0,65 | −0,82 | −0,98 |
Voorbeeldmeting. De weegschaal toont een negatief getal: de magneet lijkt lichter. Met de stroom omgekeerd wordt het getal even groot, maar positief.
De magneet duwt de draad naar beneden. Volgens de derde wet van Newton (hoofdstuk 8) duwt de draad de magneet even hard omhoog: de weegschaal ziet een kleinere kracht. De punten liggen op een rechte door de oorsprong: is recht evenredig met . De helling is 0,327 g per A, dus per ampère . Uit : .
De gelijkstroommotor
Zet een rechthoekige winding in een magnetisch veld en stuur er stroom door. De twee zijden die loodrecht op het blad staan, krijgen tegengestelde krachten: de ene omhoog, de andere omlaag. Samen geven ze een koppel (hoofdstuk 10): de winding draait. Het koppel is het grootst als de winding evenwijdig met het veld staat, en nul als ze er loodrecht op staat:
Het probleem: voorbij de loodrechte stand keren de krachten hun effect om, en de winding zou terugdraaien. Ze zou blijven schommelen rond die stand. De oplossing is de commutator: een ring op de as, in twee helften gespleten, waartegen twee borstels (vaak koolstof) de stroom aanvoeren. Na elke halve draai wisselt elke helft van borstel: de stroom in de winding keert om, net wanneer het koppel van teken zou veranderen. Zo blijft het koppel altijd in dezelfde zin.
Een echte motor heeft niet één winding maar drie of meer, elk met hun eigen stukje commutator, op een ijzeren rotor: het koppel schommelt dan veel minder. De borstels slijten wel, en ze vonken een beetje. Borstelloze motoren (hoofdstuk E24) lossen dat op met elektronica in plaats van een commutator.

Toerental gaat met de spanning, koppel met de stroom
Een draaiende motor is ook een dynamo: de windingen bewegen door het veld en wekken zelf een spanning op (hoofdstuk E19). Die tegen-emk werkt de voedingsspanning tegen en is evenredig met het toerental (in rad/s). Wat overblijft, drijft de stroom door de weerstand van de windingen. En het koppel is evenredig met de stroom. Met één motorconstante (in N·m/A, of hetzelfde getal in V·s/rad):
Daaruit volgen drie dingen die je bij elke motor terugziet:
- Het koppel volgt de stroom. Hoe zwaarder de last, hoe meer stroom de motor trekt, bij elke spanning dezelfde. Een motor die zwaar moet trekken, wordt warm ().
- Het toerental volgt de spanning. Onbelast is klein, dus : dubbele spanning, dubbel toerental. Onder belasting zakt het toerental een beetje, omdat van de spanning afgaat.
- Stilstaan is gevaarlijk. Bij is er geen tegen-emk: de stroom is , de blokkeerstroom. Dat gebeurt bij elke start, en als de motor vastloopt.
De grafieken tonen het model van de dakmotor van de klimaatmodule: een motor met , en een wormoverbrenging van 1 op 50 (koppel en toerental aan de uitgaande as). Bij 12 V draait hij onbelast 74,5 tpm; geblokkeerd levert hij 5,85 N·m en trekt hij 10 A. Tussen die twee daalt het toerental lineair met het koppel. Bij 6 of 9 V ligt dezelfde rechte lager, evenwijdig: de spanning verschuift het toerental. De stroom hangt alleen van het koppel af.
Met PWM (hoofdstuk 25) krijgt de motor gemiddeld : zo stel je het toerental in. Start je met een lage duty cycle en voer je die geleidelijk op, dan blijft de stroom bij het aanlopen klein: geen blokkeerstroom van 10,7 A, maar de stroom die de last vraagt.
Een motor met overbrenging doorrekenen
De dakmotor heeft een wormoverbrenging van 1 op 50 met een rendement van 40 %. De motor zelf heeft , en een nullaststroom van 0,25 A. Aan de uitgaande as moet hij een koppel van 0,95 N·m leveren (de riem trekt 60 N, verder in dit hoofdstuk). Bereken (a) het koppel dat de motor zelf moet leveren, (b) de stroom, (c) het toerental van de motor en van de uitgaande as bij 12 V, (d) het rendement van het geheel.
- , ; , ,
- ;
- , , , rendement
- 1(a) Een overbrenging vermenigvuldigt het koppel met , maar de worm verliest 60 %: .
- 2(b) .
- 3(c) , of tpm. De as na de worm draait 50 keer trager: tpm.
- 4(d) Mechanisch: . Elektrisch: . Rendement .
De H-brug: een motor in twee richtingen
Een MOSFET low-side (hoofdstuk 23) laat een motor maar in één richting draaien. Voor twee richtingen moet de stroom ook omgekeerd door de motor kunnen. Daarvoor zet je vier schakelaars rond de motor, in de vorm van een H: de H-brug.
- S1 en S4 dicht: de stroom gaat van links naar rechts door de motor: vooruit.
- S3 en S2 dicht: van rechts naar links: achteruit.
- S2 en S4 dicht (beide onderkant): de motor is kortgesloten. Een draaiende motor is een dynamo; kortgesloten remt hij zichzelf hard af.
- Alles open: de motor bolt uit.
- S1 en S2 dicht (of S3 en S4): een directe kortsluiting van de voeding, door twee schakelaars, zonder de motor. Dit is de verboden stand: met een batterij van 12,8 V loopt er in een oogwenk honderden ampère; de schakelaars (transistors) branden door, of de zekering springt.
| S1 | S2 | S3 | S4 | gevolg |
|---|---|---|---|---|
| dicht | open | open | dicht | vooruit (links +, rechts −) |
| open | dicht | dicht | open | achteruit |
| open | dicht | open | dicht | remmen: motor kortgesloten via de onderkant |
| open | open | open | open | vrijlopen (uitbollen) |
| dicht | dicht | × | × | verboden: kortsluiting over de voeding |
| × | × | dicht | dicht | verboden: kortsluiting over de voeding |
Met transistors komt er een addertje bij: een transistor schakelt niet oneindig snel uit. Zet je S1 uit en S2 tegelijk aan, dan geleiden ze even allebei (shoot-through). Een goede H-brug wacht daarom een fractie van een microseconde tussen het uitzetten van de ene en het aanzetten van de andere: de dode tijd. En met PWM op een van de bovenste schakelaars regel je naast de richting ook het toerental.
Twee wisselrelais als H-brug: de duwstang van de meetkas
De duwstang van het dakraam in de meetkas schuift uit bij de ene polariteit en in bij de andere. Ze hangt aan twee relais, K3 en K4 (F25). In F25 staat: 'nooit K3 en K4 tegelijk aan'. (a) Hoe moet je de twee wisselcontacten aansluiten zodat de duwstang in beide richtingen kan? (b) Wat gebeurt er in de vier combinaties van K3 en K4? (c) Kan deze schakeling een kortsluiting maken, zelfs als het programma een fout heeft?
- twee relais met elk een wisselcontact (COM, NC, NO)
- duwstang: uit bij + links, in bij + rechts
- schema
- gevolg van de vier combinaties
- kortsluiting mogelijk?
- 1(a) De duwstang komt tussen de twee COM-contacten. Bij beide relais gaat NC naar 0 V en NO naar +12 V.
- 2(b) Beide uit: beide aansluitingen aan 0 V, de duwstang staat stil (en is kortgesloten: ze remt). K3 aan: links +12 V, rechts 0 V: uitschuiven. K4 aan: omgekeerd: inschuiven. Beide aan: beide aan +12 V: geen spanningsverschil, de duwstang staat stil.
- 3(c) Nee. Elk COM-contact raakt ofwel NC ofwel NO, nooit allebei: geen enkele combinatie verbindt +12 V rechtstreeks met 0 V. De verboden stand van de H-brug (S1 en S2 samen) kan hier mechanisch niet bestaan.
De servomotor: een hoek op bestelling
Een servomotor is een klein doosje met een gelijkstroommotor, een tandwielkast, een potentiometer op de uitgaande as en een regelaar. De regelaar vergelijkt de gewenste hoek met de gemeten hoek en laat de motor draaien tot ze gelijk zijn: een gesloten regelkring (hoofdstuk 31). Je geeft de gewenste hoek door met pulsen: elke 20 ms (50 Hz) één puls, en de lengte ervan is de hoek. De afspraak: 1,0 ms is de ene uiterste stand, 1,5 ms het midden, 2,0 ms de andere uiterste. Veel servo's draaien met pulsen van 0,5 tot 2,5 ms hun volle 180°.
De Arduino-bibliotheek Servo maakt die pulsen voor je. servo.write(hoek) zet een hoek van 0 tot 180° om in een puls van 544 tot 2400 µs: write(90) geeft 1472 µs. Wie precies wil zijn, gebruikt servo.writeMicroseconds(1500). Op de Mega gebruikt de bibliotheek eerst timer 5: de pinnen 44, 45 en 46 kunnen dan geen PWM meer (daarom hangen de lampen op D5, hoofdstuk 25).
Een SG90, de kleine blauwe servo uit hoofdstuk F25, weegt 9 g, werkt op 4,8 à 6 V en levert ongeveer 0,18 N·m (1,8 kg·cm): genoeg voor een klepje, niet voor een dak. Een servo trekt stroom in stoten, tot enkele honderden mA bij het draaien: geef hem liever zijn eigen 5 V dan die van de microcontroller.
De stappenmotor: tellen in plaats van meten
Een stappenmotor heeft een rotor met permanente magneten en een stator met meerdere spoelen. Zet je de spoelen één voor één aan, dan springt de rotor telkens een vaste hoek verder, naar de spoel die trekt. In de vereenvoudigde tekening zijn het vier stappen van 90°. Een gangbare hybride stappenmotor heeft een rotor met 50 tandjes en haalt zo 200 stappen per omwenteling: 1,8° per stap.
Het grote voordeel: wie de stappen telt, kent de positie zonder sensor. 200 stappen per seconde is precies één omwenteling per seconde (60 tpm). Met halve stappen (400 per omwenteling) of microstappen, waarbij de driver de stroom in twee spoelen tussen twee standen verdeelt, gaat het fijner en rustiger. Een driver zoals de A4988 heeft maar twee ingangen nodig: STEP (elke puls één stap) en DIR (de richting), en kan tot 1/16 stap (3200 per omwenteling).
De nadelen: een stappenmotor trekt ook stroom als hij stilstaat (om zijn positie vast te houden), zijn koppel zakt bij hoge toerentallen, en als de last te zwaar is, verliest hij stappen zonder dat het programma het merkt. Een NEMA 17 (4,2 cm breed) houdt typisch ongeveer 0,4 N·m vast bij 1,7 A per spoel. Stappenmotoren zitten in 3D-printers, lasersnijders en doseerpompen: overal waar een positie klein en precies moet zijn, en de last voorspelbaar.
| actuator | stuur je met | goed in | let op |
|---|---|---|---|
| gelijkstroommotor (met borstels) | MOSFET (één richting) of H-brug, PWM | eenvoudig, sterk, snel | positie onbekend; vrijloopdiode; aanloopstroom |
| servomotor | puls van 1-2 ms om de 20 ms | een hoek instellen (0-180°) | klein koppel; eigen voeding bij grote servo's |
| stappenmotor | driver met STEP/DIR | precieze positie zonder sensor | kan stappen verliezen; stroom ook in stilstand |
| relais | transistor of relaismodule | galvanisch gescheiden aan/uit, ook 230 V | traag, slijt, klikt; vrijloopdiode over de spoel |
| duwstang (lineaire actuator) | H-brug of twee wisselrelais | rechtlijnige beweging, met eindschakelaars | traag (mm per seconde) |
Habitat: de motor van het kasdak kiezen
Het schuifpaneel van het kasdak (10 kg, rails onder 25°) moet dicht met 0,10 m/s, en de riem moet tot 60 N trekken; met een veiligheidsfactor 2 voor ijs en vuil minstens 120 N (hoofdstuk 7 en 8). Stroom valt soms weg: het paneel mag dan niet vanzelf openschuiven. De riem loopt over een tandriemschijf HTD 5M met 20 tanden (steek 5 mm). Drie motoren zijn te koop (tabel). (a) Welk koppel en toerental moet de as van de schijf leveren? (b) Welke motor kies je? (c) Wat is het werkpunt bij 60 en bij 120 N?
| A: tandwielmotor | B: wormwielmotor | C: planetaire motor | |
|---|---|---|---|
| spanning | 12 V | 12 V | 12 V |
| onbelast | 30 tpm | 74 tpm, 0,25 A | 150 tpm |
| blokkeerkoppel | 3,0 N·m | 5,85 N·m, 10 A | 1,2 N·m |
| overbrenging | tandwielen, zelfremmend: nee | worm 1:50, zelfremmend: ja | planetair, zelfremmend: nee |
- (normaal), (met veiligheidsfactor);
- schijf: 20 tanden van 5 mm: omtrek 100 mm, dus
- koppel en toerental aan de schijf
- keuze
- werkpunt
- 1(a) Koppel: (120 N: 1,91 N·m). Toerental: 0,10 m/s is 100 mm per seconde, precies één omwenteling per seconde: 60 tpm. Mechanisch vermogen (hoofdstuk 9).
- 2(b) A draait onbelast maar 30 tpm: hoogstens 0,05 m/s, het dak zou 14 s nodig hebben. C is niet zelfremmend en haalt geblokkeerd maar 1,2 N·m, minder dan de 1,9 N·m van 120 N. B: zelfremmend, onbelast 74 tpm, geblokkeerd 5,85 N·m.
- 3(c) Uit het model (vorig voorbeeld en de tabel hieronder): bij 60 N trekt B 1,84 A en draait de schijf 62,3 tpm (0,104 m/s) op 12 V; bij 120 N 3,43 A en 50,2 tpm. Beide keren komt het dak dicht.
- 4Geblokkeerd zou B 5,85 N·m leveren: 368 N aan de riem. Dat is drie keer meer dan nodig en genoeg om de rail of de riem te beschadigen: de sturing moet stoppen aan de eindpunten en bij een blokkering (verder).
| riemkracht | koppel | stroom | toerental | riemsnelheid | opgenomen | rendement |
|---|---|---|---|---|---|---|
| 0 N | 0,00 N·m | 0,25 A | 74,5 tpm | 0,124 m/s | 3,0 W | 0 % |
| 30 N | 0,48 N·m | 1,05 A | 68,4 tpm | 0,114 m/s | 12,5 W | 27 % |
| 60 N | 0,95 N·m | 1,84 A | 62,3 tpm | 0,104 m/s | 22,1 W | 28 % |
| 90 N | 1,43 N·m | 2,64 A | 56,2 tpm | 0,094 m/s | 31,6 W | 27 % |
| 120 N | 1,91 N·m | 3,43 A | 50,2 tpm | 0,084 m/s | 41,2 W | 24 % |
Habitat: de dakmotor aansturen
De dakmotor B hangt aan de 12,8 V-rail, die tussen 12,0 V (bijna leeg) en 14,6 V (laden) kan liggen. (a) Welke H-brug en welke pinnen kies je? (b) Welke PWM-waarde geeft 0,10 m/s bij 12,8 V, en bij 14,4 V? (c) Hoe laat je de motor zacht aanlopen zoals in hoofdstuk 7? (d) Welke beveiligingen komen erbij?
- model: ; bij 60 N is
- motor voor 0,10 m/s:
- vrije PWM-pinnen op de Mega: D3, D4, D6, D7, D8, D12, D13, D44-D46
- H-brug en pinnen
- PWM-waarde
- aanloopprofiel
- beveiligingen
- 1(a) Een module met twee BTS7960-halfbruggen: gemaakt voor autotoepassingen zoals een schuifdak, typisch 16 mΩ per schakelaar, dode tijd en beveiligingen ingebouwd, PWM tot 25 kHz. Door de brug gaat de stroom via twee schakelaars: bij 1,84 A verlies je . Pinnen: D6 (RPWM: sluiten), D7 (LPWM: openen), allebei timer 4 (490 Hz), en D8 voor de twee enable-ingangen samen.
- 2(b) Nodig: gemiddeld. Bij 12,8 V: , waarde 232. Bij 14,4 V: waarde 206. Het programma meet daarom de batterijspanning op A3 en past de waarde aan.
- 3(c) Stilstaand heeft de motor al nodig om het paneel tegen de helling te houden. Het profiel: in 1 s van 2,2 V naar 11,6 V (0 naar 0,10 m/s), 5 s constant, in 1 s terug naar 2,2 V, en stoppen op de eindeloopschakelaar. Hard aanzetten zou een stroomstoot van geven.
- 4(d) Twee eindeloopschakelaars (D23 open, D24 dicht), als verbreekcontact: een losse draad geeft ook 'stop'. Een time-out van 12 s (normaal duurt sluiten ongeveer 7 s, met ijs op de rails ongeveer 9 s): daarna is het paneel geblokkeerd. Een zekering van 5 A traag (normaal hoogstens 3,4 A, geblokkeerd 10 A). Een elco van 470 µF / 25 V aan de module (hoofdstuk 24). En in software nooit beide PWM-ingangen tegelijk.
C++: het kasdak openen en sluiten
Het programma is een kleine toestandsmachine (hoofdstuk 32) met drie toestanden: stil, sluiten en openen. De knop (via het filter van hoofdstuk 24) start een beweging, of stopt een lopende. De functie motor() zorgt dat nooit beide PWM-ingangen tegelijk een waarde krijgen. De spanning volgt het profiel, en wordt omgerekend naar een PWM-waarde met de gemeten batterijspanning.
// dakmotor.ino - het schuifpaneel van het kasdak openen en sluiten (Arduino Mega)// H-brugmodule met twee BTS7960: RPWM = sluiten, LPWM = openen, R_EN + L_EN samen.// Eindeloopschakelaars zijn verbreekcontacten naar GND: HIGH = eindpunt bereikt (of draad los: dan ook stoppen).const int KNOP = 22; // S1 'kasdak' via RC-filter en 74HC14: HIGH = ingedrukt (hoofdstuk 24)const int EIND_OPEN = 23;const int EIND_DICHT = 24;const int PWM_DICHT = 6;const int PWM_OPEN = 7;const int ENABLE = 8;const int BATTERIJ = A3; // deler 100 kOhm / 33 kOhm (hoofdstuk 22) const float U_NODIG = 11.63; // gemiddelde spanning voor 0,10 m/s bij 60 N (model)const float U_START = 2.21; // net genoeg om het paneel in beweging te houdenconst unsigned long AANLOOP_MS = 1000, REMMEN_VANAF_MS = 6000, TIMEOUT_MS = 12000; enum Toestand { STIL, SLUITEN, OPENEN };Toestand toestand = STIL;bool dakOpen = false;unsigned long start = 0; int vorigeLezing = LOW, stabiel = LOW; // software-ontdendering (hoofdstuk 24)unsigned long laatsteWissel = 0; void motor(int richting, int waarde) { // richting: +1 sluiten, -1 openen, 0 stil (remmen) analogWrite(PWM_DICHT, richting > 0 ? waarde : 0); analogWrite(PWM_OPEN, richting < 0 ? waarde : 0); // nooit beide tegelijk} float batterijspanning() { return analogRead(BATTERIJ) * 5.0 / 1024.0 * (133.0 / 33.0);} bool knopGedrukt(unsigned long nu) { // true bij de flank 'net ingedrukt' int lezing = digitalRead(KNOP); if (lezing != vorigeLezing) { laatsteWissel = nu; vorigeLezing = lezing; } if (nu - laatsteWissel >= 20 && lezing != stabiel) { stabiel = lezing; return stabiel == HIGH; } return false;} void stop(const char* reden) { motor(0, 0); toestand = STIL; Serial.println(reden);} void setup() { pinMode(KNOP, INPUT); pinMode(EIND_OPEN, INPUT_PULLUP); pinMode(EIND_DICHT, INPUT_PULLUP); pinMode(PWM_DICHT, OUTPUT); pinMode(PWM_OPEN, OUTPUT); pinMode(ENABLE, OUTPUT); motor(0, 0); digitalWrite(ENABLE, HIGH); Serial.begin(9600); dakOpen = (digitalRead(EIND_OPEN) == HIGH);} void loop() { unsigned long nu = millis(); if (knopGedrukt(nu)) { if (toestand != STIL) { stop("gestopt met de knop"); // een druk tijdens de beweging = stoppen } else { toestand = dakOpen ? SLUITEN : OPENEN; start = nu; Serial.println(toestand == SLUITEN ? "dak sluiten" : "dak openen"); } } if (toestand == STIL) return; unsigned long t = nu - start; if (toestand == SLUITEN && digitalRead(EIND_DICHT) == HIGH) { dakOpen = false; stop("dak dicht"); return; } if (toestand == OPENEN && digitalRead(EIND_OPEN) == HIGH) { dakOpen = true; stop("dak open"); return; } if (t > TIMEOUT_MS) { stop("ALARM: eindpunt niet bereikt"); // geblokkeerd, ijs of een losse schakelaar return; } // snelheidsprofiel: 1 s aanlopen, constant, vanaf 6 s afremmen tot kruipsnelheid (30 %), tot de eindeloopschakelaar float s = 1.0; if (t < AANLOOP_MS) s = t / (float)AANLOOP_MS; else if (t > REMMEN_VANAF_MS) s = max(0.3, 1.0 - (t - REMMEN_VANAF_MS) / (float)AANLOOP_MS); float u = U_START + (U_NODIG - U_START) * s; int waarde = constrain((int)(u / batterijspanning() * 255 + 0.5), 0, 255); motor(toestand == SLUITEN ? +1 : -1, waarde);}Getest tegen een gesimuleerd dak: de PWM-waarde loopt in 1 s op tot 232 (bij 12,8 V), het dak raakt de eindeloopschakelaar na 6,8 s (met ijs op de rails, 79 N: 8,7 s; openen gaat sneller, 5,8 s, omdat de zwaartekracht helpt), en een tweede druk tijdens de beweging stopt de motor. Het programma remt af tot 30 % van de snelheid en kruipt zo tot de schakelaar: het paneel stopt nooit net voor het eindpunt. Als de eindeloopschakelaar niet komt, stopt de time-out na 12 s. Merk op dat de knop hier ook een noodstop is: dat is een eis voor elke bewegende machine waar mensen bij kunnen.
Python: het werkpunt van de dakmotor
Het model van dit hoofdstuk in een paar regels: uit de riemkracht volgt het koppel, uit het koppel de stroom, uit de spanning en de stroom het toerental.
# dakmotor.py - het werkpunt van de dakmotor (gelijkstroommotor met worm 1:50) uitrekenenimport math R, K, I0 = 1.2, 0.030, 0.25 # ankerweerstand (ohm), motorconstante (N m/A = V s/rad), nullaststroom (A)OVERBRENGING, RENDEMENT = 50, 0.40 # worm, zelfremmendr = 0.100 / (2 * math.pi) # tandriemschijf: 100 mm riem per omwenteling def werkpunt(U, F): """Stroom, toerental en rendement bij spanning U (V) en riemkracht F (N).""" M = F * r # koppel aan de uitgaande as (N m) I = I0 + M / (RENDEMENT * OVERBRENGING * K) # koppel ~ stroom w_motor = (U - R * I) / K # toerental ~ spanning min R I (tegen-emk) n = w_motor / OVERBRENGING * 60 / (2 * math.pi) # toeren per minuut aan de schijf v = w_motor / OVERBRENGING * r # snelheid van de riem (m/s) rendement = M * w_motor / OVERBRENGING / (U * I) return I, n, v, rendement print(" F (N) I (A) n (tpm) v (m/s) rendement")for F in (0, 30, 60, 90, 120): I, n, v, eta = werkpunt(12.0, F) print(f"{F:8d}{I:8.2f}{n:10.1f}{v:10.3f}{eta:11.0%}") # welke gemiddelde spanning geeft 0,10 m/s bij 60 N?I60 = werkpunt(12.0, 60)[0]U = R * I60 + K * (0.10 / r * OVERBRENGING)for rail in (12.0, 12.8, 14.4): print(f"rail {rail:4.1f} V: gemiddeld {U:.2f} V nodig -> PWM {round(U / rail * 255)}")Uitvoer (gedraaid bij het bouwen van deze pagina):
F (N) I (A) n (tpm) v (m/s) rendement
0 0.25 74.5 0.124 0%
30 1.05 68.4 0.114 27%
60 1.84 62.3 0.104 28%
90 2.64 56.2 0.094 27%
120 3.43 50.2 0.084 24%
rail 12.0 V: gemiddeld 11.63 V nodig -> PWM 247
rail 12.8 V: gemiddeld 11.63 V nodig -> PWM 232
rail 14.4 V: gemiddeld 11.63 V nodig -> PWM 206
Het rendement is het hoogst rond 60 N, en daalt bij lichte last (de nullaststroom weegt dan zwaar door) en bij zware last (de verliezen groeien met het kwadraat van de stroom).
Overzicht: elektromagnetisme en actuatoren
| symbool | betekenis | eenheid |
|---|---|---|
| magnetische inductie | T | |
| 4π · 10⁻⁷ | T·m/A |
| symbool | betekenis | eenheid |
|---|---|---|
| lengte in het veld | m |
| symbool | betekenis | eenheid |
|---|---|---|
| oppervlakte van een winding | m² |
| symbool | betekenis | eenheid |
|---|---|---|
| motorconstante | N·m/A = V·s/rad | |
| hoeksnelheid, 2πn/60 | rad/s |
| symbool | betekenis | eenheid |
|---|---|---|
| overbrengingsverhouding | – | |
| rendement (worm zelfremmend: < 0,5) | – |
| symbool | betekenis | eenheid |
|---|---|---|
| straal van de schijf | m |
| actuator | stuur je met | goed in | let op |
|---|---|---|---|
| gelijkstroommotor (met borstels) | MOSFET (één richting) of H-brug, PWM | eenvoudig, sterk, snel | positie onbekend; vrijloopdiode; aanloopstroom |
| servomotor | puls van 1-2 ms om de 20 ms | een hoek instellen (0-180°) | klein koppel; eigen voeding bij grote servo's |
| stappenmotor | driver met STEP/DIR | precieze positie zonder sensor | kan stappen verliezen; stroom ook in stilstand |
| relais | transistor of relaismodule | galvanisch gescheiden aan/uit, ook 230 V | traag, slijt, klikt; vrijloopdiode over de spoel |
| duwstang (lineaire actuator) | H-brug of twee wisselrelais | rechtlijnige beweging, met eindschakelaars | traag (mm per seconde) |
| S1 | S2 | S3 | S4 | gevolg |
|---|---|---|---|---|
| dicht | open | open | dicht | vooruit (links +, rechts −) |
| open | dicht | dicht | open | achteruit |
| open | dicht | open | dicht | remmen: motor kortgesloten via de onderkant |
| open | open | open | open | vrijlopen (uitbollen) |
| dicht | dicht | × | × | verboden: kortsluiting over de voeding |
| × | × | dicht | dicht | verboden: kortsluiting over de voeding |
| regel | duim | vingers | handpalm |
|---|---|---|---|
| veld rond een draad | stroom | draairichting van het veld | |
| spoel | noordpool | draairichting van de stroom | |
| kracht (vlakke hand) | stroom | veld (N → S) | kracht |
Waar motoren vandaan komen en waar ze heen gaan
Dit hoofdstuk sluit het deel elektronica af, en verbindt het met de mechanica: de kracht, het koppel, de arbeid en het rendement van de hoofdstukken 8 tot 10 worden hier elektrisch. Een motor is de plaats waar een stroom een kracht wordt, en een dynamo (Expert) de plaats waar een kracht een stroom wordt.
Tandwielen, riemen en de wormoverbrenging die zelfremmend is.
Servo, relais en de duwstang van de meetkas met twee relais.
Het bewegingsprofiel van het kasdak: aanlopen, constant, afremmen.
De 60 N die de riem moet leveren, en de derde wet in de stroombalans.
Vermogen, arbeid per sluiting en het rendement van motor en worm.
Koppel als moment: M = F · r aan de tandriemschijf.
De MOSFET, de vrijloopdiode en de transistor die een relais schakelt.
De ontdenderde knop die het dak bedient, en de bufferelco aan de H-brug.
PWM regelt het toerental; servo's lezen de lengte van een puls.
De servo als gesloten regelkring; open lus tegenover gesloten lus.
Stil, openen, sluiten, alarm: de dakmotor als toestandsmachine.
Twee motoren met H-bruggen voor een robot die rijdt en draait.
Lorentzkracht, inductie en de tegen-emk exact; de generator.
Borstelloze motoren en hun sturing, en H-bruggen op hoge frequentie.
In het kort
- Stroom maakt een magnetisch veld: cirkels rond een draad (rechterhandregel), een staafmagneetveld bij een spoel. IJzer versterkt het: een elektromagneet.
- Een stroomdraad in een veld voelt een kracht , loodrecht op draad en veld (vlakke rechterhand: duim stroom, vingers veld, handpalm kracht).
- Een relais is een elektromagneet die een contact (COM naar NC of NO) omzet; stuurkring en lastkring zijn gescheiden.
- In een gelijkstroommotor draait een spoel in een veld; de commutator keert de stroom elke halve draai om.
- en : het toerental volgt de spanning, het koppel de stroom. Stilstaand trekt een motor de blokkeerstroom .
- Een servo neemt een hoek aan volgens een puls van 1-2 ms om de 20 ms; een stappenmotor draait per stap een vaste hoek (vaak 1,8°).
- Een H-brug (vier schakelaars) stuurt een motor in twee richtingen; twee schakelaars aan dezelfde kant tegelijk dicht is een kortsluiting.
Wat je nu kent
- magnetisch veld
- Gebied waarin een magneet of een stroom een kracht voelt; de sterkte is de magnetische inductie , in tesla (T).
- rechterhandregel (veld)
- Duim in de richting van de stroom: je gekromde vingers wijzen de draairichting van het veld rond de draad aan.
- elektromagneet
- Spoel rond een ijzeren kern die magnetisch is zolang er stroom door loopt.
- relais
- Schakelaar die bediend wordt door een elektromagneet; stuurkring en geschakelde kring zijn elektrisch gescheiden.
- commutator
- Gespleten ring op de as van een gelijkstroommotor die de stroom in de rotor elke halve draai omkeert.
- tegen-emk
- De spanning die een draaiende motor zelf opwekt, als een dynamo; ze werkt de voedingsspanning tegen en is evenredig met het toerental.
- koppel (van een motor)
- Het draaiende effect op de as, in N·m; bij een gelijkstroommotor evenredig met de stroom.
- servomotor
- Motor met overbrenging, positiesensor en regelaar, die een hoek aanneemt volgens de lengte van een stuurpuls.
- stappenmotor
- Motor die per stroompuls een vaste hoek draait (vaak 1,8°), zodat je de positie kent zonder sensor.
- H-brug
- Vier schakelaars rond een motor waarmee je de stroom in twee richtingen kan sturen.
- zelfremmend
- Overbrenging die de last niet kan terugdraaien, zoals een worm met een kleine spoedhoek.