ESP8266 - servomotor con potenciómetro

Este tutorial te enseña cómo usar el ESP8266 para controlar el ángulo de un servomotor basado en el valor de entrada de un potenciómetro. En detalle, aprenderemos:

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×Servomotor
1×Potentiometer
1×Alternatively, 10k Ohm Trimmer Potentiometer
1×(Alternativo) Potentiometer Kit
1×(Alternativo) Potentiometer Module with Knob
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 potenciómetro

Si no estás familiarizado con motores servo y potenciómetros, incluyendo la disposición de pines, su funcionamiento y la programación, los siguientes tutoriales serán útiles:

Diagrama de Cableado

Diagrama de cableado del ESP8266 NodeMCU, servomotor y potenciómetro

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.

Para simplificar, el diagrama de cableado anterior se utiliza con fines de prueba o aprendizaje y para un motor servo de par bajo. En realidad, recomendamos encarecidamente usar una fuente de alimentación externa para el motor servo. El diagrama de cableado a continuación ilustra cómo conectar el motor servo a una fuente de alimentación externa.

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

Cómo programar

  • Lee el valor del potenciómetro (que va de 0 a 1023)
int analog_value = analogRead(A0);
  • Convierte eso en un ángulo en el rango de 0 a 180.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Controla el servomotor al ángulo especificado.
servo.write(angle);

Código ESP8266

/* * 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-potentiometer-servo-motor */ #include <Servo.h> Servo servo; // create servo object to control a servo void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); servo.attach(D5); // attaches the servo on pin D5 to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 1023) int analog_value = analogRead(A0); // scales it to use it with the servo (value between 0 and 180) int angle = map(analog_value, 0, 1023, 0, 180); // sets the servo position according to the scaled value servo.write(angle); // print out the value Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

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 muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Conecta tu ESP8266 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino, elige la placa y el puerto apropiados.
  • Copia el código anterior y ábrelo en el IDE de Arduino.
  • Haz clic en el Subir botón en el IDE de Arduino para transferir el código al ESP8266.
Subir código al IDE de Arduino
  • Abrir el Monitor Serial
  • Gira el potenciómetro
  • Comprueba la rotación del servomotor
  • Ver el resultado en el Monitor Serial
COM6
Send
Analog: 0, Angle: 0 Analog: 85, Angle: 14 Analog: 201, Angle: 35 Analog: 286, Angle: 50 Analog: 370, Angle: 65 Analog: 444, Angle: 78 Analog: 521, Angle: 91 Analog: 608, Angle: 106 Analog: 690, Angle: 121 Analog: 793, Angle: 139 Analog: 907, Angle: 159 Analog: 1023, Angle: 180 Analog: 1023, Angle: 180
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explicación del código

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

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!