Arduino Nano - Servomotor con potenciómetro

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

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cable USB A a Mini-B
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 Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

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 los servomotores y los potenciómetros, incluyendo sus diagramas de pines, cómo funcionan y cómo programarlos, los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado del potenciómetro del servomotor para Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Cómo programar

  • Obtiene el valor del potenciómetro, que es un número entre 0 y 1023.
int analog_value = analogRead(A0);
  • Ajusta eso a un ángulo dentro del rango de 0 a 180.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Controla el servo al ángulo especificado.
servo.write(angle);

Código de Arduino Nano

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-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(2); // attaches the servo on pin D2 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

  • Conecta el cable USB al Arduino Nano y al PC.
  • Inicia el IDE de Arduino y selecciona la placa y el puerto adecuados.
  • Abre el código en el IDE de Arduino.
  • Para enviar el código al Arduino Nano, pulsa el botón Cargar en el IDE de Arduino.
Subir código con el IDE de Arduino
  • Abrir el Monitor Serial
  • Gira el potenciómetro
  • Comprueba la rotación del servomotor
  • Comprueba el resultado en el Monitor Serial
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 on COM15
2

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!