Inverser sens rotation servomoteur

Bonjour,
Je sollicite votre aide car je suis sur un projet de porte domotique et un problème s'oppose à moi.
Je voudrais que dans un premier temps lorsque j'appuie sur le bouton ouverture dans mon application la servomoteur "S" (serrure) s'ouvre puis après 2sec le servomoteur "P" (porte) s'ouvre à son tour. Puis lorsque j'appuie sur fermeture se soit d'abord le servomoteur "P" qui tourne et ensuite le servomoteur "S" qui tourne. Or ce n'est pas le cas mais l'inverse qui se produit !! Pourriez vous m'aidez svp ?
ci joint le code :
"#include <SoftwareSerial.h> // TX RX software library for bluetooth

#include <Servo.h> // servo library
Servo myservo; // servo name
Servo myservob; // servo name

int bluetoothTx = 10; // bluetooth tx to 10 pin
int bluetoothRx = 11; // bluetooth rx to 11 pin

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
myservo.attach(9); // attach servo signal wire to pin 9
myservob.attach(3); // attach servo signal wire to pin 9

//Setup usb serial connection to computer
Serial.begin(9600);

//Setup Bluetooth serial connection to android
bluetooth.begin(9600);
}

void loop()
{
//Read from bluetooth and write to usb serial
if(bluetooth.available()> 0 ) // receive number from bluetooth
{
int servopos = bluetooth.read(); // save the received number to servopos
Serial.println(servopos); // serial print servopos current number received from bluetooth
myservo.write(servopos); // roate the servo the angle received from the android app
delay(1000);
myservob.write(servopos); // roate the servo the angle received from the android app

}

}
"
Merci d'avance

bonjour,
code entre balise code </>

en admettant que tu mettes 9 en ouverture et 0 en fermeture le truc est simple

int position_precedente = 5;


blabla
if(bluetooth.available()> 0 ) // receive number from bluetooth
 {
   int servopos = bluetooth.read(); // save the received number to servopos
   Serial.println(servopos); // serial print servopos current number received from bluetooth
      if (servopos > position_precedente){
          myservo.write(servopos); // roate the servo the angle received from the android app
            delay(1000);
             myservob.write(servopos); // roate the servo the angle received from the android app
        }
      if (servopos < position_precedente){
             myservob.write(servopos); // roate the servo the angle received from the android app
            delay(1000);
             myservo.write(servopos); // roate the servo the angle received from the android app
            delay(1000);

        }

infobarquee:
bonjour,
code entre balise code </>

en admettant que tu mettes 9 en ouverture et 0 en fermeture le truc est simple

int position_precedente = 5;

blabla
if(bluetooth.available()> 0 ) // receive number from bluetooth
{
  int servopos = bluetooth.read(); // save the received number to servopos
  Serial.println(servopos); // serial print servopos current number received from bluetooth
     if (servopos > position_precedente){
         myservo.write(servopos); // roate the servo the angle received from the android app
           delay(1000);
            myservob.write(servopos); // roate the servo the angle received from the android app
       }
     if (servopos < position_precedente){
            myservob.write(servopos); // roate the servo the angle received from the android app
           delay(1000);
            myservo.write(servopos); // roate the servo the angle received from the android app
           delay(1000);

}

Bonjour
Merci d'avoir prit le temps de me répondre. Je vois se que vous voulez dire mais je ne comprends pas à quoi correspond le "5" de position_précédente. Et le 9 et 0 dont vous parlez c'est l'angle que le servo doit faire ?

Bonjour
Merci d'avoir prit le temps de me répondre. Je vois se que vous voulez dire mais je ne comprends pas à quoi correspond le "5" de position_précédente. Et le 9 et 0 dont vous parlez c'est l'angle que le servo doit faire ?

AMHA, tu ne sais pas comment fonction un servomoteur, ca se fait par un angle
dans l'exemple angle à 9 pour ouvrir et 0 pour fermer
d'après toi, à quoi peut correspondre "position_precedente ", j'aurai pu mettre "position_milieu ou centrale" :slight_smile:

sinon, autre solution, mettre un angle X déterminé ouvert et Y fermé
tu envoie 1, ca ouvre à angle X
tu envoie 0, ca ferme à angle Y

int ouvert = 90;
int ferme = 0;


blabla
if(bluetooth.available()> 0 ) // receive number from bluetooth
 {
   int option_gache = bluetooth.read(); // save the received number to servopos
   Serial.println(option_gache); // serial print servopos current number received from bluetooth
      if (option_gache == 1){
          myservo.write(ouvert); // roate the servo the angle received from the android app
            delay(1000);
             myservob.write(ouvert); // roate the servo the angle received from the android app
        }
      if (option_gache == 0){
             myservob.write(ferme); // roate the servo the angle received from the android app
            delay(1000);
             myservo.write(ferme); // roate the servo the angle received from the android app
            delay(1000);

        }