bonjour à tous

je débute dans l'arduino j ai encore beaucoup à apprendre.
je voudrai convertir des signaux en pwm (x,y,z) par l'instruction pulseIn.
pour contrôler des servos en 2DOF ou 3DOF
je galère sur le mixage des voies
car la position de mes moteurs ne correspond pas à x,y ,z
je sais qu'il faut ajouter du pitch et du roll sur les deux servos ou trois si (z)

je vous serais très reconnaissant si vous pouviez m'aider

Cordialement albert
merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
 
 #include <Servo.h> 
 
 Servo myservo1;  
 Servo myservo2;
 //Servo myservo3; //pour le futur en 3DOF
 
int ch1; // Here's where we'll keep our channel values
int ch2;
//int ch3; //pour une future application en 3DOF //z//
 
int val;
 
void setup() {
  myservo1.attach(8);  
  myservo2.attach(9);
  // myservo3.attach(10);//pour une future application en 3DOF //z//
 
 
  pinMode(5, INPUT); // lecture pins(x)
  pinMode(6, INPUT); // lecture pins(y)
 
  //pinMode(7, INPUT);// lecture pins(z) //pour une future application en 3DOF //z//
 
  Serial.begin(9600); // vitesse Serial
 
}
 
void loop() {
 
  ch1 = pulseIn(5, HIGH, 25000); // PWM lecture du channel x
  ch2 = pulseIn(6, HIGH, 25000); // PWM  lecture du channel y
  //ch3 = pulseIn(7, HIGH, 25000);//pour une future application en 3DOF //z//
 
 
  Serial.print("Channel 1:"); // Print Channel
  Serial.println(ch1);        // Channel
 
  Serial.print("Channel 2:");// Print Channel
  Serial.println(ch2);       // Channel
 
 
  //Serial.print("Channel 3:"); //pour une future application en 3DOF //z//
  //Serial.println(ch3);
 
 
// mixage Channel en 2DOF - aux secours help
 
  //ch1
  val = map(val, 0, 1023, 0, 179);
  myservo1.write(val); 
 
  //ch2
  val = map(val, 0, 1023, 0, 179);
  myservo2.write(val); 
 
 // ch3//pour une future application en 3DOF //z//
 // val = map(val, 0, 1023, 0, 179);
 // myservo3.write(val); 
 
 
  delay(100); 
 
}