Bonsoir Messieurs/Dames(peut-être),
Je viens vous demander de l'aide car je bloque sur une partie de mon projet. Celle-ci consiste à réceptionner une chaine de caractère saisie sur un terminal mobile et transmise sur la liaison série en Bluetooth. Pour l'instant je me contenterais de l'envoyer depuis la console du PC.
Je souhaiterais donc récupérer cette chaîne, et l'afficher sur le LCD 20*4 qui est relié à mon Arduino. Je vois déjà venir le problème pour les chaînes de plus de 20 caractères mais vous allez rire, avec moins de 20 caractères ça ne fonctionne même pas...
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
LiquidCrystal LCD(11, 10, 5, 4, 3, 2); //pin mapping de l'écran
SoftwareSerial bluetooth(12,13); //pin mapping du module bluetooth
char cBuffer[64];
int iIndex=0;
bool bDataPrete=false;
void setup() {
lancement();
menuprincipal();
Serial.begin(9600); //ouverture de la voie série du pc
bluetooth.begin(9600); //ouverture de la voie série avec le module bluetooth
}
void loop() {
if(Serial.available()>10||bDataPrete==false){
recevoirData();
}
if(bDataPrete==true){
affichageLCD();
}
}
void recevoirData(void){
LCD.write("RECEPT");
delay(2000);
while(Serial.available()>1){
cBuffer[iIndex]=Serial.read();
iIndex++;
}
bDataPrete=true;
}
void affichageLCD(void){
LCD.write("AFFICH");
delay(2000);
LCD.clear();
LCD.write(cBuffer);
bDataPrete=false;
}
void lancement(void) {
LCD.begin(20,4);
LCD.home();
LCD.setCursor(1,0);
LCD.write("Demarrage en cours");
LCD.setCursor(1, 1);
LCD.write("Veuillez patienter");
LCD.setCursor(8, 2);
LCD.write("...");
delay(4000);
}
void menuprincipal(void){
LCD.clear();
}
Je vous ai joint mon code. Si une âme charitable pourrait me débloquer ce serait fabulissime!! Je vais arrêter pour aujourd'hui, c'est mieux car je n'arrive plus à me concentrer sur ce code...
Merci et bonne soirée