Paso 17: código!
Por Pavel Mihaylov
Edición 04
#include < Servo.h >
Servo myservo; crear objeto servo para controlar un servo
Servo myservo_horizontal; se puede crear un máximo de ocho objetos de servo
int pos = 0; variable para almacenar la posición del servo
int pos_horizontal = 10;
int pos_horizontal_incr;
int pos_horizontal_increment_degrees = 10;
int delay_move = 10;
int delay_move_quicker = 5;
int delay_move_slower = 25;
int delay_photo = 1200;
int inicial = 1;
void setup()
{
myservo.Attach(9); se fija el servo en el pin 9 al objeto servo
myservo_horizontal.Attach(10);
}
void loop()
{
if(pos_horizontal > 140) / / va de 180 grados a 0 grados
{
mientras (pos_horizontal > 10)
{
pos_horizontal-= 1;
myservo_horizontal.Write(pos_horizontal); Dile el servo a la posición en la variable 'pos'
Delay(delay_move_slower); espera 15ms para el servo a la posición
}
}
pos_horizontal_incr = pos_horizontal_increment_degrees;
mientras que (pos_horizontal_incr > 0 || pos < 80) / / va de 180 grados a 0 grados
{
pos_horizontal_incr-= 1;
Si (pos_horizontal_incr > 0) {}
pos_horizontal += 1;
}
pos += 3;
myservo.Write(POS);
myservo_horizontal.Write(pos_horizontal); Dile el servo a la posición en la variable 'pos'
Delay(delay_move); espera 15ms para el servo a la posición
Delay(delay_move); espera 15ms para el servo a la posición
}
Delay(delay_photo);
La plataforma oscila hacia atrás y hacia delante para saludar al hombre de la cámara
if(Initial == 1)
{
mientras (inicial < 15)
{
POS-= 1;
myservo.Write(POS);
inicial += 1;
Delay(delay_move_slower);
}
mientras que (inicial > -15)
{
POS += 1;
myservo.Write(POS);
inicial-= 1;
Delay(delay_move_slower);
}
mientras (inicial < 22)
{
POS-= 1;
myservo.Write(POS);
inicial += 1;
Delay(delay_move_slower);
}
mientras (inicial > 1)
{
POS += 1;
myservo.Write(POS);
inicial-= 1;
Delay(delay_move_slower);
}
inicial = 2;
Delay(delay_photo);
Delay(delay_photo);
}
Ahora comienza el rodaje
para (pos = 80; pos < 125; pos += 1) / / va de 180 grados a 0 grados
{
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(delay_move); espera 15ms para el servo a la posición
}
Delay(delay_photo);
para (pos = 125; pos < 170; pos += 1) / / va de 180 grados a 0 grados
{
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(delay_move); espera 15ms para el servo a la posición
}
Delay(delay_photo);
para (pos = 170; pos > 45; pos = 1) / / va desde 0 grados a 180 grados
{/ / en pasos de 1 grado
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(delay_move); espera 15ms para el servo a la posición
}
Delay(delay_photo);
para (pos = 45; pos > 10; pos = 1) / / va de 180 grados a 0 grados
{
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(delay_move); espera 15ms para el servo a la posición
}
Delay(delay_photo);
}