/**************************************** * Dust Cover Control with Servos * * for RapidChange ATC * **************************************** * 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 boolean buttonWasUp = true; boolean ledEnabled = false; int pos = 0; int lumen = 30; // A régler à votre convenance de 0 à 255 // 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 momentané comme un bouton boolean buttonIsUp = digitalRead(BTN); if (buttonWasUp && !buttonIsUp) { delay(10); buttonIsUp = digitalRead(BTN); if (!buttonIsUp) { ledEnabled = !ledEnabled; if (ledEnabled) { ProtectOn(); analogWrite(RED, lumen); analogWrite(GREEN, 0); } else { ProtectOff(); analogWrite(GREEN, lumen); analogWrite(RED, 0); } } } buttonWasUp = buttonIsUp; } void ProtectOn() // Ouvre le Dust Cover { for (pos = 180; pos >= 0; pos -=1) { SERVO_AV.write(pos); SERVO_ARR.write(180-pos); } } void ProtectOff() // Ferme le Dust Cover { for(pos = 0; pos <= 180; pos += 1) { SERVO_AV.write(pos); SERVO_ARR.write(180-pos); } }