/ Código en C++ para Control de un servomotor mediante giro de un potenciómetro
// Desarrollado por: DLM
#include <Servo.h> //Incluimos la librería de Arduino con comandos particulares para servos
Servo motor; // Crea un objeto tipo servo con nombre "motor" tal y como necesita la librería
void setup() // Comienzo de la función setup que define los pines y solo se ejecuta una vez
{
motor.attach(3); // Asigna al pin 3 el objeto motor
pinMode(A0, INPUT); //Asignamos el pin a0 como entrada de datos análogicos al controlador Arduino
Serial.begin(9600); // Iniciamos la comunicación con el monitor en serie a 9600 baudios
Serial.println("Soy DLM y ¡Comenzamos!"); // Escribe en una línea del monitor: Soy DLM y ¡Comenzamos!
}
void loop() // Comienzo de la función loop con el algoritmo de programación que se repetirá siempre
{
int pot; // Creamos la variable tipo entero (integer) que almacenará el valor analógico desde el potenciómetro
pot = analogRead(A0); // Asigna a a el valor que se lee por la entrada 26 desde el potenciómetro
Serial.println("Potenciómetro:"); // Mostramos por pantalla el texto "Potenciómetro:"
Serial.println(pot); // Mostramos por pantalla el valor de la variable "pot"
int grad; // Creamos la variable tipo entero (integer) grad que almacenará el valor de los grados
grad = map(pot, 0, 1023, 0,180); // Mapea el valor de a Asignando a g valores en el rango [0-1023 es 0º-180º]
//y = (valor que recibo, de Mínimo, de Máximo, a Mínimo, a Máximo)
motor.write(grad); // Escribe en el motor los grados finales en que se ha transformado la entrada a
Serial.println("Grados:"); // Mostramos por pantalla el texto "Potenciómetro:"
Serial.println(grad); // Mostramos por pantalla el valor de la variable "pot"
delay(1000); // Esperamos 10 milisegundos antes de repetir el loop y la nueva medida que tenga a
}