Le MEGA Sensor Shield V2.0 est la carte qui se fixe sur un Arduino Mega 2560 R3 et transforme chaque broche d’entrées-sorties en un connecteur à trois broches. Fini les cavaliers et la plaque d’essai : un capteur, un relais ou un servomoteur se branche directement sur la rangée qui porte son numéro.
Sur une carte Mega, relier une dizaine de modules à la main demande une plaque d’essai, un faisceau de fils et beaucoup de patience. Le shield répartit sur la carte les 54 broches numériques et les 16 entrées analogiques en groupes de trois broches — signal, alimentation et masse — et ajoute les connecteurs dédiés aux modules les plus courants : Bluetooth, carte SD, module radio APC220, capteur à ultrasons et ICSP pour la programmation.
Ce que la carte apporte
- Toutes les broches en trois fils — 54 broches numériques et 16 entrées analogiques disponibles en rangées de trois : signal, alimentation et masse.
- Les alimentations regroupées — chaque rangée distribue elle-même le 5 V et la masse, plus besoin de tirer un fil de masse pour chaque capteur.
- Une alimentation externe possible — un cavalier et un bornier à vis permettent d’alimenter les broches « V » des rangées par une source extérieure au lieu du 5 V de l’Arduino.
- Des connecteurs dédiés — Bluetooth, carte SD, module radio APC220, interface ICSP, interface IIC (I2C).
- Un bouton de réinitialisation en bord de carte, accessible même quand l’Arduino est vissé dans un boîtier.
- Une LED d’alimentation qui confirme la présence du 5 V sur la carte.
Caractéristiques techniques
| Carte hôte | Arduino Mega 2560 R3 — le shield reprend le gabarit long de la Mega. Il existe des versions équivalentes à gabarit Uno, non compatibles entre elles |
|---|---|
| Broches réparties | 54 broches numériques et 16 entrées analogiques, chacune sur une rangée de 3 broches |
| Ordre sur une rangée | Signal, alimentation, masse — l’ordre est imprimé en sérigraphie juste à côté de chaque rangée |
| Pas des connecteurs | 2,54 mm, compatible avec les fils mâle-femelle et les connecteurs de servomoteurs |
| Alimentation des rangées | Cavalier enclenché : les broches « V » reçoivent le 5 V de l’Arduino. Cavalier retiré : elles reçoivent la tension présente sur le bornier à vis |
| Limite en configuration interne | Les 5 V pris sur l’Arduino à travers le shield sont limités à environ 300 mA — au-delà, il faut passer par le bornier |
| Bornier à vis | 2 pôles, pour une alimentation externe (VCC et masse) |
| Entrées analogiques | Rangées A0 à A15, alimentées en 5 V par l’Arduino quel que soit l’état du cavalier |
| Interface IIC | Rangée dédiée SDA / SCL avec alimentation et masse, pour un afficheur ou un capteur I2C |
| Interface ICSP | RST, D52/SCK, D50/MISO, GND, D51/MOSI et 5 V, sortis sur une rangée dédiée |
| Interface Bluetooth | 3V3, GND, D0/RX0, D1/TX0, GND et 5 V |
| Interface carte SD | D50/MISO, D52/SCK, D53/SS, D51/MOSI, 5 V et GND |
| Interface radio APC220 | D19/RX1, D18/TX1, 5 V et GND |
| Interface capteur à ultrasons | 5 V, D48, D49 et GND, pour un module URF v1.1 |
| Bouton | Réinitialisation, à demeure sur la carte |
| Dimensions | Environ 100 × 58 mm |
Le cavalier d’alimentation : le réglage à comprendre avant de brancher
C’est le seul point qui distingue vraiment ce shield d’un simple adaptateur de broches, et c’est aussi celui qui explique la plupart des montages qui « ne marchent pas ».
Avec le cavalier enclenché, les broches d’alimentation des rangées sont reliées au 5 V de l’Arduino. C’est le réglage de repos, commode pour quelques capteurs, quelques DEL ou une poignée de servomoteurs. La limite à retenir est d’environ 300 mA pour l’ensemble : au-delà, on décharge le régulateur de la carte hôte, et l’Arduino se réinitialise au moment où le servomoteur démarre.
Avec le cavalier retiré, ces mêmes broches reçoivent la tension amenée sur le bornier à vis. Une alimentation externe encaisse alors le courant de plusieurs servomoteurs ou relais, sans toucher à l’Arduino. Deux précautions, sans lesquelles rien ne fonctionne : la masse de l’alimentation externe doit être reliée au bornier en même temps que le pôle positif — sans masse commune, le signal n’a aucune référence —, et la tension choisie doit convenir à tout ce qui est branché sur les rangées concernées.
Les rangées analogiques, elles, restent alimentées en 5 V par l’Arduino en toutes circonstances : c’est un choix du fabricant, et il est plutôt heureux, une alimentation propre étant préférable du côté des mesures.
Repérer le bon sens d’un connecteur
Un servomoteur ou un module à trois fils se branche dans un seul sens. Trois repères suffisent à ne pas se tromper : la masse est la broche marquée G ou d’un signe moins, l’alimentation celle marquée V ou d’un signe plus, et le signal celle marquée S — c’est cette dernière qui porte le numéro de la broche sur la sérigraphie. Sur un cordon de servomoteur, le fil de signal est le plus souvent orange ou jaune, le positif rouge au centre, la masse brune ou noire.
Un connecteur inversé n’endommage pas toujours le module, mais il ne fonctionne pas et il chauffe : en cas de doute, lisez la sérigraphie de la rangée plutôt que de vous fier à la position du connecteur sur la photo d’un montage trouvé en ligne.
Applications courantes
- Robot roulant — capteurs à ultrasons, suiveurs de ligne et servomoteurs de balayage sur une même carte, sans plaque d’essai qui se débranche au premier choc.
- Bras ou plateforme à plusieurs servomoteurs — alimentation externe par le bornier, un seul bloc d’alimentation pour l’ensemble des moteurs.
- Station de mesure — plusieurs capteurs analogiques et numériques en parallèle sur les rangées A0 à A15.
- Atelier et travaux pratiques — un montage qui se défait et se refait en quelques secondes, sans outil.
- Prototype avant intégration définitive — on valide le câblage sur le shield, puis on le reporte sur le shield de prototypage quand la soudure devient nécessaire.
Mini-projet : piloter un servomoteur depuis une rangée de trois broches
Ce qu’il faut
| La carte hôte | Arduino Mega 2560 R3 avec son câble USB |
|---|---|
| Le shield | Le MEGA Sensor Shield V2.0, à emboîter sur la Mega |
| Le moteur | Servomoteur SG90, à brancher directement sur la rangée du D9 |
| Pour plusieurs moteurs | Une alimentation 5 V stabilisée et deux borniers à vis pour le raccordement au shield |
| Pour la mise au point | Le moniteur série de l’IDE Arduino, ouvert à 9600 bauds |
Le câblage
Trois étapes, sans soudure :
- Emboîtez le shield sur la Mega, broches bien alignées, en vérifiant du regard que rien ne force.
- Branchez le connecteur du servomoteur sur la rangée qui porte le numéro 9, dans le sens indiqué par la sérigraphie : signal côté S, rouge au milieu, masse du côté du signe moins.
- Pour un seul petit servomoteur, laissez le cavalier d’alimentation en place : le 5 V de l’Arduino suffit largement. Au-delà de deux servomoteurs, retirez le cavalier, reliez le bloc d’alimentation au bornier à vis — positif et masse — et mettez la Mega sous tension avant l’alimentation externe.
Le programme
/*
* Balayage d'un servomoteur branche sur le MEGA Sensor Shield V2.0
* Carte : Arduino Mega 2560 R3
* Broche : rangee 3 broches du D9
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "Servo.h"
const int BROCHE_SERVO = 9;
const int ANGLE_MIN = 0;
const int ANGLE_MAX = 180;
const int PAS = 5;
Servo servo;
// Balaye une plage, depart et arrivee compris, dans les deux sens :
// l'increment change de signe selon le sens de parcours.
void balayer(int depart, int arrivee) {
int increment = PAS; // montée : on avance de 5 degres
if (depart > arrivee) {
increment = -PAS; // descente : on recule de 5 degres
}
if (depart == arrivee) {
increment = 0; // deja sur place
}
for (int angle = depart; angle != arrivee + increment; angle += increment) {
servo.write(angle);
Serial.print("Angle : ");
Serial.println(angle);
delay(20); // 20 ms de pause entre deux positions
}
}
void setup() {
Serial.begin(9600);
servo.attach(BROCHE_SERVO);
servo.write(90); // position centrale au demarrage
Serial.println("Servomoteur pret, position centrale 90 degres");
delay(1000);
}
void loop() {
balayer(ANGLE_MIN, ANGLE_MAX); // 0 vers 180, pas de 5 degres
delay(400);
balayer(ANGLE_MAX, ANGLE_MIN); // 180 vers 0, meme pas a l'envers
delay(400);
for (int i = 0; i != 3; i++) { // trois positions fixes, trois fois
servo.write(45);
delay(600);
servo.write(90);
delay(600);
servo.write(135);
delay(600);
}
delay(1000);
}
La fonction balayer() se termine sur une comparaison d’égalité stricte : la boucle s’arrête dès que l’angle atteint la valeur d’arrivée augmentée du pas, ce qui garantit que l’angle demandé est bien écrit sur le moteur sans dépasser la plage. Le signe du pas décide du sens, et le même code sert donc pour la montée et pour la descente.
Comment ça marche
- La bibliothèque
Servoest fournie avec l’IDE Arduino : rien à installer. servo.attach()associe le moteur à la broche 9 ; sur une Mega, la bibliothèque accepte de nombreuses broches sans occuper le matériel de la même manière que sur un Uno.servo.write()demande une position d’angle en degrés, la bibliothèque fabrique elle-même le signal de commande.- Le moniteur série affiche chaque angle : si les valeurs défilent mais que l’axe ne bouge pas, le problème est du côté du câblage ou de l’alimentation, pas du programme.
Variante : plusieurs servomoteurs, pilotés en I2C
Le shield alimente facilement trois ou quatre servomoteurs par le bornier, mais au-delà le nombre de broches employées devient gênant et le courant de pointe se fait sentir. Une carte de commande de servomoteurs PCA9685 branche sur la rangée IIC du shield : ses seize sorties se pilotent par deux fils, et les servomoteurs prennent leur courant directement sur le bloc d’alimentation du driver. Le shield sert alors de point de fixation pour tout le reste du montage.
Questions fréquentes
Le servomoteur vibre ou ne bouge pas du tout
Trois causes, par ordre de fréquence : le connecteur est à l’envers (signal et masse intervertis), le cavalier d’alimentation est retiré alors que rien n’est branché sur le bornier à vis, ou le courant demandé dépasse ce que l’Arduino peut fournir. Un servomoteur qui s’agite par à-coups au démarrage signale presque toujours une alimentation trop faible.
Combien de servomoteurs puis-je alimenter par le shield ?
Par l’Arduino, quelques petits servomoteurs seulement : la limite d’environ 300 mA sur les broches « V » est vite atteinte, un SG90 tirant déjà de l’ordre de 200 mA à l’arrêt sur obstacle. Au-delà, retirez le cavalier, amenez une alimentation externe sur le bornier à vis, et réunissez bien les masses.
Le shield se monte-t-il sur un Arduino Uno ?
Non. Ce modèle reprend le gabarit long de la Mega 2560 — 54 broches numériques et 16 entrées analogiques — alors qu’un Uno n’en propose que 20 au total, dans un format plus court. Les rangées ne coïncident pas. Pour un Uno, il faut une carte conçue pour ce gabarit.
Faut-il souder quelque chose ?
Non, la carte arrive avec ses barrettes déjà soudées. Une précaution avant de l’emboîter : regardez le dessous de la carte, aucune broche ne doit risquer de toucher le connecteur USB ou un composant de la Mega. Sur les cartes d’atelier où l’on empile plusieurs shields, un coup d’œil de trois secondes évite un court-circuit.
À quoi servent les connecteurs Bluetooth, carte SD et radio ?
Ils évitent de refaire le câblage pour les modules les plus courants. Un module Bluetooth HC-05 se branche sur la rangée 3V3, GND, RX0, TX0, GND, 5 V et dialogue sur la liaison série principale. Une carte micro SD se branche sur les broches du bus SPI (D50 à D53) avec son alimentation. Les numéros de broches employés par chaque interface sont rappelés dans le tableau des caractéristiques ci-dessus.
La LED d’alimentation ne s’allume pas
Le shield n’est pas emboîté assez profondément, ou la Mega n’est pas alimentée. Débranchez, réalignez les deux rangées de broches sur les connecteurs de la carte hôte et enfoncez d’aplomb, sans jeu d’un côté.
À combiner avec
Le shield complète une carte Arduino Mega 2560 R3, qui porte à elle seule les 54 entrées-sorties réparties ici. Pour une mesure de distance sans câblage sur plaque d’essai, un capteur à ultrasons HC-SR04 se branche sur une rangée numérique, avec son support de fixation si le montage doit être mobile. Pour un affichage, l’adaptateur I2C se branche sur la rangée IIC dédiée en quatre fils. Et si le montage doit tenir dans un boîtier, le boîtier pour Mega se referme sans démonter le shield.











Avis
Il n’y a pas encore d’avis.