Component · Voeding
Accu- en voedingspakket voor robots
Zo voed je een robotauto: waarom een 9V-blok inzakt onder belasting, hoe je een AA- of 18650-pakket kiest en hoe je resetten door motor- en logicarail voorkomt.
Wat het is
Het voedingspakket is het onderdeel waar beginners het minst over nadenken en het vaakst verkeerd kiezen. Het is simpelweg de accu die stroom levert aan de motoren en de elektronica. Kies je hem verkeerd, dan schokt, reset of verplaatst de robot zich niet, hoe goed de code ook is. Voeding goed regelen is vaak het verschil tussen een robot die blijft draaien en een die steeds opnieuw opstart.
Het belangrijkste inzicht is dat een robot twee heel verschillende stroombehoeften heeft: de motoren vragen enorme piekstromen, terwijl de logica vrijwel constant stroom gebruikt. Eén accu kan beide voeden, maar de opstelling moet voorkomen dat de motoren de gevoelige logica ondervoeden.
Hoe het werkt
Volg de stroom vanaf het pakket:
- De accu levert de ruwe spanning: 6 V uit vier AA-cellen, 7,4 V uit twee 18650-cellen.
- De motorrail loopt rechtstreeks van het pakket naar Vin van de L298N-driver. De zware, pulserende motorstroom komt hiervandaan en komt de Arduino helemaal niet aan.
- De logicarail is een gereguleerde 5 V, van de spanningsregelaar op de driver of via USB, waarmee de Arduino en sensoren een schone, constante spanning krijgen.
- Een gemeenschappelijke massa verbindt alles. Elke rail moet dezelfde massaleiding delen, anders hebben de logicasignalen geen gezamenlijke referentie en worden metingen betekenisloos.
Met deze splitsing kan een motor die plotseling een ampère opneemt zijn eigen rail laten inzakken zonder ook de 5 V van de Arduino mee te trekken.
Waarom een 9V-blok faalt
De meest voorkomende fout bij de eerste robot is het voeden van de motoren met een rechthoekige 9V PP3-accu. Het blok oogt handig, maar bevat weinig energie en heeft een hoge inwendige weerstand. Zodra de motoren stroom nemen, stort de spanning in. De Arduino zakt onder zijn minimumspanning en reset, waardoor de robot schokt en in een lus opnieuw opstart. Een 9V-blok is prima voor een breadboard die enkele milliampère sippt; het is de verkeerde keuze voor alles dat wielen aandrijft.
Kiezen en bedraden
- Kies een spanning die bij de motoren past. 3–6V-motoren werken goed op een 6V- of 7,4V-pakket; gebruik PWM om de snelheid te beperken in plaats van het pakket te onderspannen.
- Capaciteit is looptijd. Meer mAh betekent dat je langer kunt rijden voordat je moet opladen; 18650-cellen geven veel langere looptijd dan AA-cellen, maar vereisen een beveiligde houder.
- Eén schakelaar, juiste polariteit. Plaats een hoofdschakelaar op het pakket en controleer de polariteit vóór de eerste inschakeling; omgekeerde voeding kan een bord meteen vernietigen.
- Voer geen stroom terug. Voed de Arduino niet gelijktijdig via USB en de accu, tenzij het bord daarvoor is ontworpen.
- Voeg een buffercondensator toe over de motorvoeding om de aanlooppiek op te vangen en de rail stabiel te houden.
Inwendige weerstand: het getal dat alles bepaalt
Elke accu gedraagt zich als een ideale spanningsbron met een weerstand in serie. Die weerstand vertelt het hele verhaal over waarom het ene pakket werkt en het andere je bord reset.
V_under_load = V_open_circuit - (I x R_internal)
Een robot die 2 A trekt via een pakket met 0,5 Ω inwendige weerstand, verliest daardoor een volt voordat de voedingsspanning de motoren bereikt. Zo ziet dat eruit bij gangbare opties:
| Pakket | Nominaal | Gangbare inwendige weerstand | Inzakken bij 2 A | Oordeel |
|---|---|---|---|---|
| 9V PP3 alkaline | 9 V | 1,5–3 Ω | 3–6 V | Onbruikbaar voor motoren |
| 4×AA alkaline | 6 V | 0,6–1,2 Ω | 1,2–2,4 V | Grenst waardig; zakt snel |
| 4×AA NiMH | 4,8 V | 0,1–0,2 Ω | 0,2–0,4 V | Goed, maar lage spanning |
| 6×AA NiMH | 7,2 V | 0,15–0,3 Ω | 0,3–0,6 V | Degelijke keuze |
| 2×18650 Li-ion | 7,4 V | 0,05–0,15 Ω | 0,1–0,3 V | Uitstekend |
| 2S LiPo | 7,4 V | 0,02–0,05 Ω | Minder dan 0,1 V | Beste, met voorzorgsmaatregelen |
Deze tabel verklaart het 9V-blok volledig. Het heeft niet de verkeerde spanning; het heeft de hoogste spanning in de lijst. Bij een piek van 2 A levert het 3 V, waardoor de robot reset. Spanning op de plank vertelt je niets; inzakken onder belasting vertelt je alles.
Meet het zelf in twee minuten
1. Measure the pack's voltage with nothing connected. -> V_open
2. Stall the motors and measure again while stalled. -> V_load
3. Measure the stall current with the meter in series. -> I
4. R_internal = (V_open - V_load) / I
Schrijf het getal met een stift op het pakket. Het neemt toe naarmate de cellen ouder worden, en een pakket waarvan de weerstand is verdubbeld, veroorzaakt vanaf dat moment “willekeurige” resets.
De stroombehoeften
Tel alles op papier bij elkaar voordat je iets koopt. Gebruik voor de dimensionering de aanloopstroom, niet het gemiddelde.
| Apparaat | Gemiddeld | Piek / aanloop |
|---|---|---|
| Arduino Uno | 45 mA | 50 mA |
| ESP32 (Wi-Fi actief) | 80 mA | 500 mA in pieken |
| TT-tandwielmotor ×2 | 300 mA | 2 A |
| N20-tandwielmotor met metalen tandwielen ×2 | 200 mA | 1,6 A |
| SG90-servomotor | 200 mA | 650 mA |
| HC-SR04 | 15 mA | 15 mA |
| MPU-6050 | 4 mA | 4 mA |
| 8-kanaals IR-array | 100 mA | 200 mA |
| NEO-6M GPS | 45 mA | 60 mA |
Een gebruikelijke robot met obstakelvermijding, met een Uno, twee TT-motoren en een ultrasone sensor op een servomotor, heeft een gemiddeld stroomverbruik van 360 mA en een piek van 2,7 A. Kies het pakket voor de piek en bepaal de looptijd op basis van het gemiddelde stroomverbruik:
runtime (hours) = capacity (mAh) / average draw (mA)
2000 mAh AA NiMH bij 360 mA levert ongeveer 5,5 uur rijden, veel langer dan de accu in de meeste robots ooit nodig heeft. Capaciteit is zelden de beperking; het vermogen om stroompieken te leveren wel.
Correct bedraden
Battery + ──── master switch ──┬──── motor driver VM (the heavy path)
│
└──── 5 V regulator ──── Arduino, sensors
Battery − ─────────────────────┴──── COMMON GROUND ──── everything
Vier regels, geordend naar hoe vaak ze worden overtreden:
Altijd een gemeenschappelijke massa. Elke voeding, elk bord en elke sensor sluit aan op één massa. Zonder gemeenschappelijke massa hebben logicasignalen geen referentie en is de storing stilzwijgend: niets werkt, niets is warm en niets ziet er verkeerd uit.
Maak een sterrondeling voor de massa, niet een keten. Voer elke massaleiding naar één punt in plaats van ze in serie door de motordriver te leiden. Retourstroom van motoren door een gedeelde massaleiding creëert een spanningsverschil langs die draad, waardoor sensormetingen verschuiven zodra de motoren bewegen.
Plaats de hoofdschakelaar op de positieve draad, vóór alles. De mogelijkheid om een robot op hol te laten slaan en hem onmiddellijk uit te schakelen is de twee minuten montage waard.
Beveiliging tegen omgekeerde polariteit. Eén Schottky-diode in serie kost ~0,3 V; een P-kanaal-MOSFET kost vrijwel niets. Beide zijn goedkoper dan het bord dat een omgekeerd pakket vernietigt, en een pakket omkeren kost maar een moment onoplettendheid.
Condensatoren: wat ze wel en niet oplossen
Voeg een elektrolytische condensator van 470–1000 µF toe over de motorvoeding, dicht bij de driver. Dat is de moeite waard, maar wie verwacht dat hij ook langdurige stroompieken opvangt, heeft het mis.
Wat hij wel oplost: de scherpe schakeltransiënten van PWM en motorcommutatie. Die spelen op microsecondeschaal en koppelen als ruis door naar de logicarail.
Wat hij niet kan oplossen: een langdurige stroompiek. De rekensom is meedogenloos:
dV = I x t / C
1000 uF supplying 2 A for 10 ms -> dV = 2 x 0.01 / 0.001 = 20 V
Een condensator die een motorpiek van 2 A gedurende 10 ms zou moeten dragen, zou de spanning met 20 V moeten laten dalen, meer dan het pakket heeft. Alleen een accu die minder inzakt kan een piek dragen. Reset je bord wanneer de motoren starten, dan is een grotere condensator niet het antwoord, maar een pakket met een lagere inwendige weerstand.
Voeg daarnaast naast elke voedingspin van een IC een keramische condensator van 100 nF toe. Dat is een volledig andere taak: hij verwerkt de hoogfrequentiecomponenten in het schakelgedrag van de chip, waarvoor de elektrolytische condensator te traag is.
Een accuchemie kiezen
| NiMH AA | Li-ion 18650 | LiPo | |
|---|---|---|---|
| Celspanning | 1,2 V | 3,7 V | 3,7 V |
| Inwendige weerstand | Laag | Zeer laag | Laagst |
| Zelfontlading | Laag (gebruik “kant-en-klaar”-cellen) | Zeer laag | Zeer laag |
| Diepteontlading | Tolerant | Beschadigt onder 3,0 V per cel | Beschadigt onder 3,0 V per cel |
| Opladen | Eenvoudig en vergevingsgezind | Vereist een geschikte lader of BMS | Vereist een balanslader |
| Brandgevaar | Verwaarloosbaar | Reëel bij verkeerd gebruik | Reëel bij verkeerd gebruik |
| Beste toepassing | Een eerste robot | De meeste robots | Prestatiegerichte bouwprojecten |
NiMH is de juiste eerste keuze. Zes cellen leveren 7,2 V met lage inwendige weerstand, zijn vergevingsgezind en een leeg pakket is een kleine ergernis in plaats van een ernstig incident.
Li-ion-18650-accu’s zijn de zinnige upgrade: veel meer energie voor hetzelfde gewicht, een zeer lage inwendige weerstand en goedkoop. Gebruik een beveiligde houder of een BMS-bord; lithiumcellen die onder ongeveer 3,0 V per cel ontladen, raken permanent beschadigd, en een robot die doorrijft tot de accu leeg is, doet precies dat.
LiPo wordt gebruikt in prestatiegerichte bouwprojecten en vereist zorgvuldige behandeling. Laad nooit zonder toezicht, doorboor een cel nooit en laat hem nooit ontladen; gebruik een balanslader.
Problemen oplossen
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Bord reset wanneer de motoren starten | Pakket zakt in; inwendige weerstand te hoog | Meet deze; alleen een pakket met lagere weerstand lost het op |
| Grotere condensator hielp niet | Dat kon nooit | Zie de rekensom hierboven; vervang de accu |
| Niets werkt en niets is warm | Geen gemeenschappelijke massa | Sluit elke massa aan op één punt |
| Sensormetingen verschuiven terwijl motoren draaien | Massa in keten | Maak een sterrondeling naar één punt |
| Robot wordt tijdens een rit langzamer | Spanning daalt naarmate het pakket leegloopt | Verwacht; sluit een snelheidsregellus of bewaak het pakket |
| Motoren zijn vanaf het begin zwak | Spanningsval over de driver plus inzakkend pakket | Een L298N heeft ~2 V spanningsval voordat de motoren spanning krijgen |
| Spanningsregelaar zeer warm | Te veel spanning over een lineaire regelaar | Gebruik een schakelende regelaar of verlaag de ingang |
| Pakket wordt warm tijdens het opladen | Verkeerde lader voor de chemie | Stop. Gebruik een lader die bij de accuchemie past |
| Li-ion-pakket is dood en laadt niet | Onder 3,0 V per cel ontladen | Permanent beschadigd; gebruik de volgende keer een beveiligde houder |
Het pakket bewaken
De laatste nuttige aanvulling: een robot die zijn eigen accuspanning kent, kan stoppen voordat brown-out optreedt en dat kost slechts twee weerstanden.
// 100k / 33k divider: 8.4 V max in -> ~2.09 V at the pin. Safe for a 3.3 V ADC.
const float DIVIDER = (100.0 + 33.0) / 33.0;
float packVolts() {
return analogRead(A0) * (5.0 / 1023.0) * DIVIDER;
}
Eén kanttekening maakt het belangrijk om dit zorgvuldig te doen: op een Arduino is analogRead
ratiometrisch ten opzichte van de 5V-rail, die zelf inzakt terwijl de motoren draaien. Meet je
een dalende accu via een dalende referentie, dan stijgt de afgelezen waarde. Schakel over op de
interne referentie van 1,1 V met analogReference(INTERNAL), dimensioneer de spanningsdeler daarop
en de meting wordt betrouwbaar. De
handleiding voor analoge ingangen behandelt
precies deze valkuil.
Verken de graaf
Gebruikt in deze bouwprojecten
Projecten, leerroutes en simulators waarin de Accu- en voedingspakket voor robots voorkomt.
- ProjectBouw een 4-DOF-robotarm: PCA9685, servomotoren en kinematica
- ProjectBouw een GPS-waypointrover die zelfstandig rijdt
- ProjectBouw een grijp-en-plaatsrobot die weet wanneer hij misgreep
- ProjectBouw een lijndoolhofoplosser-robot met LSRB-routegeheugen
- ProjectBouw een lijnvolgerrobot met een 8051-microcontroller
- ProjectBouw een lijnvolgerrobot: van simulator tot echte baan
- ProjectBouw een Mecanum-robot die zijwaarts rijdt
- ProjectBouw een micromouse: robot die doolhoven oplost met flood fill
- ProjectBouw een mini-sumo robot: grip, wig en randherkenning
- ProjectBouw een obstakelvermijdende robot: meten, scannen en sturen
- ProjectBouw een penplotter: twee stappenmotorassen die op de plek komen
- ProjectBouw een robot die een gebied afdekt en de vloer veegt
- ProjectBouw een robotwagen die je via Bluetooth of wifi bestuurt
- ProjectBouw een ROS 2-robot die een marker ziet en er naartoe rijdt
- ProjectBouw een zelfbalancerende robot met MPU6050 en PID
- LeerrouteElektronicafundamenten voor robots: een leertraject
Vragen
FAQ over de Accu- en voedingspakket voor robots
Welke accu moet ik voor een Arduino-robotauto gebruiken?
Een 4×AA-pakket (6 V) of 2×18650-pakket (7,4 V) dat de motordriver voedt, is de standaardkeuze. Beide leveren de stroom die de motoren nodig hebben zonder onder belasting in te zakken. Voed de Arduino tijdens het ontwikkelen via de gereguleerde 5V-uitgang van de driver of via USB.
Kan ik de motoren van een robot met een 9V-accu voeden?
Nauwelijks. Een 9V PP3-blok heeft weinig capaciteit en een hoge inwendige weerstand. Zodra de motoren stroom vragen, zakt de spanning en veroorzaakt de Arduino brown-out en een reset. Gebruik een AA- of 18650-pakket voor alles met motoren; reserveer het 9V-blok voor een breadboard.
Gebruiken de Arduino en de motoren dezelfde accu?
Meestal delen ze één pakket, maar op gescheiden rails. De motoren nemen stroom uit het pakket via de Vin-aansluiting van de driver; de logica werkt op een gereguleerde 5 V. Cruciaal is dat alle voedingen een gemeenschappelijke massa delen, anders hebben je signalen geen gezamenlijke referentie en leest niets goed.
Waarom reset mijn robot wanneer de motoren starten?
Omdat startende motoren kortstondig een grote stroompiek veroorzaken, waardoor de gedeelde spanning onder het niveau van de Arduino zakt en die opnieuw opstart. Oplossingen zijn een accu die minder inzakt, gescheiden motor- en logicarails van hetzelfde pakket en een condensator over de motorvoeding die de piek opvangt.
Verder lezen