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:

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
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!