🛠 Lire un bouton avec une résistance de pull-up interne
Objetivos
Leer un botón pulsador en el Arduino Micro utilizando la resistencia de pull-up interna (20 a 50 kΩ), sin componentes externos, y comprender la lógica activa en bajo (active-low).
Material
- 1 Arduino Micro
- 1 botón pulsador
- 1 cable entre el pin 2 y una pata del botón, la otra pata conectada a GND
- Cable micro-USB
Código completo
// Bouton sur broche 2 vers GND, pull-up interne actif.
// Logique active-low : lecture LOW quand le bouton est enfonce.
const uint8_t BTN = 2; // les broches 0,1,2,3,7 portent aussi une interruption externe
bool etatLed = false;
void setup {
pinMode(BTN, INPUT_PULLUP); // pull-up interne 20-50 kOhm
pinMode(LED_BUILTIN, OUTPUT); // broche 13
Serial.begin(9600); // Serial = port USB CDC
}
void loop {
if (digitalRead(BTN) == LOW) { // bouton enfonce
delay(50); // anti-rebond grossier
if (digitalRead(BTN) == LOW) {
etatLed = !etatLed;
digitalWrite(LED_BUILTIN, etatLed);
Serial.println(etatLed ? "LED ON" : "LED OFF");
while (digitalRead(BTN) == LOW) {} // attendre le relachement
}
}
}
Verificación esperada
Cada pulsación cambia el estado del LED 13 y muestra LED ON / LED OFF en el Monitor serie (puerto serie del Micro). No se observan rebotes: una pulsación genera una sola línea.
Errores frecuentes
- Olvidar INPUT_PULLUP: la entrada queda flotante y el Monitor muestra cambios aleatorios.
- Conectar el botón a 5 V en lugar de GND sin resistencia externa: cortocircuito cuando el pull-up está activo.
- Esperar HIGH cuando el botón está pulsado: con un pull-up, la pulsación produce LOW (activo en bajo).
- Usar Serial1 por costumbre: en el Micro, Serial1 es la UART TTL de los pines 0/1, invisible en el Monitor serie.
Otros tutoriales para esta placa
- Faire clignoter la LED embarquée (et comprendre les LED TX/RX)
- Lire un capteur analogique sur le convertisseur 10 bits
- Transformer le Micro en clavier USB (HID) avec bouton de sécurité
- Pont Serial vers Serial1 : passerelle USB vers TTL
- Piloter un servo moteur avec le PWM et un potentiomètre
- Sortir des sentiers : registres AVR et interruption externe
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinoclavier-auto-tape.inoArduinosouris-cercle.inoArduinotelecommande-media.inoArduinobouton-clic-souris.inoArduino