🛠 GPIO et PWM sous 3,3 V : les règles d'or du Teensy 4.0

Teensy 4.0 · debutant · Schéma : IMG-teensy-40-debutant-2-teensy40-gpio-pwm-3v3.svg — Teensy 4.0 sur breadboard (24 broches accessibles sans soudure) : bouton poussoir sur la broche 2 vers GND, LED + 330 Ω sur la broche 6 (broche PWM), broches 24-33 sur les pastilles inférieures ; encart « 3,3 V max — aucune tolérance 5 V ».

Objectifs

Maîtriser la partie numérique : le Teensy 4.0 offre 40 broches (dont 24 accessibles sur breadboard sans soudure), toutes interrompables, 31 broches PWM réparties en 19 groupes indépendamment cadencés (analogWriteFrequency), et des réglages fins par broche : résistance de tirage pull-up/pull-down/keeper, limitation de slew, 7 niveaux de force de sortie (≈150 Ω à ≈21 Ω) et 4 paliers de bande passante de sortie (50/100/150/200 MHz). Surtout, vous intégrerez la règle de survie n° 1 : rien n'est tolérant 5 V (sauf VIN et VUSB).

Matériel

Les chiffres qui comptent

Code complet

// Bouton sur 2 (pull-down interne), LED PWM sur 6.
const uint8_t BTN = 2;
const uint8_t LED = 6;

void setup {
  Serial.begin(9600);
  pinMode(BTN, INPUT_PULLDOWN);   // pull-down interne : pas de résistance externe
  pinMode(LED, OUTPUT);
  analogWriteFrequency(LED, 20000);  // 20 kHz pour le groupe de la broche 6
}

void loop {
  static uint16_t pwm = 0;
  static int8_t pas = 8;
  pwm += pas;                       // respiration 0..255
  if (pwm >= 255 || pwm == 0) pas = -pas;
  analogWrite(LED, pwm);

  if (digitalRead(BTN) == HIGH) {   // front simple
    Serial.println(F("bouton!"));
    delay(100);
  }
  delay(10);
}

Vérification attendue

La LED respire à 20 kHz (fréquence bien au-delà du scintillement perceptible — un oscilloscope ou un simple smartphone en enregistrement vidéo au ralenti confirme le PWM). L'appui sur le bouton imprime dans le Moniteur. Changez analogWriteFrequency et observez que chaque groupe de broches est indépendamment cadencé : c'est la base pour piloter plusieurs moteurs ou LED sans couplage de fréquence.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels