Arduino: Mover un Servo con un potenciómetro

Esta es mi solución al ejercicio 4 de oomlout: http://ardx.org/CIRC04. De todas formas, lo que he hecho se parece mucho más a lo que aparece en http://ardx.org/KNOB pero sin librería servo.h (que facilita mucho el tema). Aquí una muestra del resultado:


Este es el código:

/*
 * Exercicio CIRC04: Servo
 * Explicacion en http://ardx.org/CIRC04
 *
 * Un servo estandar toma valores que permitiran que xire de 0 a 180 graos
 * A posicion ven controlada polo largo dun pulso, entre 1'25ms (0 graos) e
 * 1.75ms (180 graos) [1.5ms para 90 graos]. Se este pulso se envia o servo cada
 * 20-50ms, o servo fara o cambio suavemente.
 *
 * En Arduino existe a libreria servo.h, que permite controlar dous servos cunha soa
 * liña se os conectamos o pin 9 ou 10. Neste codigo non facemos uso desa libreria
 */

int servoPin = 9; // Pin onde conecto o cable de datos do servo (branco)
int potePin = A0; // Conectamos un potenciometro no pin analoxico 0
int poteValor; // variable onde gardarei o valor do potenciometro e que logo 
                                                                 //"escalarei"

void setup()
{
  pinMode(servoPin, OUTPUT); // inicializo o pin do servo como de saida
  pinMode(potePin, INPUT); // inicializo o pin do servo como de entrada
}

void loop()
{
  poteValor = analogRead(potePin); // recollo o valor do potenciometro
  poteValor = map(poteValor, 0, 1023, 900, 2100); // escalo a variable poteValor 
  //que ten valores entre 0 e 1023 para que señan proporcionais pero entre 900 e 
  //2100 (que son os valores para colocar o servo entre 0 e 180 graos)
  
  digitalWrite(servoPin, HIGH);
  delayMicroseconds(poteValor);
  digitalWrite(servoPin, LOW);
  delay(15); 
}

Si alguien no entiende los comentarios del código en gallego que avise... aunque está bastante claro lo que hacen.

Comentarios

Entradas populares de este blog

Cómo configurar dos PLCs

Configurar correo IMAP de mundo-R en Android

Arduino y Processing 3: Mostrar los datos de dos sensores al mismo tiempo