🛠 Bouton poussoir et console série avec le coprocesseur
Objetivos
Añadir una entrada digital al coprocesador ATmega32U4 de la LattePanda Alpha: un botón pulsador leído con una resistencia de pull-up interna, un LED que se enciende como respuesta y, sobre todo, el enlace serie USB interno que conecta el ATmega32U4 con el PC x86 (Core m3-7Y30). Esta es la pieza fundamental de toda comunicación SoC ↔ MCU en esta placa.
Material
- LattePanda Alpha alimentada con 12 V/3 A o USB-C PD 45 W
- 1 botón pulsador, 1 LED + resistencia de 330 Ω
- Cableado: botón entre D2 y GND (pull-up interno activado, no se necesita resistencia externa); LED + resistencia en D13 hacia GND
- IDE de Arduino en Windows o Linux; el monitor serie del IDE es suficiente para este tutorial
Código completo
// BlinkAndButton.ino — téléverser sur le coprocesseur, carte "Arduino Leonardo"
const int LED_PIN = 13; // broche numérique compatible Arduino
const int BTN_PIN = 2; // bouton de D2 vers GND (pull-up interne utilisé)
void setup {
pinMode(LED_PIN, OUTPUT);
pinMode(BTN_PIN, INPUT_PULLUP);
Serial.begin(9600); // série USB vers le côté x86 (COM sous Windows, /dev/ttyACM* sous Linux)
}
void loop {
digitalWrite(LED_PIN, digitalRead(BTN_PIN) == LOW ? HIGH : LOW);
if (Serial.available) { // laisse le côté PC nous envoyer des caractères
char c = Serial.read;
Serial.print('got:'); Serial.println(c);
}
delay(20);
}
A continuación, abra el monitor serie del IDE (9600 baudios) en el puerto del coprocesador para ver cómo se muestran los got:x cuando escribe.
Verificación esperada
Pulsar el botón → LED encendida; soltar el botón → LED apagada. El monitor serie del PC x86 muestra got:a por cada carácter escrito desde el teclado del PC: el enlace serie interno USB funciona en ambos sentidos.
Errores frecuentes
- Olvidar
INPUT_PULLUPy cablear el botón hacia 3,3 V/5 V sin resistencia externa: el estado leído queda indefinido (pin flotante). - Lógica invertida: con un pull-up, el botón pulsado da
LOW, noHIGH. - Dos programas abiertos en el mismo puerto serie (monitor del IDE + otro script): el segundo no recibe nada.
- Velocidad de transmisión incorrecta: el monitor debe estar configurado en 9600, igual que
Serial.begin(9600).
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton.pyPythonservo.pyPythonanalogique.pyPythonrespiration.pyPythonneopixel.pyPython