🛠 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 ».

Objetivos

Dominar la parte digital: el Teensy 4.0 ofrece 40 pines (de los cuales 24 son accesibles en una protoboard sin soldadura), todos con capacidad de interrupción, 31 pines PWM distribuidos en 19 grupos con frecuencia independiente (analogWriteFrequency), y ajustes finos por pin: resistencia de pull-up/pull-down/keeper, limitación de slew, 7 niveles de fuerza de salida (≈150 Ω a ≈21 Ω) y 4 niveles de ancho de banda de salida (50/100/150/200 MHz). Sobre todo, integrarán la regla de supervivencia n.º 1: nada es tolerante a 5 V (excepto VIN y VUSB).

Material

Las cifras que importan

Código completo

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

Verificación esperada

El LED parpadea suavemente a 20 kHz (frecuencia muy por encima del parpadeo perceptible — un osciloscopio o un simple smartphone grabando en cámara lenta confirman el PWM). La pulsación del botón imprime en el Monitor Serie. Cambien analogWriteFrequency y observen que cada grupo de pines tiene una frecuencia independiente: esta es la base para controlar varios motores o LEDs sin acoplamiento de frecuencia.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales