clignotante.ino
Le test réflexe de la carte : la LED clignote à 1 Hz grâce à millis() au lieu de delay(), ce qui laisse la boucle disponible pour le Wi-Fi ou les capteurs. Le moniteur affiche aussi la mémoire libre, utile avant d'ajouter des bibliothèques radio.
Matériel requis
Une carte ESP32-S2 (simple cœur Xtensa, Wi-Fi, USB-OTG natif sur GPIO19/20, 14 touches capacitives) type DevKitC-1 ou QT Py, alimentée par USB. Rien : la LED utilisateur de la carte suffit (sinon LED + résistance 330 Ω).
Branchement
Broche 2 (LED intégrée sur la plupart des cartes DevKit) ; sinon anode via 330 Ω, cathode sur GND.
Fonctionnement
millis() compte les millisecondes écoulées ; quand l'écart dépasse la période, on bascule la broche. Aucune temporisation bloquante : loop() peut tourner à pleine vitesse. Dans l'Arduino IDE (paquet esp32), choisissez « ESP32S2 Dev Module » ; le S2 se flashe directement par son USB natif (double reset sur certaines cartes pour entrer en bootloader).
Pour aller plus loin
Branchez deux LED et alternez-les, ou faites varier la période avec un potentiomètre sur un ADC.
clignotante.ino
// Clignotement non bloquant sur la carte esp32-s2 (millis au lieu de delay).
const int LED = 2; // LED utilisateur de la plupart des cartes
const unsigned long PERIODE = 500; // ms
bool etat = false;
unsigned long precedent = 0;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);
Serial.println("Clignotement demarre");
}
void loop() {
unsigned long t = millis();
if (t - precedent >= PERIODE) {
precedent = t;
etat = !etat;
digitalWrite(LED, etat ? HIGH : LOW);
Serial.printf("LED %s — heap libre : %u\n", etat ? "ON" : "OFF", ESP.getFreeHeap());
}
}