Arduino - Potenciómetro que activa el servomotor

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

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Potentiometer
1×Alternatively, 10k Ohm Trimmer Potentiometer
1×(Alternativo) Potentiometer Kit
1×(Alternativo) Potentiometer Module with Knob
1×Servomotor
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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 sabes sobre el servomotor y el potenciómetro (disposición de pines, cómo funcionan, cómo programarlos...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

Diagrama de cableado de Arduino para potenciómetro y servomotor

This image is created using Fritzing. Click to enlarge image

Código de Arduino - Umbral Analógico

/* * 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-potentiometer-triggers-servo-motor */ #include <Servo.h> // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int SERVO_PIN = 9; // Arduino pin connected to Servo Motor's pin const int ANALOG_THRESHOLD = 500; Servo servo; // create servo object to control a servo void setup() { servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(0); } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if(analogValue > ANALOG_THRESHOLD) servo.write(90); // rotate servo motor to 90 degree else servo.write(0); // rotate servo motor to 0 degree }

Pasos R\u00e1pidos

  • Conecta Arduino al PC mediante un cable USB
  • Abre el IDE de Arduino, selecciona la placa y el puerto correctos
  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir del IDE de Arduino para subir el código al Arduino
  • Gira el potenciómetro
  • Observa el cambio del servomotor

Código de Arduino - Umbral de voltaje

El valor analógico del potenciómetro se convierte en un valor de voltaje y luego se compara con el umbral de voltaje para activar el servomotor.

/* * 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-potentiometer-triggers-servo-motor */ #include <Servo.h> // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int SERVO_PIN = 9; // Arduino pin connected to Servo Motor's pin const float VOLTAGE_THRESHOLD = 2.5; // Voltages Servo servo; // create servo object to control a servo void setup() { servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(0); } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if(voltage > VOLTAGE_THRESHOLD) servo.write(90); // rotate servo motor to 90 degree else servo.write(0); // rotate servo motor to 0 degree } float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

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!