Étape 17 : Code !
Par Pavel Mihaylov
Édition 04
#include < Servo.h >
Servo myservo ; Créez l’objet servo pour contrôler un servo
Servo myservo_horizontal ; vous pouvez créer un maximum de huit objets de servo
int pos = 0 ; variable pour stocker la position du 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 initial = 1 ;
void setup()
{
myservo.Attach(9) ; attache le servo sur la broche 9 à l’objet de servo
myservo_horizontal.Attach(10) ;
}
void loop()
{
if(pos_horizontal > 140) / / va de 180 degrés à 0 degrés
{
tandis que (pos_horizontal > 10)
{
pos_horizontal-= 1 ;
myservo_horizontal.Write(pos_horizontal) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move_slower) ; attend 15 ms pour le servo atteindre la position
}
}
pos_horizontal_incr = pos_horizontal_increment_degrees ;
tandis que (pos_horizontal_incr > 0 || pos < 80) / / va de 180 degrés à 0 degrés
{
pos_horizontal_incr-= 1 ;
Si (pos_horizontal_incr > 0) {}
pos_horizontal += 1 ;
}
Pos = 3 ;
myservo.Write(POS) ;
myservo_horizontal.Write(pos_horizontal) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
}
Delay(delay_photo) ;
Balançoires de forage précédent et suivant pour dire Bonjour à l’homme de la caméra
if(initial == 1)
{
tandis que (initial < 15)
{
POS-= 1 ;
myservo.Write(POS) ;
initiales += 1 ;
Delay(delay_move_slower) ;
}
tandis que (initial > -15)
{
POS += 1 ;
myservo.Write(POS) ;
initial-= 1 ;
Delay(delay_move_slower) ;
}
tandis que (initial < 22)
{
POS-= 1 ;
myservo.Write(POS) ;
initiales += 1 ;
Delay(delay_move_slower) ;
}
while (initial > 1)
{
POS += 1 ;
myservo.Write(POS) ;
initial-= 1 ;
Delay(delay_move_slower) ;
}
initial = 2 ;
Delay(delay_photo) ;
Delay(delay_photo) ;
}
Shoot commence maintenant
pour (pos = 80; pos < 125; pos += 1) / / va de 180 degrés à 0 degrés
{
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
}
Delay(delay_photo) ;
pour (pos = 125; pos < 170; pos += 1) / / va de 180 degrés à 0 degrés
{
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
}
Delay(delay_photo) ;
pour (pos = 170; pos > 45; pos = 1) / / va de 0 degrés à 180 degrés
{/ / par incréments de 1 degré
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
}
Delay(delay_photo) ;
pour (pos = 45; pos > 10; pos = 1) / / va de 180 degrés à 0 degrés
{
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(delay_move) ; attend 15 ms pour le servo atteindre la position
}
Delay(delay_photo) ;
}