Arduino Nano ESP32 - Potenciómetro y servomotor

Este tutorial te enseña a usar Arduino Nano ESP32 para controlar el ángulo de un servomotor según el valor de entrada de un potenciómetro. En detalle, aprenderemos:

Hardware Requerido

1×Arduino Nano ESP32
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×(Opcional) 5V Power Adapter for Arduino Nano ESP32
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

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.

Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.

Acerca del servomotor y del potenciómetro

Si no está familiarizado con servomotores y potenciómetros, incluyendo el pinout, su funcionamiento y la programación, los siguientes tutoriales le serán útiles:

Diagrama de Cableado

Diagrama de cableado de servomotor y potenciómetro para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Cómo programar

  • Lee el valor del potenciómetro (de 0 a 1023)
int analog_value = analogRead(A3);
  • Conviértelo en un ángulo dentro del rango de 0 a 180 grados.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Controla el servo al ángulo especificado.
servo.write(angle);

Código de Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-potentiometer-servo-motor */ #include <ESP32Servo.h> #define PIN_POTENTIOMETER A3 // The Arduino Nano ESP32 pin connected to potentiometer #define PIN_SERVO D2 // The Arduino Nano ESP32 pin connected to servo motor Servo servo; // create servo object to control a servo void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); servo.attach(PIN_SERVO); // attaches the Arduino Nano ESP32 pin to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 4095) int analogValue = analogRead(PIN_POTENTIOMETER); // scales it to use it with the servo (value between 0 and 180) int angle = map(analogValue, 0, 4095, 0, 180); // sets the servo position according to the scaled value servo.write(angle); // print out the value Serial.print("Analog value: "); Serial.print(analogValue); Serial.print(" => Angle: "); Serial.println(angle); delay(100); }

Pasos R\u00e1pidos

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa Arduino Nano ESP32 a tu computadora mediante un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Elige la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • 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 transferir el código a la placa Arduino Nano ESP32.
Subir código al IDE de Arduino
  • Abrir el Monitor Serial
  • Gira el potenciómetro
  • Observa la rotación del servomotor
  • Ver el resultado en el Monitor Serial
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Explicación del código

¡Consulta la explicación línea por línea que se encuentra 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!