Arduino UNO R4 - Botón - LED

Este tutorial te enseña a usar el Arduino UNO R4 y un botón para controlar un LED. Aprenderemos dos formas diferentes de hacerlo:

Aplicación 1 - El LED sigue el estado del botón:

Aplicación 2 - El LED cambia su estado cada vez que se pulsa el botón:

Para Aplicación 2, necesitamos aplicar un anti-rebote al botón para asegurarnos de que funcione correctamente. Veremos por qué es importante al comparar cómo se comporta el LED con y sin anti-rebote en el código de Arduino.

LED de control para Arduino UNO R4

Acerca de LED y el botón

Si no estás familiarizado con el LED y el botón (incluyendo la asignación de pines, el funcionamiento y la programación), los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado del LED del botón para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Aplicación 1 - El LED sigue el estado del botón

Código Arduino UNO R4

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-button-led */ #define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button #define LED_PIN 3 // The Arduino UNO R4 pin connected to the LED void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int buttonState = digitalRead(BUTTON_PIN); // read new state if (buttonState == LOW) { Serial.println("The button is being pressed"); digitalWrite(LED_PIN, HIGH); // turn on } else if (buttonState == HIGH) { Serial.println("The button is unpressed"); digitalWrite(LED_PIN, LOW); // turn off } }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configuración del entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu ordenador usando un cable USB.
  • Inicia el IDE de Arduino en tu ordenador.
  • Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Copia el código y ábrelo en el IDE de Arduino.
  • Haz clic en el botón Subir del IDE de Arduino para compilar y subir el código al Arduino UNO R4.
Cargar código en el IDE de Arduino
  • Presiona el botón y manténlo presionado durante unos segundos.
  • Observa el cambio en el estado del LED.

Verás que el estado del LED está sincronizado con el estado del botón.

Explicación del código

¡Consulta la explicación línea por línea contenida en los comentarios del código fuente!

Aplicación 2 - El LED cambia su estado cada vez que se pulsa el botón

Código de Arduino UNO R4 - El botón alterna el LED sin anti-rebote

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-button-led */ #define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button #define LED_PIN 3 // The Arduino UNO R4 pin connected to the LED int led_state = LOW; // the current state of LED int button_state; // the current state of button int prev_button_state; // the previous state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if(prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Explicación del código

Puedes localizar la explicación en las líneas de comentario del código Arduino UNO R4 anterior.

En el código, la expresión led_state = !led_state es igual al siguiente código:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

Pasos R\u00e1pidos

  • Copia el código y ábrelo en el IDE de Arduino.
  • Sube el código al Arduino UNO R4.
  • Presiona y suelta el botón varias veces.
  • Observa el cambio en el estado del LED.

Puede que notes que el LED cambia cada vez que se pulsa el botón. Sin embargo, esto podría no funcionar siempre a la perfección. A veces, el LED podría cambiar demasiadas veces rápidamente cuando se pulsa el botón una vez, o podría no cambiar en absoluto (cambia dos veces muy rápido, lo cual es difícil de ver).

⇒ Para solucionar este problema, necesitamos filtrar el rebote del botón.

Código para Arduino UNO R4 - El botón alterna el LED con antirrebote

El rebote de un botón puede ser un reto para los principiantes. Afortunadamente, la biblioteca ezButton facilita las cosas.

¿Por qué es necesario el anti-rebote? Consulta el Arduino UNO R4 - Tutorial de anti-rebote de botón para obtener más información.

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-button-led */ #include <ezButton.h> #define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button #define LED_PIN 3 // The Arduino UNO R4 pin connected to the LED ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; int led_state = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Pasos R\u00e1pidos

  • Instala la biblioteca ezButton. Consulta la biblioteca ezButton para obtener instrucciones.
  • Copia el código y ábrelo con Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para cargar el código en el Arduino UNO R4.
  • Presiona y suelta el botón varias veces.
  • Observa el cambio de estado del LED.

Verás que el estado del LED se invierte exactamente una vez cada vez que se pulsa el botón.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!