convertir des signaux en pwm pour un 2DOF ou 3DOF
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:
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);
} |