Arduino UNO R4 - Botón - Servomotor

En este tutorial, aprenderemos cómo controlar un servomotor con un botón usando un Arduino Uno R4. Presionar el botón hará que el servomotor gire a 90 grados, y presionarlo de nuevo lo devolverá a 0 grados. Este proceso se repite cada vez que se presiona el botón.

El tutorial está dividido en dos secciones:

Este proyecto es excelente para que los principiantes comprendan el control de motores servo, las entradas de botones y las técnicas de antirrebote con Arduino Uno R4.

Acerca del servomotor y del botón

Si no está familiarizado con los motores servo y los botones, incluyendo su distribución de pines, cómo funcionan o cómo programarlos, por favor consulte los tutoriales siguientes para obtener más información.

Diagrama de Cableado

Diagrama de cableado del servomotor con 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.

Código para Arduino UNO R4 - Botón que controla el servomotor sin antirrebote

/* * 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-servo-motor */ #include <Servo.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor int lastButtonState; // the previous state of button int currentButtonState; // the current state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentButtonState = digitalRead(BUTTON_PIN); } void loop() { lastButtonState = currentButtonState; // save the last state currentButtonState = digitalRead(BUTTON_PIN); // read new state if(lastButtonState == HIGH && currentButtonState == LOW) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el 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 computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Copia y pega el código anterior en el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para transferir el código al Arduino UNO R4.
  • Presiona el botón varias veces.
  • Observa el movimiento del servomotor.

※ Nota:

A veces el código proporcionado no funciona correctamente. Para garantizar que siempre funcione correctamente, necesitamos usar el antirrebote de botones. El antirrebote de botones puede ser un desafío para los principiantes. Sin embargo, con la ayuda de la biblioteca ezButton, se vuelve mucho más fácil.

Código Arduino UNO R4 - Botón que controla el servomotor con antirrebote

¿Por qué es importante el antirrebote? ⇒ ver Arduino UNO R4 - Tutorial de antirrebote de botó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-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor void setup() { Serial.begin(9600); // initialize serial button.setDebounceTime(50); // set debounce time to 50 milliseconds servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Pasos R\u00e1pidos

  • Instala la biblioteca ezButton. Consulta Cómo instalar la biblioteca
  • Copia el código y ábrelo en Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para transferir el código al Arduino UNO R4
  • Pulsa el botón varias veces
  • Observa cómo se mueve el servomotor

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!