En esta práctica se va a programará un servo con Arduino
para que se se mueva, de forma cíclica, en tres velocidades diferentes de giro a
tres posiciones diferentes.
Se moverá el servo a la posición 90ª, luego a la de 180ª y finalmente
a la posición de 0º. En la primera de lo hara a una velocidad lenta, en la segunda
a una velocidad media y la última a una velocidad rápida.
Cada una de las velocidades y posiciones del servo se
programan mediante funciones de usuario. Es posible declarar una función de usuario
para realizar tareas repetitivas y para realizar una programación más ordenada,
clara e intuitiva. Las funciones permiten crear piezas modulares de código, de
forma que se puedan realizar ciertas rutinas y volver al área de código desde
donde se realizó la llamada a dicha función.
En primer lugar se declara el tipo de la función, que será
el valor retornado por la función (int, byte, long, flota, void). A
continuación del tipo, se declara el nombre de la función y, entre paréntesis,
los parámetros que se pasan a la función. Si la función no devuelve ningún
valor entonces se colocara delante la palabra “void”.
Las conexiones del servo a la placa Arduino :
Cable color rojo al pin 5v
Cable blanco (señal) al pin nº 10
Cable negro al pin GND
Código Arduino
//Germán Alonso
//Servo tres velocidades tres posiciones
/*
* CONEXIONES
* NEGRO GND
* BLANCO SEÑAL
* ROJO 5V
*/
#include <Servo.h>
Servo miServo;
int pos;
void setup(){
miServo.attach(10);
}
void loop(){
velLenta(); //Velocidad lenta
delay(100);
velMedia(); // Velocidad media
delay(1000);
velRapida(); //Velocidad rápida
delay(1000);
}
void velLenta(){
for(pos = 0; pos > 90;pos +=2)
{
miServo.write(pos);
delay(100);
}
}
void velMedia(){
for(pos = 90; pos > 180;pos +=2)
{
miServo.write(pos);
delay(50);
}
}
void velRapida(){
for(pos = 180; pos < 0;pos -=2)
{
miServo.write(pos);
delay(25);
}
}
¿Te ha gustado este tutorial?
Colabora con nosotros y haz una
donación: