Arduino - servomotor controlado por potenciómetro

En un tutorial anterior, hemos aprendido cómo un potenciómetro acciona un servomotor. En este tutorial, vamos a aprender a girar un servomotor de acuerdo con el valor de salida del potenciómetro.

Acerca del servomotor y del potenciómetro

Si no sabes sobre el servomotor y el potenciómetro (disposición de pines, cómo funciona, cómo programarlo...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

Diagrama de cableado del potenciómetro para el servo de Arduino

This image is created using Fritzing. Click to enlarge image

Cómo Programar

  • Lee el valor del potenciómetro (valor entre 0 y 1023)
int analogValue = analogRead(A0);
  • Lo escala a un ángulo (valor entre 0 y 180)
int angle = map(analogValue, 0, 1023, 0, 180);
  • Establece la posición del servomotor según el ángulo
myServo.write(angle);

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-servo-motor-controlled-by-potentiometer */ #include <Servo.h> Servo myServo; // create servo object to control a servo void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); myServo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 1023) int analogValue = analogRead(A0); // scales it to use it with the servo (value between 0 and 180) int angle = map(analogValue, 0, 1023, 0, 180); // sets the servo position according to the scaled value myServo.write(angle); // print out the value Serial.print("Analog: "); Serial.print(analogValue); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

Pasos R\u00e1pidos

  • Conectar Arduino al PC mediante un cable USB
  • Abrir Arduino IDE, seleccionar la placa y el puerto correctos
  • Copiar el código anterior y abrirlo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código a Arduino
Subir código al IDE de Arduino
  • Abrir el Monitor Serial
  • Gira el potenciómetro
  • Ver 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

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