Merci pour toute votre aide;
Je vous met mon code si cela peut aider ;
const byte tailleMax = 50;
char message[tailleMax + 1];
const char marqueurDeFin = '#';
#define LED1 2
#define LED2 3
#define LED3 4
boolean ecouter()
{
static byte positionMsg = 0;
boolean cours = true;
while (Serial.available() && cours) {
int c = Serial.read();
if (c != -1) {
switch (c) {
case marqueurDeFin:
message[positionMsg] = '\0';
positionMsg = 0;
cours = false;
break;
default:
if (positionMsg <= tailleMax - 1) { message[positionMsg]= (char) c; positionMsg = positionMsg + 1; }
break;
}
}
}
return cours;
}
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
Serial.begin(9600);
Serial.println("Bonjour Raspberry");
}
void loop() {
if (! ecouter()) {
Serial.println(message);
if (!strcmp(message, "Allumer")) {
Serial.println ("Salut");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
}
if (!strcmp(message, "Eteindre")) {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
if (!strcmp(message, "1")) {digitalWrite(LED1, HIGH);}
if (!strcmp(message, "2")) {digitalWrite(LED2, HIGH);}
if (!strcmp(message, "3")) {digitalWrite(LED3, HIGH);}
if (!strcmp(message, "4")) {digitalWrite(LED1, LOW);}
if (!strcmp(message, "5")) {digitalWrite(LED2, LOW);}
if (!strcmp(message, "6")) {digitalWrite(LED3, LOW);}
}
}
Quand j'écris Allumer#, cela affiche Salut mais, je n'arrive pas à le lire correctement avec mon Raspberry...
#!/usr/bin/python3
import time
import serial
ser=serial.Serial('/dev/ttyACM0', 9600)
print(ser.readline())
time.sleep(1)
ser.write(b'Allumer#')
print(ser.readline())
print(ser.readline())
print(ser.readline())
print(ser.readline())
Déjà, les leds s'allument et s'éteignent si je leurs demande...
Mais, je ne lis pas le "Salut" au premier print(ser.readline()), ce premier affiche b'Allumer\r\n'
Savez-vous pourquoi ? Il est affiche au deuxième print(ser.readline())...
Les deux derniers ne servent à rien ils m'ont permis une vérification que rien n'est envoyé...
Et, comment écrire le texte du ser.readline() dans une variable ?
Pour faire ensuite des print (variable) ou pour comparer variable1 et variable2...