PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Problème de lecture du Port COM (Arduino)
Problème de lecture du Port COM (Arduino)
Débuté par Muflih, 02 mai 2017 10:45 - 2 réponses
Posté le 02 mai 2017 - 10:45
Bonjour,

Je met en connexion mon Arduino avec WinDev pour tester la communication entre eux, le programme c'est pour allumer une LED on clickant sur le botton ON (WinDev) et OFF (WinDev) pour l'etteindre.

Code de connexion (Fonctionne parfaitement):

bMySerialEXPRESS est un booléen
bMySerialEXPRESS = sOuvre(4,2000,2000)
SI bMySerialEXPRESS=Vrai ALORS
sFixeParamètre(4,9600,1,8,0) // com4, taux 9600, parité paire, 8bit donnée, 1 bit de stop
Info("Connexion ouverte")
SINON
Erreur("Erreur d'ouverture de COM1")

FIN


Code du botton ON (aussi parfaitement):

sEcrit(4,"ON")


Donc lorsque j'envoi le mot "ON" vers l'Arduino, il le comprend parfaitement et allume la LED. Mais mon PROBLEME c'est quand je reçoi un mot depuis mon Arduino (Arduino vers WinDev), WinDev ne comprend pas le mot reçu, il comprend juste la première lettre, j'y arrive pas à comprendre.

Code d'affichage:

MsgEXPRESSEXPRESS est une chaîne
MsgEXPRESSEXPRESS=sLit(4,sDansFileEntrée(4))
SAI_Texte1 = MsgEXPRESSEXPRESS


Quand j'envois "LED ON" depuis mon Arduino, WinDev m'affiche "LQz9", vous voyez que le premier caractère est bien le même, j'ai essayer avec Serial.print et Serial.write (Arduino) mais c'est toujour le même cas, et aussi j'ai fait des recherche de format de donnée, l'Arduino en ASII et WinDev en ANSI qui est le même que l'ASII, donc normalement ça devrait marcher.

voilà le code de l'Arduino:

String data;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if (Serial.available() > 0){
    data = Serial.readString();
    
    if (data.equalsIgnoreCase("ON")){
      digitalWrite(LED_BUILTIN, HIGH);
      Serial.print("LED ON");                 ////////C'est le mot que je veux lire et afficher sur WinDev/////////
    }
    else if (data.equalsIgnoreCase("OFF")){
      digitalWrite(LED_BUILTIN, LOW);
      Serial.print("LED OFF");
    
    }
  }
}


Si quelqu'un peut m'aider à lire et afficher les bon caractères depuis Arduino > WinDev.
Merci pour votre temps.
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 02 mai 2017 - 22:55
hello,
tu dois avoir un problème de parité avec ta liaison série , regarde ici :
https://www.developpez.net/forums/d1529900-2/environnements-developpement/windev/communication-arduino-windev/…

--
Ami calmant, J.P
Posté le 03 mai 2017 - 00:49
Bonjour,
Vous m'avez vraiment sauver la vie, je vous remercie beaucoup. Pour toi c'est un simple geste mais pour moi ce n'est pas le cas :merci: :D

Maintenant j'ai un autre problème, dans la zone de texte d'affichage, les mot envoyer depuis Arduino vers WinDev, ne s'affiche pas totalement sur WinDev, il affiche juste une partie, et lorque j'essaye à nouveau il affiche l'autre partie même si c'est une zond de texte à multiple lignes.