Controla la posición de un RC (hobby) servomotor con su Arduino y un potenciómetro.
En este ejemplo se hace uso de la biblioteca de servo de Arduino.
Hardware necesario
Placa Arduino o Genuino
Servo motor
Potenciómetro de 10k ohm
Cable de conexión
Circuito
Los servomotores tienen tres cables: positivo, tierra, y señal. El cable de alimentación es típicamente de color rojo, y debe ser conectado al pin 5 V de la placa Arduino o Genuino. El cable de tierra es por lo general de color negro o marrón y debe estar conectado a un conector de tierra en la placa. El pinde señal es normalmente de color amarillo o naranja y debe ser conectado al pin 9 de la placa.
El potenciómetro se debe cablear de manera que sus dos terminales exteriores estén conectados al positivo (+ 5V) y a masa, y su terminal medio está conectado a la entrada analógica 0 en la placa.
Esquema
Código
// Control de un servo de posición mediante un potenciómetro
// (resistencia variable).
// por Michal Rinott
// <http://people.interaction-ivrea.it/m.rinott>
// modificado el 8 de Noviembre de 2013 por Scott Fitzgerald
// http://www.arduino.cc/en/Tutorial/Knob
#include <Servo.h>
Servo myservo; // crear el objeto servo para controlar un servo
int potpin = 0; // Pin analógico utilizado para conectar el potenciómetro
int val; // variable to// Variable para leer el valor del pin analógico
void setup() {
myservo.attach(9); // Conecta el servo al objeto servo con el pin 9
}
void loop() {
val = analogRead(potpin); // lee el valor del potenciometro (valor entre 0 y 1023)
val = map(val, 0, 1023, 0, 180); // escala este valor para usarlo con el servo (valor entre 0 y 180)
myservo.write(val); // ajusta la posicion del servo segun el valor escalado
delay(15);
// (resistencia variable).
// por Michal Rinott
// <http://people.interaction-ivrea.it/m.rinott>
// modificado el 8 de Noviembre de 2013 por Scott Fitzgerald
// http://www.arduino.cc/en/Tutorial/Knob
#include <Servo.h>
Servo myservo; // crear el objeto servo para controlar un servo
int potpin = 0; // Pin analógico utilizado para conectar el potenciómetro
int val; // variable to// Variable para leer el valor del pin analógico
void setup() {
myservo.attach(9); // Conecta el servo al objeto servo con el pin 9
}
void loop() {
val = analogRead(potpin); // lee el valor del potenciometro (valor entre 0 y 1023)
val = map(val, 0, 1023, 0, 180); // escala este valor para usarlo con el servo (valor entre 0 y 180)
myservo.write(val); // ajusta la posicion del servo segun el valor escalado
delay(15);
No hay comentarios:
Publicar un comentario