bouton-led.ino

GD32F103 (GigaDevice) — puce + cartes compatibles Blue Pill · Fichier : bouton-led.ino · Langage : Arduino · Usage : Allumer la LED sur appui bouton avec anti-rebond

Le montage bouton le plus courant, adapté aux broches Arduino du core STM32 : INPUT_PULLUP fonctionne sur PA0 et le filtre de 30 ms nettoie les rebonds. La LED suit l'appui en direct sur le moniteur.

Matériel requis

Une carte de développement GD32F103C8T6 (Cortex-M3 108 MHz, compatible broche à broche Blue Pill), alimentée en 3,3 V/5 V, avec un adaptateur ST-Link ou série. 1 bouton poussoir (PA0 vers GND).

Branchement

Bouton entre PA0 et GND ; pull-up interne activée. Toutes les broches sont en 3,3 V max — jamais de 5 V sur PA0.

Fonctionnement

L'échantillonnage continu + validation après stabilité 30 ms est le patron anti-rebond standard ; digitalWrite(LED, stable) exploite l'actif-bas sans condition. Avec Arduino : installez le core « STM32F1 » (Roger Clark, gestionnaire de cartes) et choisissez la carte « GD32F103C » ; le LED utilisateur est PC13 (actif à LOW). En C : bibliothèque GD32F10x + ST-Link.

Pour aller plus loin

Compteur d'appuis avec sauvegarde flash (sketch EEPROM/flash), ou double-clic pour deux actions.

bouton-led.ino

// Bouton sur PA0 (vers GND) + LED PC13, anti-rebond 30 ms.
const int BOUTON = PA0;
const int LED = PC13;
const unsigned long ANTI_REBOND = 30;

bool dernier = HIGH, stable = HIGH;
unsigned long bord = 0;

void setup() {
  pinMode(BOUTON, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  bool lu = digitalRead(BOUTON);
  unsigned long t = millis();
  if (lu != dernier) bord = t;
  if (t - bord >= ANTI_REBOND && lu != stable) {
    stable = lu;
    digitalWrite(LED, stable);        // actif-bas : LOW = allume
    Serial.println(stable ? "relache" : "APPUIE");
  }
  dernier = lu;
}

← Retour à la fiche