Bonjour à tous,
Alors voilà, dans le cadre d'un projet, je dois réaliser une liaison série I2C afin d'envoyer plusieurs informations de l'esclave vers le maître (communication entre 2 cartes arduino).
J'ai, par exemple, branché 2 potentiomètres sur ma carte esclave en A0 et A1, j'envois ces 2 valeurs sur la carte maître mais je n'arrive pas à afficher l'une puis l'autre. Je suis obligé de garder cette configuration des cartes et je ne peux donc pas inverser le maître et l'esclave.
De plus, la liaison marche très bien pour un seul potentiomètre.
Du côté de l'esclave j'ai donc le code suivante :
#include <Wire.h>
int pot=A0;
int pot1=A1;
void setup() {
Wire.begin(8);
Wire.onRequest(requestEvent);
Serial.begin(9600);
}
void loop() {
delay(100);
}
void requestEvent() {
Wire.write(map(analogRead(pot),0,1024,0,255));
Wire.write(map(analogRead(pot1),0,1024,0,255));
}
Et c'est du côté du maître que ça pèche un peu plus, je ne vois pas vraiment comment bien distinguer la première donnée envoyé de la seconde.
Pour l'instant le code de son côté est comme-ceci :
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
Wire.requestFrom(8, 2);
while(Wire.available())
{
int c = Wire.read();
Serial.println(c);
}
delay(500);
}
J'ai essayé pas mal de possibilités et de chercher des exemples sur internet, mais sans franc succès dans cette configuration.
J'aimerai donc savoir si quelqu'un a déjà réaliser un programme similaire au mien, ou si vous avez une idée de réponse à m'apporter.
Je reste à disposition pour toutes infos complémentaires.
Merci à ceux qui répondre.
Amicalement