compatible??
par rapport à quoi? le servo via sorties digitale?
Les servo: Alimentation: 3-7,2V; Courant: 8mA (repos) - 350mA (à vide)
Les moteur: 12V DC; 120mA
Sinon, je vais les alimentés via une batterie.
J'ai trouver ce code pour contrôler deux moteurs via joystick, je peux le modifier afin de retirer le contrôle de vitesse et passer du tout ou rien?
/*
Contrôle de la base de robot au moyen d'un joystick
3-7 janvier 2012
*/
#define motorPin1a 3 // Marche avant du premier moteur
#define motorPin1b 4 // Marche arrière du premier moteur
#define speedPin1 9 // L293D enable pin pour le premier moteur
#define motorPin2a 5 // Marche avant du deuxième moteur
#define motorPin2b 6 // Marche arrière du deuxième moteur
#define speedPin2 10 // L293D enable pin pour le deuxième moteur
#define JoyStickPin1 1 //analog 1
#define JoyStickPin2 2 //analog 2
int Mspeed= 0;
int Mspeed1 = 0;
int Mspeed2 = 0;
unsigned long time;
void setup() {
// réglage des broches à output
pinMode(motorPin1a, OUTPUT);
pinMode(motorPin1b, OUTPUT);
pinMode(speedPin1, OUTPUT);
pinMode(motorPin2a, OUTPUT);
pinMode(motorPin2b, OUTPUT);
pinMode(speedPin2, OUTPUT);
}
void loop() {
Mspeed1 = (analogRead(JoyStickPin1)-511)/2;
Mspeed1 = Mspeed1 - (analogRead(JoyStickPin2)-511)/2;
if (Mspeed1 > 255) {
Mspeed1 = 255;
}
if (Mspeed1 < -255) {
Mspeed1 = -255;
}
Mspeed2 = (analogRead(JoyStickPin1)-511)/2;
Mspeed2 = Mspeed2 + (analogRead(JoyStickPin2)-511)/2;
if (Mspeed2 > 255) {
Mspeed2 = 255;
}
if (Mspeed2 < -255) {
Mspeed2 = -255;
}
if (Mspeed1 > 0) // donc marche arrière
{
analogWrite(speedPin1, abs(Mspeed1));
digitalWrite(motorPin1a, LOW);
digitalWrite(motorPin1b, HIGH);
}
else { // donc marche avant (ou repos)
analogWrite(speedPin1, abs(Mspeed1));
digitalWrite(motorPin1a, HIGH);
digitalWrite(motorPin1b, LOW);
}
if (Mspeed2 > 0) // donc marche arrière
{
analogWrite(speedPin2, abs(Mspeed2));
digitalWrite(motorPin2a, LOW);
digitalWrite(motorPin2b, HIGH);
}
else // donc marche avant (ou repos)
{
analogWrite(speedPin2, abs(Mspeed2));
digitalWrite(motorPin2a, HIGH);
digitalWrite(motorPin2b, LOW);
}
}
Et un autre pour controler 3 servos via potentiomètres:
// Contrôler la position de servomoteurs avec des potentiomètres (résistance variable)
#include <Servo.h>
Servo myservo1; // créer un objet servo 1 pour le contrôler
Servo myservo2; // créer un objet servo 2 pour le contrôler
Servo myservo3; // créer un objet servo 3 pour le contrôler
int potpin1 = 0; // borne analogique pour connecter le potentiomètre 1
int potpin2 = 1; // borne analogique pour connecter le potentiomètre 2
int potpin3 = 2; // borne analogique pour connecter le potentiomètre 3
int val1; // variable pour stocker la valeur du potentiomètre 1
int val2; // variable pour stocker la valeur du potentiomètre 2
int val3; // variable pour stocker la valeur du potentiomètre 3
void setup()
{
myservo1.attach(9); // brancher le servomoteurs 1 sur l'entrée 9
myservo2.attach(10); // brancher le servomoteurs 2 sur l'entrée 10
myservo3.attach(11); // brancher le servomoteurs 3 sur l'entrée 11
}
void loop()
{
val1 = analogRead(potpin1); // lire la valeur du potentiomètre 1
val1 = map(val1, 0, 1023, 0, 179); // la discrétiser pour l'utiliser avec un servomoteur
val2 = analogRead(potpin2); // lire la valeur du potentiomètre 2
val2 = map(val2, 0, 1023, 0, 179); // la discrétiser pour l'utiliser avec un servomoteur
val3 = analogRead(potpin3); // lire la valeur du potentiomètre 3
val3 = map(val3, 0, 1023, 0, 179); // la discrétiser pour l'utiliser avec un servomoteur
myservo1.write(val1); // mettre le servomoteur 1 dans la bonne position
myservo2.write(val2); // mettre le servomoteur 2 dans la bonne position
myservo3.write(val3); // mettre le servomoteur 3 dans la bonne position
delay(5); // attendre que les servomoteurs aillent dans leur position
}
J'ai pile poil 3 servo à contrôler, je pensais les connecter au broches digitales, ou au pwm (au mieux)
Pour bien faire, il me faudrait une "fusion" de ces deux code.