IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

communication arduino et windev


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut communication arduino et windev
    Bonjour,
    J'aimerais créer une IHM Windev pour piloter ma carte UNO Arduino.
    Pour tester j'ai créé une petite appli sur Arduino qui éclaire une LED suite à l'appui sur une touche (a, b ...). Cela fonctionne bien avec le moniteur serie de l'arduino.
    D'un autre côté j'ai créé une feuille avec un bouton sous windev, et j'aimerai éclairer une LED en faisant un clic dessus (simulation de l'appui sur une touche).
    Mais malheureusement la LED ne s'éclaire pas.
    Voici mon code arduino

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    void setup() {
      // initialize serial communication:
      Serial.begin(9600);
          for (int thisPin = 5; thisPin < 8; thisPin++) {
            pinMode(thisPin, OUTPUT);
          }
    }
     
    void loop() {
      if (Serial.available() > 0) {
        int inByte = Serial.read();
      Serial.println(inByte);
        switch (inByte) {
        case 'a':    
          digitalWrite(5, HIGH);
          break;
        case 'b':    
          digitalWrite(6, HIGH);
          break;
        case 'c':    
          digitalWrite(7, HIGH);
          break;
        default:
          for (int thisPin = 5; thisPin < 8; thisPin++) {
            digitalWrite(thisPin, LOW);
     
          }
        }
      }
    }


    et voici mon code windev :

    clic sur BTN_sansNom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bResultat = sOuvre(4,4096,4096)
    cMessage est un entier
     
    cMessage=97    //code ascii de a
    SI bResultat = Vrai ALORS
    	sFixeParamètre(4,9600,1,8,0)
    	sEcrit(4, cMessage)
    	Trace(cMessage)
    SINON
    	Erreur("Erreur d'ouverture de COM.....")
    FIN
    Est-ce que quelqu'un pourrait m'aider car je ne comprends pas mon erreur
    par avance merci, cdt

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    Bonjour,

    Les deux prototypes de la fonction sEcrit utilisent une chaine ou un buffer.
    Le fait d'envoyer un entier ne poserait pas de problème?

    Faudrait faire le test en utilisant un buffer ou une chaine ne contenant que la lettre par exemple.

    (Je n'ai aucune idée de ce que ca peut donner, c'est juste une piste)

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 204
    Par défaut
    En general pour finaliser l'envoi d'une commande sur port COM il faut envoyet un retour chariot (RC).

    Essai de rajouter un RC a la fin

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    RE bonjour,
    Je vais essayer avec un CR, mais Est-ce que je dois envoyer un caractère 'a' par exemple ou son code ascii ?
    merci

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Bonjour,
    J'ai essayé avec un RC en fin de message mais le problème reste entier! pas moyen d'éclairer une LED. En revanche si les leds sont allumées et que je clic sur le BTN, elles s'eteignent
    J'envoi donc bien qque chose?
    Est-ce que quelqu'un aurait un bout de code pour m'expliquer
    Par avance merci

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Par défaut Bonjour
    je te suggère de faire quelque chose de ce genre

    dans la partie arduino tu utilises "a" pour allumer et "A" pour s'éteindre

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    char charRead;
     
    void setup() {                
      Serial.begin(9600);
    }
     
    void loop() {
       /*  Verifie si le PC envois un caractere: */
      if (Serial.available()) {
        /* Lit ce caractere */
        charRead = Serial.read(); // check pour un a
        if (charRead == 97) {
            digitalWrite(5, HIGH);
     	 }
        if (charRead == 65) {
            digitalWrite(5, LOW);
     	 }
     
        }
    }

    et dans WinDev tu envoies "a" ou "A" pour allumer ou eteindre ta LED

    J'espere que ca va t'aider

Discussions similaires

  1. Communication arduino avec VB.net
    Par chrifi dans le forum Arduino
    Réponses: 1
    Dernier message: 24/05/2013, 13h49
  2. [WD17] Modifier fenêtre téléchargement Framework Windev Commun
    Par zouzoukha dans le forum WinDev
    Réponses: 0
    Dernier message: 14/05/2013, 18h45
  3. Bug communication serie avec arduino (busy)
    Par Invité dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/07/2012, 09h39
  4. probleme de communication entre 2 fenêtres windev
    Par law56100 dans le forum WinDev
    Réponses: 9
    Dernier message: 24/04/2008, 12h14
  5. [WD11] Communication WinDev / Foxpro
    Par Bugger24 dans le forum WinDev
    Réponses: 9
    Dernier message: 14/02/2008, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo