Arduino C : structure sketch, setup/loop, Serial Monitor
Structure sketch Arduino : setup/loop, Serial. 20 exercices.
Illustration générée par IA
Structure sketch Arduino : setup/loop, Serial. 20 exercices.
Réponse directe (octobre 2026) — Un sketch Arduino = fichier
.inoavecsetup()(une fois) etloop()(infini). L’IDE ajoute les#includeArduino et lemain()caché ; vous ne l’écrivez pas à la main.
Arduino C (souvent appelé « Arduino C ») est du C/C++ adapté à des microcontrôleurs. En robotique, l’idée est simple : ton programme tourne en boucle sur la carte et lit des capteurs / commande des actionneurs (LED, moteurs, buzzer…).
Dans cette leçon, tu apprends :
setup() / loop()),Les exemples fonctionnent sur Arduino “classique”. Sur mBot/mCore via mBlock en mode Arduino C, tu as la même logique, avec en plus des bibliothèques Makeblock.
setup() et loop()Un sketch Arduino contient presque toujours :
setup() : exécutée une fois au démarrage.loop() : exécutée en boucle (encore et encore).Schéma logique :
démarrage carte
└── setup() (1 fois)
└── loop() (répété à l’infini)
└── loop()
└── loop()
Exemple minimal :
void setup() {
// 1 fois
}
void loop() {
// en boucle
}
Bonne pratique : fais des petits changements, compile souvent, et teste progressivement.
SerialSerial te permet d’afficher des messages sur l’ordinateur (moniteur série). C’est l’équivalent du print() en Python.
void setup() {
Serial.begin(9600);
Serial.println("Bonjour !");
}
void loop() {
Serial.println("Je tourne");
delay(1000);
}
Bonnes pratiques :
Serial.begin(...) dans setup(),delay(...) ou utilise millis() (plus tard).compteur, distance_cm, etat.const pour les constantes : const int LED_PIN = 13;9600, 13, 1000) : mets-les dans des constantes.Les solutions sont masquées : clique sur Afficher la solution.
Exercice 1 — Écris un sketch vide qui compile : setup() + loop() vides. Simple
void setup() {}
void loop() {}
Exercice 2 — Ajoute un commentaire en haut avec ton prénom et la date (sans changer le comportement). Simple
// Auteur : Lina — 2026-04-02
void setup() {}
void loop() {}
Exercice 3 — Initialise Serial dans setup() en 9600 bauds. Simple
void setup() {
Serial.begin(9600);
}
void loop() {}
Exercice 4 — Affiche Bonjour une seule fois au démarrage. Simple
void setup() {
Serial.begin(9600);
Serial.println("Bonjour");
}
void loop() {}
Exercice 5 — Affiche Je tourne toutes les 2 secondes dans loop(). Simple
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Je tourne");
delay(2000);
}
Exercice 6 — Déclare une constante const int BAUD = 9600; et utilise-la. Simple
const int BAUD = 9600;
void setup() { Serial.begin(BAUD); } void loop() {}
Exercice 7 — Affiche une ligne --- au démarrage, puis OK. Simple
void setup() {
Serial.begin(9600);
Serial.println("---");
Serial.println("OK");
}
void loop() {}
Exercice 8 — Crée une variable globale int compteur = 0; et affiche-la toutes les secondes, puis incrémente-la. Intermédiaire
int compteur = 0;void setup() { Serial.begin(9600); }
void loop() { Serial.println(compteur); compteur++; delay(1000); }
Exercice 9 — Affiche compteur= puis la valeur sur la même ligne. Intermédiaire
int compteur = 0;void setup() { Serial.begin(9600); }
void loop() { Serial.print(“compteur=”); Serial.println(compteur); compteur++; delay(1000); }
Exercice 10 — N’affiche le compteur que de 0 à 9, puis affiche FIN et arrête (boucle infinie volontaire). Intermédiaire
int compteur = 0;void setup() { Serial.begin(9600); }
void loop() { if (compteur <= 9) { Serial.println(compteur); compteur++; delay(500); } else { Serial.println(“FIN”); while (true) { // stop } } }
Exercice 11 — Ajoute une fonction void logStart() qui écrit START sur Serial, et appelle-la dans setup(). Intermédiaire
void logStart() { Serial.println("START"); }
void setup() { Serial.begin(9600); logStart(); } void loop() {}
Exercice 12 — Crée const int DELAI_MS = 250; et utilise delay(DELAI_MS) au lieu de delay(250). Intermédiaire
const int DELAI_MS = 250;
void setup() { Serial.begin(9600); } void loop() { Serial.println(“tick”); delay(DELAI_MS); }
Exercice 13 — Affiche millis() toutes les secondes (le nombre de millisecondes depuis le démarrage). Avancé
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(millis());
delay(1000);
}
Exercice 14 — Sans delay dans setup(), affiche READY après 3 secondes en utilisant millis() (indice : stocker l’instant de départ). Avancé
unsigned long t0 = 0; bool affiche = false;void setup() { Serial.begin(9600); t0 = millis(); }
void loop() { if (!affiche && (millis() - t0 >= 3000)) { Serial.println(“READY”); affiche = true; } }
Exercice 15 — Ajoute une constante const int PERIOD_MS = 200; et affiche . à cette cadence (avec delay, pour l’instant). Avancé
const int PERIOD_MS = 200;
void setup() { Serial.begin(9600); }
void loop() {
Serial.print('.');
delay(PERIOD_MS);
}
Exercice 16 — Écris une fonction void logValue(const char* nom, int v) qui affiche nom=v. Avancé
void logValue(const char* nom, int v) { Serial.print(nom); Serial.print('='); Serial.println(v); }
void setup() { Serial.begin(9600); logValue(“score”, 42); } void loop() {}
Exercice 17 — Explique (dans un commentaire) la différence Serial.print vs Serial.println, puis montre les deux. Avancé
void setup() {
Serial.begin(9600);
// print : n'ajoute pas de retour à la ligne
// println : ajoute un retour à la ligne à la fin
Serial.print("A");
Serial.print("B");
Serial.println("C"); // ici, fin de ligne
}
void loop() {}
Exercice 18 — Affiche 0,1,2,3,4 sur une seule ligne séparés par des espaces. Avancé
void setup() {
Serial.begin(9600);
for (int i = 0; i < 5; i++) {
Serial.print(i);
if (i < 4) Serial.print(' ');
}
Serial.println();
}
void loop() {}
Exercice 19 — Écris une fonction bool once() qui renvoie true la première fois puis false les fois suivantes (indice : variable statique). Avancé
bool once() { static bool first = true; if (first) { first = false; return true; } return false; }void setup() { Serial.begin(9600); }
void loop() { if (once()) Serial.println(“Une fois”); }
Exercice 20 — Écris un mini “journal” : au démarrage, affiche BOOT, puis en boucle affiche T= + millis() toutes les 500 ms. Avancé
void setup() { Serial.begin(9600); Serial.println("BOOT"); }
void loop() { Serial.print(“T=”); Serial.println(millis()); delay(500); }
Vous hésitez entre deux modèles ou vous avez besoin d'aide sur un montage ? Écrivez-nous, nous vous répondons rapidement par e-mail.