Saltar la navegación

Servo con potenciómetro

Servo con potenciómetro

Manejo de un servo con un potenciómetro

/*
Capitulo 6 de Arduino desde cero en Español
Segundo programa que lee el valor del potenciometro conectado a entrada A0
y lo convierte a valor de angulo para mover al servo hacia el mismo.
Incluye función "map" que cambia valores de un intérvalo proporcionalmente a otrp intérvalo. El intérvalo del potenciómetro va de 0 a 1023 y el intérvalo de giro del servo va de 0 a 180º.
Autor: bitwiseAr
modificado por www.sacosta.org 05/09/2019
se han ajustado pulsoMin y pulsoMax siguiendo las instrucciones del ejemplo_06_01b
*/

#include <Servo.h> // incluye libreria de Servo

Servo servo; // crea objeto

int pinServo = 9; // pin 9 conectado a señal del servo
int pulsoMin = 525; // pulso minimo en microsegundos
int pulsoMax = 1475; // pulso maximo en microsegundos
int valorPot; // variable para almacenar valor leido en entrada A0
int angulo; // valor de angulo a cargar en el servo

int pot = 0; // potenciometro en entrada analogica A0

void setup()
{
servo.attach(pinServo, pulsoMin, pulsoMax); // inicializacion de servo
// las entradas analogicas no requieren inicializacion
}

void loop()
{
valorPot = analogRead(pot); // lee valor de entrada A0
angulo = map(valorPot, 0, 1023, 0, 180); // con funcion map convierte rango de 0 a 1023
// a rango de angulo de 0 a 180
servo.write(angulo); // envia al servo el valor del angulo
delay(20); // demora para que el servo llegue a posicion
}