Tester un Arduino Nano
Posté : 07 juin 2026, 23:08
Comme je suis dans les Arduino j'ai fait aussi un petit bout de code qui permet de tester toutes les broches en digital d'un Arduino Nano.
Tester une carte de fond en comble permet d'éviter de s'arracher les cheveux plus tard sur un projet à cause d'une broche défectueuse.
Pour tester toutes les broches d'un Arduino Nano (les broches numériques et analogiques), le plus simple est de les tester en boucle en les reliant 2 par 2.
Le code va envoyer un signal (HAUT puis BAS) sur une broche et vérifier si la broche voisine reçoit correctement ce signal.
Si le signal est reçu dans les deux sens, les deux broches sont bonnes.
• Si tout affiche "OK" : Les circuits d'entrée et de sortie de toutes ces broches fonctionnent parfaitement.
• Si une paire affiche "ERREUR" :
1. Débranchez l'Arduino.
2. Vérifiez que votre fil reliant les deux broches en question est bien enfoncé et au bon endroit.
3. Relancez. Si l'erreur persiste, l'une des deux broches (ou les deux) a probablement grillé (souvent à cause d'un court-circuit antérieur ou d'une demande de courant trop forte).
Le Schéma de câblage
Il faut mettre l'Arduino Nano sur une plaque d'essai (breadboard) et relier les broches deux par deux :
• D2 reliée à D3
• D4 reliée à D5
• D6 reliée à D7
• D8 reliée à D9
• D10 reliée à D11
• D12 reliée à A0
• D13 est simplement testée par clignotement de sa LED
• A1 reliée à A2
• A3 reliée à A4
• A5 reliée à A6
• A7 n'est pas testée (broche analogique pure)
Le test tourne en boucle dans le loop.
Si on veut juste le réaliser une fois à l'initialisation de la carte il suffit de tout mettre dans le Setup.
Tester une carte de fond en comble permet d'éviter de s'arracher les cheveux plus tard sur un projet à cause d'une broche défectueuse.
Pour tester toutes les broches d'un Arduino Nano (les broches numériques et analogiques), le plus simple est de les tester en boucle en les reliant 2 par 2.
Le code va envoyer un signal (HAUT puis BAS) sur une broche et vérifier si la broche voisine reçoit correctement ce signal.
Si le signal est reçu dans les deux sens, les deux broches sont bonnes.
• Si tout affiche "OK" : Les circuits d'entrée et de sortie de toutes ces broches fonctionnent parfaitement.
• Si une paire affiche "ERREUR" :
1. Débranchez l'Arduino.
2. Vérifiez que votre fil reliant les deux broches en question est bien enfoncé et au bon endroit.
3. Relancez. Si l'erreur persiste, l'une des deux broches (ou les deux) a probablement grillé (souvent à cause d'un court-circuit antérieur ou d'une demande de courant trop forte).
Le Schéma de câblage
Il faut mettre l'Arduino Nano sur une plaque d'essai (breadboard) et relier les broches deux par deux :
• D2 reliée à D3
• D4 reliée à D5
• D6 reliée à D7
• D8 reliée à D9
• D10 reliée à D11
• D12 reliée à A0
• D13 est simplement testée par clignotement de sa LED
• A1 reliée à A2
• A3 reliée à A4
• A5 reliée à A6
• A7 n'est pas testée (broche analogique pure)
Le test tourne en boucle dans le loop.
Si on veut juste le réaliser une fois à l'initialisation de la carte il suffit de tout mettre dans le Setup.
Code : Tout sélectionner
/********************************
Test Arduino Nano
(c) Ramasoft 2026
********************************
Test à faire sur une breadboard en reliant les broches 2 à 2
Sortie sur le moniteur série réglé à 9600 bauds
D2 -> D3
D4 -> D5
D6 -> D7
D8 -> D9
D10 -> D11
D12 -> A0 (D13 est reliée à une LED interne)
A1 -> A2
A3 -> A4
A5 -> A6
A7 ignorée (entrée analogique à tester avec +5V ou Gnd)
*/
// Structure pour définir les paires de broches à tester
struct PinPair {
int pinA;
int pinB;
const char* nameA;
const char* nameB;
};
// Liste des paires selon notre câblage
PinPair pairs[] = {
{2, 3, "D2", "D3"},
{4, 5, "D4", "D5"},
{6, 7, "D6", "D7"},
{8, 9, "D8", "D9"},
{10, 11, "D10", "D11"},
{12, 14, "D12", "A0"}, // A0 correspond à la broche numérique 14
{15, 16, "A1", "A2"}, // A1=15, A2=16
{17, 18, "A3", "A4"}, // A3=17, A4=18
};
const int numPairs = sizeof(pairs) / sizeof(pairs[0]);
void setup() {
Serial.begin(9600);
while (!Serial) { ; } // Attend l'ouverture du moniteur série
Serial.println("--- DEBUT DU TEST DES BROCHES ARDUINO NANO ---");
Serial.println("Assurez-vous que les broches sont reliées deux par deux.");
delay(2000);
}
bool testPair(PinPair p) {
bool success = true;
// Test 1 : pinA en SORTIE, pinB en ENTREE
pinMode(p.pinA, OUTPUT);
pinMode(p.pinB, INPUT);
// Test HAUT
digitalWrite(p.pinA, HIGH);
delay(5);
if (digitalRead(p.pinB) != HIGH) success = false;
// Test BAS
digitalWrite(p.pinA, LOW);
delay(5);
if (digitalRead(p.pinB) != LOW) success = false;
// Test 2 : On inverse les rôles (pinB en SORTIE, pinA en ENTREE)
pinMode(p.pinB, OUTPUT);
pinMode(p.pinA, INPUT);
// Test HAUT
digitalWrite(p.pinB, HIGH);
delay(5);
if (digitalRead(p.pinA) != HIGH) success = false;
// Test BAS
digitalWrite(p.pinB, LOW);
delay(5);
if (digitalRead(p.pinA) != LOW) success = false;
// Remise à l'état initial (sécurité)
pinMode(p.pinA, INPUT);
pinMode(p.pinB, INPUT);
return success;
}
void loop() {
Serial.println("\n--- Lancement du diagnostic ---");
int errors = 0;
for (int i = 0; i < numPairs; i++) {
Serial.print("Test de la paire [");
Serial.print(pairs[i].nameA);
Serial.print(" <-> ");
Serial.print(pairs[i].nameB);
Serial.print("] : ");
if (testPair(pairs[i])) {
Serial.println("OK V");
} else {
Serial.println("ERREUR X (Vérifiez le câblage ou broche HS)");
errors++;
}
}
// Petit test bonus pour la LED interne (D13)
Serial.print("Test visuel D13 (LED interne) : Clignotement...");
pinMode(13, OUTPUT);
for(int i=0; i<3; i++) {
digitalWrite(13, HIGH); delay(200);
digitalWrite(13, LOW); delay(200);
}
Serial.println(" Fait.");
if (errors == 0) {
Serial.println("\n-> TOUT EST OK ! L'Arduino Nano est en bon état.");
} else {
Serial.print("\n-> ATTENTION : ");
Serial.print(errors);
Serial.println(" erreur(s) détectée(s).");
}
Serial.println("Fin du test. Nouvelle analyse dans 10 secondes...");
delay(10000);
}