clignotante.ino

ESP32 (original, classe ESP32-WROOM-32) · Fichier : clignotante.ino · Langage : Arduino · Usage : Faire clignoter une LED sans bloquer la boucle

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 classique (module ESP32-WROOM-32, double cœur Xtensa 240 MHz, Wi-Fi + Bluetooth) type DevKitC / DOIT V1, alimentée par micro-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, installez le paquet « esp32 » (Gestionnaire de cartes), choisissez « Dev Module », le port, puis Téléverser (maintenez BOOT si la détection échoue). GPIO34-39 sont entrées seules ; évitez GPIO6-11 et GPIO12.

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 (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());
  }
}

← Retour à la fiche