Aller au contenu


Photo
- - - - -

Liaison I2C


  • Veuillez vous connecter pour répondre
3 réponses à ce sujet

#1 JIG

JIG

    Membre

  • Membres
  • 19 messages

Posté 29 juillet 2012 - 10:27

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

#2 JIG

JIG

    Membre

  • Membres
  • 19 messages

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

#3 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 31 juillet 2012 - 07:49

Merci du retour

Je vais certainement me commander un driver de moteur en I2C

#4 Evanok

Evanok

    Membre

  • Membres
  • 39 messages

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