🛠 GPIO, ADC 16 bits et DAC sur le Nucleo STM32H743ZI : bouton, LED et potentiomètre

STM32H7 Nucleo-144 (modèle phare : NUCLEO-H743ZI) · debutant · Schéma : IMG-stm32h7-nucleo-debutant-2-stm32h743zi-gpio-adc-dac.svg — Nucleo-144 STM32H743ZI sur plaque de prototypage, bouton USER (PC13), LED LD1 (PB0), potentiomètre sur A0 et sortie DAC1_OUT1 (PA4) reliée à un oscilloscope, connecteurs ST Zio et morpho annotés, flat vector style, étiquettes en français, fond blanc.

Qué vas a construir

Un recorrido práctico por las E/S básicas del STM32H743ZI: la placa expone hasta 114 GPIO con capacidad de interrupción externa a través del conector ST Zio (compatible con Arduino Uno V3) y de los headers ST morpho, además de un potente hardware analógico: 3× ADC (16 bits, 36 canales, hasta 3,6 MSPS) y 2× DAC de 12 bits. Leeremos el botón USER, atenuaremos un LED y transmitiremos un valor de potenciómetro a través del DAC.

Mapa de la placa (mapeo Zephyr por defecto, útil incluso bajo Arduino)

Hardware

Código (núcleo STM32duino, placa "Nucleo H743ZI")

const uint8_t BTN  = LED_BUILTIN; // USER button is PC13 on the board; on the
                                  // Arduino header use any free pin vs GND
const uint8_t LED  = LED1;        // LD1 = PB0 via the core alias
const uint8_t POT  = A0;          // one of 28 analog channels A0..A27
const uint8_t DAC1 = A4;          // PA4 = DAC1_OUT1 (Zephyr mapping)
                                  // > 
                                  // pin alias depends on your core version

void setup {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);           // ST-LINK virtual COM port
}

void loop {
  int raw = analogRead(POT);      // 3x 16-bit ADCs, up to 3.6 MSPS
  // Map the ADC reading onto the 12-bit DAC output scale
  analogWrite(DAC1, map(raw, 0, 4095, 0, 255));
  digitalWrite(LED, (raw > 2048) ? HIGH : LOW);
  Serial.printf("ADC=%d  -> DAC level=%d\n", raw,
                map(raw, 0, 4095, 0, 255));
  delay(100);
}

Pasos

  1. Conecta el potenciómetro entre 3V3, GND y A0 (nunca alimentes un pin con más tensión que la propia del rail de la placa).
  2. Selecciona la placa Nucleo H743ZI en el núcleo STM32duino y sube el código.
  3. Gira el potenciómetro: el multímetro en PA4 debería seguirlo suavemente — eso es el DAC de 12 bits funcionando.
  4. Pulsa el botón USER (PC13) si lo has conectado a un pin del header: usa pinMode(pin, INPUT_PULLUP) y digitalRead de la misma manera.

Resultado esperado

Los conteos del ADC suben mientras giras el potenciómetro, la tensión del DAC lo sigue y LD1 cambia de estado a mitad de escala. Con tres ADC de 16 bits a hasta 3,6 MSPS, esta placa muestrea mucho más rápido que cualquier Arduino clásico — el cuello de botella es tu sketch, no el hardware.

Errores comunes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales