bouton-poussoir.ino
El montaje botón/LED pasa tal cual a la Portenta: el core Arduino Mbed ofrece INPUT_PULLUP y digitalRead con la misma semántica. El comentario ya piensa en la versión por interrupción para el modo de bajo consumo.
Hardware
Un Arduino Portenta H7 (módulo ST STM32H747 doble núcleo Cortex-M7 @ 480 MHz + M4 @ 240 MHz, 8 MB SDRAM, conector high-density), alimentado por USB-C o 5 V. 1 botón pulsador + cable hacia GND.
Cableado
Botón entre el pin D2 del conector y GND (pull-up interno). Revisa el esquema de la carrier board para la correspondencia de pines.
Funcionamiento
Validación del nivel tras 30 ms de estabilidad; la pulsación (LOW) enciende el LED y escribe por USB-C.
Ejecución
Arduino IDE con el core « Arduino Mbed OS Portenta Boards »: elige « Portenta H7 » (núcleo M7), el puerto USB-C y Subir. El selector M7/M4 del modo DFU permite cargar también el núcleo M4.
Variantes
Pasar a interrupción (attachInterrupt) para despertar la placa del sueño, o filtrar en hardware (biestable RS).
bouton-poussoir.ino
// Bouton sur D2 (vers GND) + LED, anti-rebond 30 ms.
const int BOUTON = 2;
bool stable = HIGH, precedent = HIGH;
unsigned long dernierBord = 0;
void setup() {
pinMode(BOUTON, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
bool lecture = digitalRead(BOUTON);
unsigned long maintenant = millis();
if (lecture != precedent) dernierBord = maintenant;
if (maintenant - dernierBord >= 30 && lecture != stable) {
stable = lecture;
digitalWrite(LED_BUILTIN, stable == LOW);
Serial.println(stable == LOW ? "appui" : "relache");
}
precedent = lecture;
// A 480 MHz, boucle de polling ne coute rien ; en basse
// consommation, mieux vaudrait une interruption EXTI.
}