Bonjour je sollicite votre aide pour apprendre la liaison série I2C, j’ai testé les exemples avec 2 Arduino pas de soucis ça fonctionne
Ce que je n’arrive pas à faire c’est reconstituer une chaine de caractères puisque l’on reçoit les caractères les un après les autres, pour pouvoir les utiliser dans mon code avec String
Je sais que je peux faire plus simple, je reçois p et je fais if (c=='p') et j affiche ce que je veux, mais je veux apprendre
Mon objectif plus tard sera utiliser avec Arduino méga et son écran 5 pouces pour l’affichage et un autre Arduino pour le fonctionnement d’une petite machine pour éviter le ralentissement important du système du a l’affichage
Le vous met le code de l I2C esclave merci par avance
#include <Wire.h>
String chaineUne, chaineDeux;
String message;
void setup() {
Wire.begin(8); // L adresse de cet esclave est #8
Wire.onReceive(reception); // Preparer une fonction spécifique a la reception de donnee
Serial.begin(9600); // Demarrer la liaison serie avec le PC
chaineUne = String("Bonjour");
//chaineDeux = String("Salut toi");
}
void loop() {
// if (chaineUne=="Bonjour") { Serial.print(" Bonsoir"); } // je voudrais faire comme ca
delay(100);
}
// Fonction qui exécute chaque fois que des données sont reçues du maître
void reception(int quantitee) { // quantitee = quantitée d octet
while (1 < Wire.available()) { // boucle à travers tout sauf le dernier
char c = Wire.read(); // Recevoir un caractere
int x = Wire.read(); // Recevoir un chiffre
// ce que je fais la fonctionne
if (c=='p') {Serial.print(" Bonjour "); } // je peux faire comme ca
if (c=='a') {Serial.print(" Bonsoir"); } // je peux faire comme ca
// je voudrais faire ca
if (message =="salut") {Serial.print(" tu va bien "); }
}
// int x = Wire.read(); // recevoir octet comme un entier
// Serial.println(); // imprimer le nombre entier
}