Composant · Alimentation
Robot Battery & Power Pack
Alimenter une voiture robot : pourquoi un bloc 9 V s'effondre sous les moteurs, un pack AA ou 18650, et comment éviter le redémarrage par les rails.
Présentation
Le pack d’alimentation est la partie à laquelle les débutants pensent le moins et qu’ils ratent le plus souvent. C’est simplement la batterie qui fournit le courant aux moteurs et à l’électronique — mais mal choisie, le robot tremble, redémarre ou refuse de bouger, aussi bon soit le code. Bien alimenter fait souvent la différence entre un robot qui roule et un qui redémarre sans cesse.
L’idée clé est qu’un robot a deux appétits très différents en courant : les moteurs l’avalent par pics, et la logique le sirote régulièrement. Une batterie peut nourrir les deux, mais il faut les arranger pour que les moteurs gourmands n’affament pas le cerveau sensible.
Fonctionnement
Suivez le courant depuis le pack :
- La batterie fournit la tension brute — 6 V avec quatre AA, 7,4 V avec deux 18650.
- Le rail moteur va directement du pack vers le Vin du pilote L298N. C’est là que vient le fort courant pulsé des moteurs — tenu à l’écart de l’Arduino.
- Le rail logique est un 5 V régulé (depuis le régulateur embarqué du pilote ou via USB) qui alimente l’Arduino et les capteurs avec une tension propre et stable.
- Une masse commune relie tout. Chaque rail doit partager la même ligne de masse, sinon les signaux logiques n’ont pas de référence partagée et les lectures deviennent insensées.
Séparé ainsi, un moteur tirant soudain un ampère peut affaisser son propre rail sans entraîner le 5 V de l’Arduino avec lui.
Pourquoi un bloc 9 V échoue
L’erreur la plus fréquente du premier robot est d’alimenter les moteurs depuis une pile rectangulaire 9 V PP3. Elle semble pratique, mais contient très peu d’énergie et a une résistance interne élevée. Dès que les moteurs tirent du courant, sa tension s’effondre — l’Arduino passe sous son minimum et redémarre, donc le robot avance par à-coups et redémarre en boucle. Un bloc 9 V convient à une maquette sirotant des milliampères ; c’est le mauvais choix pour tout ce qui entraîne des roues.
Choix et câblage
- Adaptez la tension aux moteurs. Des moteurs 3–6 V sont contents sur un pack 6 V ou 7,4 V ; utilisez le PWM pour dompter la vitesse plutôt que de sous-alimenter le pack.
- La capacité, c’est l’autonomie. Plus de mAh signifie plus longtemps entre charges ; les 18650 durent bien plus que les AA mais exigent un support protégé.
- Un interrupteur, bonne polarité. Ajoutez un interrupteur général sur le pack et vérifiez la polarité avant la première mise sous tension — une alimentation inversée peut tuer une carte instantanément.
- Pas de réinjection. Évitez d’alimenter l’Arduino à la fois par USB et par batterie sauf si la carte est prévue pour.
- Ajoutez un condensateur réservoir sur l’alimentation moteur pour absorber le pic de démarrage et stabiliser le rail.
Résistance interne : le nombre qui décide de tout
Chaque batterie se comporte comme une source de tension idéale avec une résistance en série. Cette résistance est toute l’histoire de pourquoi un pack fonctionne et un autre redémarre votre carte.
V_under_load = V_open_circuit - (I x R_internal)
Un robot tirant un pic de 2 A via un pack à 0,5 Ω de résistance interne perd un plein volt avant que l’aval ne voie quoi que ce soit. Voici ce que cela donne pour les options courantes :
| Pack | Nominal | Résistance interne typique | Chute à 2 A | Verdict |
|---|---|---|---|---|
| PP3 9 V alcaline | 9 V | 1,5–3 Ω | 3–6 V | Inutilisable pour moteurs |
| 4×AA alcalines | 6 V | 0,6–1,2 Ω | 1,2–2,4 V | Limite ; s’épuise vite |
| 4×AA NiMH | 4,8 V | 0,1–0,2 Ω | 0,2–0,4 V | Bien, mais tension basse |
| 6×AA NiMH | 7,2 V | 0,15–0,3 Ω | 0,3–0,6 V | Un choix solide |
| 2×18650 Li-ion | 7,4 V | 0,05–0,15 Ω | 0,1–0,3 V | Excellent |
| LiPo 2S | 7,4 V | 0,02–0,05 Ω | Moins de 0,1 V | Le meilleur, avec précautions |
Ce tableau explique totalement le bloc 9 V. Ce n’est pas qu’il a la mauvaise tension — il a la tension la plus élevée de la liste. C’est que sous un pic de 2 A il ne délivre que 3 V, et le robot redémarre. La tension sur l’étagère ne dit rien ; la chute en charge dit tout.
Mesurez le vôtre en deux minutes
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
Écrivez le nombre sur le pack au marqueur. Il augmente avec le vieillissement des éléments, et un pack dont la résistance a doublé est un pack qui a commencé à causer des redémarrages « aléatoires ».
Le budget de courant
Additionnez sur papier avant d’acheter. Utilisez le blocage, pas le typique.
| Appareil | Typique | Crête / blocage |
|---|---|---|
| Arduino Uno | 45 mA | 50 mA |
| ESP32 (Wi-Fi actif) | 80 mA | 500 mA en rafales |
| Moto-réducteur TT ×2 | 300 mA | 2 A |
| Moto-réducteur métal N20 ×2 | 200 mA | 1,6 A |
| Servomoteur SG90 | 200 mA | 650 mA |
| HC-SR04 | 15 mA | 15 mA |
| MPU-6050 | 4 mA | 4 mA |
| Réseau IR 8 canaux | 100 mA | 200 mA |
| GPS NEO-6M | 45 mA | 60 mA |
Un robot éviteur d’obstacles typique — Uno, deux moteurs TT, un ultrason sur servomoteur — se chiffre à environ 360 mA typiques et 2,7 A en crête. Dimensionnez le pack pour la crête, et dimensionnez l’autonomie d’après le typique :
runtime (hours) = capacity (mAh) / average draw (mA)
2000 mAh de NiMH AA à 360 mA font environ 5,5 heures de roulage, bien plus que ce que la batterie de la plupart des robots ne sert jamais. La capacité est rarement la contrainte — la capacité de pic l’est.
Bien câbler
Battery + ──── master switch ──┬──── motor driver VM (the heavy path)
│
└──── 5 V regulator ──── Arduino, sensors
Battery − ─────────────────────┴──── COMMON GROUND ──── everything
Quatre règles, par ordre de fréquence de violation :
Masse commune, toujours. Chaque alimentation, chaque carte, chaque capteur attachés à une masse. Une masse commune manquante prive les signaux logiques de référence, et la panne est silencieuse — rien ne fonctionne, rien ne chauffe, rien ne semble faux.
La masse en étoile, pas en chaîne. Ramenez chaque masse à un point plutôt que de chaîner via le pilote moteur. Le courant de retour moteur dans un fil de masse partagé crée une différence de tension le long de celui-ci, et vos lectures de capteurs bougent dès que les moteurs tournent.
Interrupteur général sur le fil positif, avant tout. Pouvoir tuer un robot emballé instantanément vaut les deux minutes.
Protection contre l’inversion de polarité. Une simple diode Schottky en série coûte ~0,3 V, ou un MOSFET canal P presque rien. L’un ou l’autre coûte moins cher que la carte qu’un pack inversé détruit — et inverser un pack prend un moment d’inattention.
Condensateurs : ce qu’ils font et ne font pas
Ajoutez un électrolytique 470–1000 µF sur l’alimentation moteur, près du pilote. Cela vaut le coup. On en attend aussi couramment quelque chose qu’il ne peut pas faire.
Ce qu’il corrige : les transitoires rapides de commutation du PWM et de la commutation moteur, qui sont à l’échelle de la microseconde et se couplent dans le rail logique comme du bruit.
Ce qu’il ne peut pas corriger : un pic soutenu. L’arithmétique est impitoyable :
dV = I x t / C
1000 uF supplying 2 A for 10 ms -> dV = 2 x 0.01 / 0.001 = 20 V
Un condensateur à qui on demande de porter un pic moteur de 2 A pendant 10 ms devrait chuter de 20 V, soit plus que le pack. Seule une batterie plus rigide porte un pic. Si votre carte redémarre quand les moteurs démarrent, un plus gros condensateur n’est pas la réponse — un pack à résistance interne plus basse l’est.
Ajoutez aussi une céramique 100 nF près de la broche d’alimentation de chaque CI. Travail totalement différent : elle gère la demande haute fréquence de la commutation propre de la puce, que l’électrolytique est trop lent à servir.
Choisir une chimie
| NiMH AA | Li-ion 18650 | LiPo | |
|---|---|---|---|
| Tension d’élément | 1,2 V | 3,7 V | 3,7 V |
| Résistance interne | Basse | Très basse | La plus basse |
| Autodécharge | Basse (utilisez des éléments « prêts à l’emploi ») | Très basse | Très basse |
| Décharge profonde | Tolérante | Endommagée sous 3,0 V/élément | Endommagée sous 3,0 V/élément |
| Charge | Simple, indulgente | Exige un chargeur adapté ou BMS | Exige un chargeur équilibreuse |
| Risque d’incendie | Négligeable | Réel en cas d’abus | Réel en cas d’abus |
| Idéal pour | Un premier robot | La plupart des robots | Montages performance |
Le NiMH est le bon premier choix. Six éléments donnent 7,2 V avec une faible résistance interne, ils tolèrent les erreurs, et un pack vide est un désagrément plutôt qu’un incident.
Les Li-ion 18650 sont l’évolution sensée : bien plus d’énergie pour le poids, très faible résistance interne, et bon marché. Utilisez un support protégé ou une carte BMS — les éléments lithium descendus sous environ 3,0 V par élément sont durablement endommagés, et un robot qui roule jusqu’à s’arrêter fera exactement cela.
Le LiPo est ce qu’utilisent les montages performance, et c’est celui qui exige du respect. Ne chargez jamais sans surveillance, ne percez jamais, ne laissez jamais déchargé, et utilisez un chargeur équilibreuse.
Dépannage
| Symptôme | Cause probable | Solution |
|---|---|---|
| La carte redémarre quand les moteurs démarrent | Chute du pack — résistance interne trop haute | Mesurez-la ; un pack à plus basse résistance est la seule solution |
| Un plus gros condensateur n’a pas aidé | Il ne le pouvait pas | Voir l’arithmétique ci-dessus ; changez de batterie |
| Rien ne fonctionne, rien ne chauffe | Pas de masse commune | Attachez chaque masse à un point |
| Les lectures capteur bougent quand les moteurs tournent | Masse chaînée | Mettez les masses en étoile vers un point |
| Le robot ralentit au fil du parcours | Tension chutant à mesure que le pack se vide | Normal ; bouclez la vitesse, ou surveillez le pack |
| Moteurs faibles dès le début | Chute du pilote plus pack affaissé | Un L298N prend ~2 V avant que les moteurs ne voient quoi que ce soit |
| Régulateur très chaud | Trop de tension aux bornes d’un régulateur linéaire | Utilisez un régulateur à découpage, ou baissez l’entrée |
| Le pack chauffe en charge | Mauvais chargeur pour la chimie | Arrêtez. Adaptez le chargeur aux éléments |
| Pack Li-ion mort qui ne charge plus | Descendu sous 3,0 V/élément | Endommagé durablement — utilisez un support protégé la prochaine fois |
Surveiller le pack
Dernière chose à ajouter : un robot qui connaît sa tension batterie peut s’arrêter avant de décrocher, et cela coûte deux résistances.
// 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;
}
Une prudence qui rend cela à faire soigneusement : sur un Arduino, analogRead est
ratiométrique au rail 5 V, qui s’affaisse lui-même quand les moteurs tournent. Mesurer une
batterie qui chute via une référence qui chute fait monter la lecture. Passez à la référence
interne 1,1 V avec analogReference(INTERNAL), dimensionnez le diviseur pour elle, et la lecture
devient honnête — le
tutoriel entrées analogiques couvre exactement ce piège.
Explorer le graphe
Utilisé dans ces réalisations
Projets, parcours d'apprentissage et simulateurs qui intègrent le composant Robot Battery & Power Pack.
- ProjetConstruire un bras 4 axes : PCA9685, servos, cinématique
- ProjetConstruire un Micromouse : solveur de labyrinthe
- ProjetConstruire un mini robot sumo : adhérence et coin
- ProjetConstruire un robot de couverture qui balaie une pièce
- ProjetConstruire un robot de pick-and-place qui sait quand il rate
- ProjetConstruire un robot équilibriste avec un MPU6050 et un PID
- ProjetConstruire un robot éviteur d'obstacles : capter, balayer
- ProjetConstruire un robot Mecanum qui roule de côté
- ProjetConstruire un robot piloté au téléphone en Bluetooth ou Wi-Fi
- ProjetConstruire un robot ROS 2 qui voit et roule vers un marqueur
- ProjetConstruire un robot suiveur de ligne avec un microcontrôleur 8051
- ProjetConstruire un rover GPS à waypoints qui roule tout seul
- ProjetConstruire un solveur de labyrinthe de lignes à mémoire LSRB
- ProjetConstruire un suiveur de ligne : du simulateur à la piste
- ProjetConstruire un traceur à stylo : deux axes pas à pas qui arrivent
- Parcours d'apprentissageFondements d'électronique robotique : un parcours d'apprentissage
Questions
FAQ : Robot Battery & Power Pack
Quelle batterie utiliser pour une voiture robot Arduino ?
Un pack 4×AA (6 V) ou 2×18650 (7,4 V) alimentant le pilote moteur est le choix standard. Les deux fournissent le courant dont les moteurs ont besoin sans s'effondrer en charge. Alimentez l'Arduino depuis la sortie 5 V régulée du pilote ou via USB pendant le développement.
Peut-on alimenter les moteurs d'un robot avec une pile 9 V ?
Mal. Un bloc PP3 9 V a très peu de capacité et une résistance interne élevée, donc dès que les moteurs tirent du courant sa tension s'effondre et l'Arduino décroche et redémarre. Utilisez un pack AA ou 18650 pour tout ce qui a des moteurs ; gardez le bloc 9 V pour une maquette.
L'Arduino et les moteurs partagent-ils la même batterie ?
Ils partagent généralement un pack, mais sur des rails séparés. Les moteurs tirent du pack via la borne Vin du pilote ; la logique tourne sur un 5 V régulé. Point critique, chaque alimentation doit partager une masse commune, sinon vos signaux n'ont pas de référence partagée et rien ne se lit correctement.
Pourquoi mon robot redémarre quand les moteurs démarrent ?
Parce que les moteurs au démarrage appellent brièvement un gros pic de courant, faisant chuter la tension partagée sous ce dont l'Arduino a besoin, donc il redémarre. Les solutions sont une batterie plus rigide, des rails moteur et logique séparés depuis le même pack, et un condensateur sur l'alimentation moteur pour absorber le pic.
Pour aller plus loin