ESP8266 - Botón - Servomotor

Este tutorial le enseña cómo usar un ESP8266 y un botón para controlar un servomotor. En detalle:

El proceso anterior se repite una y otra vez.

El tutorial tiene dos secciones:

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Botón para Protoboard con Tapa
1×Kit de Botón para Protoboard
1×Botón Pulsador de Panel
1×Módulo de Botón Pulsador
1×Servomotor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del servomotor y del botón

Si no tienes experiencia con motores servo y botones (incluidas las asignaciones de pines, cómo funcionan y cómo programarlos), los siguientes tutoriales pueden ayudarte:

Diagrama de Cableado

Diagrama de cableado del ESP8266 NodeMCU con botón y servomotor

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Tenga en cuenta que el diagrama de cableado que se muestra arriba es adecuado solo para un motor servo de par bajo. En caso de que el motor vibre en lugar de girar, se debe utilizar una fuente de alimentación externa para proporcionar más potencia al motor servo. A continuación se muestra el diagrama de cableado con una fuente de alimentación externa para el motor servo.

Diagrama de cableado de la fuente de alimentación externa para el servomotor ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Por favor, no olvides conectar la tierra de la fuente externa a la tierra del ESP8266.

Código ESP8266 - Botón que controla el motor servo sin rebote

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-button-servo-motor */ #include <Servo.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 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 prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); 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"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // rotate the servo motor to the angle position servo.write(angle); } }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestran en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Conecta la placa ESP8266 NodeMCU a la computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (por ejemplo NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Copia el código anterior y ábrelo en el Arduino IDE.
  • Haz clic en el botón Subir en el Arduino IDE para compilar y subir el código al ESP8266.
  • Presiona el botón varias veces.
  • Observa los cambios en el servomotor.

※ Nota:

En la práctica, el código mencionado anteriormente no siempre funciona correctamente. Para asegurarnos de que funcione correctamente, necesitamos anti-rebote del botón. El anti-rebote del botón puede ser difícil para quienes son nuevos en ESP8266. Por suerte, la biblioteca ezButton hace este proceso mucho más sencillo.

Código ESP8266 - Botón que controla un servomotor con anti-rebote

¿Por qué es necesario el antirebote? Para obtener más información, consulte ESP8266 - Button Debounce tutorial.

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-button-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object for 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 the Serial to communicate with the Serial Monitor. 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()) { // change angle of servo motor if (angle == 0) angle = 90; else if (angle == 90) angle = 0; // rotate the servo motor to the angle position Serial.print("The button is pressed => rotate servo to "); Serial.print(angle); Serial.println("°"); servo.write(angle); } }

Pasos R\u00e1pidos

  • Instala la biblioteca ezButton. Consulta Cómo hacerlo para obtener instrucciones.
  • Copia el código anterior y ábrelo en el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código al ESP8266.
  • Presiona el botón varias veces.
  • Revisa los cambios en 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!