Bonjour,
Je suis actuellement sur un projet pour ma classe de STI2D. Je souhaiterai concevoir une serrure commandée à l'aide d'un servomoteur et d'une télécommande IR.
Je viens de créer un programme qui fonctionne mais j'aimerai rajouter une fonction supplémentaire. C'est à dire, qu'il faut réaliser une suite de chiffre, genre un code secret, pour que le servomoteur revienne en position 180.
La condition est que si j'appuie sur la touche 7 puis la touche 9 alors le servo va à 180.
------------------------------------------------------------------------------------------
//Code secret touche 7 et 9
if ((results.value==TOUCHE_7) && (results.value==TOUCHE_9)){
Pos = 180;
Tilt.write(Pos);
Serial.println("Bouton 7 et 9");
}
------------------------------------------------------------------------------------------
Voici le programme de l'ensemble :
Code:#include <IRremote.h> #include <Servo.h> //inclu Servo.h //Déclaration du servos Tilt Servo Tilt; int RECV_PIN = 11; //Pin 11 reception données IR IRrecv irrecv(RECV_PIN); decode_results results; int Led = 13; //LED int valT; //Valeurs envoyée aux servomoteurs int Pos; // Positions droite, gauche, reset #define TOUCHE_CH1 16753245 #define TOUCHE_CH2 16769565 #define TOUCHE_1 16724175 #define TOUCHE_2 16718055 #define TOUCHE_3 16743045 #define TOUCHE_4 16716015 #define TOUCHE_5 16726215 #define TOUCHE_6 16734885 #define TOUCHE_7 16728765 #define TOUCHE_8 16730805 #define TOUCHE_9 16732845 void setup() { //assigne pin 10 pour le signal de sortie destiné à commander le servo Tilt.attach(10); Serial.begin(9600); irrecv.enableIRIn(); // Démarrage du récepteur pinMode(Led, OUTPUT); Pos = 90; } void loop() { if (irrecv.decode(&results)) { // Si un signal est reçu... //Code secret touche 7 et 9 if ((results.value==TOUCHE_7) && (results.value==TOUCHE_9)){ Pos = 180; Tilt.write(Pos); Serial.println("Bouton 7 et 9"); } switch (results.value){ //Haut Bouton 1 case 3 : Pos = 180; Tilt.write(Pos); Serial.println("Bouton 1"); break; // Bas Bouton 2 case 16718055: Pos = 5; Tilt.write(Pos); Serial.println("Bouton 2"); break; //Retour position prédéfinie (90 90). Touche "0" case 16738455: Pos = 90; Tilt.write(Pos); Serial.println("Bouton 0 = Reset"); break; //A allumé CH+ case 16769565: digitalWrite(Led, HIGH); Pos = 90; Tilt.write(Pos); Serial.println ("Allume"); Serial.println (" Servo moteur serrure"); Serial.println ("Reception des valeurs Y"); Serial.println (" "); break; //E eteint CH- case 16753245: digitalWrite(Led, LOW); Serial.println ("Eteint"); Pos = 90; Tilt.write(Pos); break; } //}/ Serial.print (" Y: "); Serial.println (Pos); //Donne au servo Pan la valeur en degrés à atteindre Tilt.write(Pos); irrecv.resume(); // En attente de la prochaine valeur }}
Merci pour votre future aide.
Bien cordialement,
Atchoum
-----