/**************************************** * Dust Cover Control with Servos * * for RapidChange ATC * **************************************** * Version automatique * * (avec relai) * **************************************** * Programmation : JJ Hontebeyrie * * Youtube Channel JJHONTEBEYRIE * ***************************************/ #include // Pins utilisés sur Arduino #define RED 5 #define GREEN 6 #define BTN 7 #define SERVO1 8 // ARR #define SERVO2 9 // AV //Variables int pos = 0; int lumen = 30; // A régler à votre convenance de 0 à 255 (Intensité led) boolean ferme = false; // Dust Cover ouvert au départ // Definition Servos Servo SERVO_AV; Servo SERVO_ARR; void setup() { //Affectation Entrées / Sorties pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BTN, INPUT_PULLUP); //On dit que les servomoteurs enverrons les instructions sur des pins SERVO_AV.attach(SERVO1); SERVO_ARR.attach(SERVO2); // Dust Cover ouvert au démarrage SERVO_AV.write(180); SERVO_ARR.write(0); // Et lumière verte analogWrite(RED, LOW); analogWrite(GREEN, lumen); } void loop() { // Utilise un bouton à 2 états géré par le relai boolean buttonIsUp = digitalRead(BTN); if (!buttonIsUp) { ProtectOn(); analogWrite(RED, lumen); analogWrite(GREEN, 0); ferme = true; } else { ProtectOff(); analogWrite(GREEN, lumen); analogWrite(RED, 0); ferme = false; } } void ProtectOn() // Ferme le Dust Cover { if (!ferme){ for (pos = 180; pos >= 0; pos -=1) { SERVO_AV.write(pos); SERVO_ARR.write(180-pos); } } } void ProtectOff() // Ouvre le Dust Cover { if (ferme){ for(pos = 0; pos <= 180; pos += 1) { SERVO_AV.write(pos); SERVO_ARR.write(180-pos); } } }