J'accepte toutes les critiques (surtout les constructives )
- Code: Tout sélectionner
//Déclenchement apn avec Gentled + rotation PAN
#include <Servo.h>
//Affectation des broches de l'Arduino
#define APN_PIN 9 //le fil jaune du Gentled
#define PAN_PIN 8 //le fil jaune du servo de PAN
#define TILT_PIN 7 //le fil jaune du servo de TILT
//Paramètres du PAN
#define PAN_IDLE 1522 //valeur d'arret pour le servo PAN FUTABA S3003
#define PAN_SPEED 50 //vitesse de rotation du servo
//Paramètres du servo de TILT
#define TILT_HORIZON 128 // l'apn regarde l'horizon
#define TILT_BAS 47 // l'apn regarde en bas
#define TILT_INCLIN_1 15 //1ère inclinaison en degrés
#define TILT_INCLIN_2 35 //2ère inclinaison en degrés
#define TILT_INCLIN_3 65 //3ère inclinaison en degrés
#define TILT_INCLIN_4 90 //4ère inclinaison en degrés
//nommage des servos
Servo apn; // create servo object to control a servo
Servo pan_servo; // create servo object to control a servo
Servo tilt_servo;
//************ --- FONCTIONS --- ******************
//declenchement
void photo(){
apn.write(180);// simule la manette poussée à fond
delay(200); //déclenchement actionné pendant 200ms
apn.write(90); // simule la manette remise au repos
}
//Fonction du servo de PAN---------------------
void pan_left(){
pan_servo.write(PAN_IDLE - PAN_SPEED);
}
void pan_gauche(int delai){
//le pan tourne vers la gauche 2 secondes
pan_left();
delay(delai);
//le pan s'arrete
pan_stop();
}
void pan_right(){
pan_servo.write(PAN_IDLE + PAN_SPEED);
}
void pan_stop(){
// Le servo s'arrete
pan_servo.write(PAN_IDLE);
}
//Fonction du servo de TILT ---------------------
void tilt_angle(int angle = 0){
angle = map(angle, 0, 90, TILT_HORIZON, TILT_BAS);
tilt_servo.write(angle);
}
//************ --- INITIALISATION --- ******************
void setup()
{
// affectation des broches de l'ARDUINO
apn.attach(APN_PIN);
tilt_servo.attach(TILT_PIN);
pan_servo.attach(PAN_PIN, 1350, 1650);
apn.write(90); // mise au neutre du "servo de declenchement"
pan_servo.write(PAN_IDLE);
}
//************ --- BOUCLE PRINCIPALE --- ******************
void loop()
{
tilt_angle(TILT_INCLIN_1);
delay(1000);
for (int i=1; i<=5; i++) {
photo();
delay(3000);
pan_gauche(2000);
delay(1000);
}
photo();
delay(3000);
tilt_angle(TILT_INCLIN_2);
delay(1000);
for (int i=1; i<=5; i++) {
photo();
delay(3000);
pan_gauche(2000);
delay(1000);
}
photo();
delay(3000);
tilt_angle(TILT_INCLIN_3);
delay(1000);
for (int i=1; i<=5; i++) {
photo();
delay(3000);
pan_gauche(2000);
delay(1000);
}
photo();
delay(3000);
tilt_angle(TILT_INCLIN_4);
delay(1000);
for (int i=1; i<=3; i++) {
photo();
delay(3000);
pan_gauche(5000);
delay(1000);
}
}