Voilà mon pb : je veux gérer les vitesses de 2 moteurs via une carte Devantech MD25.
En liaison I2C je vais utiliser les registres 0 et 1 pour les vitesses de mes 2 moteurs, ainsi que le registre "Mode" (registre 15) qui permet cette gestion.
J'aimerai savoir si la programmation que je fais est correcte : au sujet de l'adressage des registres 0 et 1.
Dois-je adresser le premier registre (adresse 0) pour écrire dans le 1er puis écrire dans la foulée pour le second registre. (comme dans mon programme ci-dessous que je n'ai pas testé car le n'ai pas validé les signaux SDA et SCL sur le hard) Ou alors dois-je mettre les adresses de chaque registre avant d'écrire dedans ?
Voici mon petit pgr de test :
#include <Wire.h> // pour le protocole I2C
#define MD25 0xB0 // adresse du controleur
#define Mode 0x0F // registre "Mode"
int reg_zero =0;
boolean une_fois = true;
void setup()
{
Wire.begin(); // C'est le maître !
}
void loop()
{
if(une_fois) // inutile de revalider le Mode à 1 à chaque boucle
{
Wire.beginTransmission(MD25);
Wire.write(Mode);
Wire.write(1); // Mode à 1 pour vitesse moteur 1 registre 0 et vitesse moteur 2 registre 1
Wire.endTransmission();
une_fois=false;
}
Wire.beginTransmission(MD25);
Wire.write(reg_zero); // adresse 0 pour moteur 1
Wire.write(-50); // Moteur 1 // vitesse moteur 1
Wire.write(50); // Moteur 2 // vitesse moteur 2 ( sens inverse du 1 )
Wire.endTransmission();
delay(500);
}
Qu'en dites-vous ?
Merci d'avance pour vos infos
Jac

Liaison I2C
Débuté par JIG, juil. 29 2012 10:27
3 réponses à ce sujet
#2
Posté 30 juillet 2012 - 08:19
Voilà, j'ai la solution à ma question.
j'ai trouvé un très bon exemple du à "James Enderson" à l'adresse suivante :
http://www.robot-electronics.co.uk/htm/arduino-examples.htm
Mon petit bout de pg n'était pas tout à fait ok, mais ce que je n'ai pas compris: c'est que la doc concernant le MD25 stipule une adresse I2C (0xB0) alors que le pg trouvé stipule l'adresse (0x58)
On trouve tout sur le web, mais encore faut-il ne pas s'égarer....
Salutations à tous
JG
j'ai trouvé un très bon exemple du à "James Enderson" à l'adresse suivante :
http://www.robot-electronics.co.uk/htm/arduino-examples.htm
Mon petit bout de pg n'était pas tout à fait ok, mais ce que je n'ai pas compris: c'est que la doc concernant le MD25 stipule une adresse I2C (0xB0) alors que le pg trouvé stipule l'adresse (0x58)
On trouve tout sur le web, mais encore faut-il ne pas s'égarer....
Salutations à tous
JG
#3
Posté 31 juillet 2012 - 07:49
Merci du retour
Je vais certainement me commander un driver de moteur en I2C
Je vais certainement me commander un driver de moteur en I2C
#4
Posté 01 août 2012 - 11:16
JIG 404 not found sur ton lien.
Projet de robot de télésurveillance : http://arthurlambert.fr/
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users