Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:


+ Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 15 sur 32

VB envoyer des données avec le rs232

  1. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    VB envoyer des données avec le rs232

    Bonjour à tous,

    je souhaite réaliser une interface VB me permettant d'envoyer des données en hexadécimal vers un microcontrolleur via le RS232.
    J'ai trouvé ceci : http://www.siteduzero.com/tuto-3-323...ort-serie.html qui m'explique comment paramétrer et envoyer des données au RS232. Toutefois, comment fait-on pour envoyer des données de type hexadécimal ou même binaire ? pour que mon microcontrolleur puisse y comprendre.
    dois-je juste faire par exemple au lieu de M dans l'exemple, mettre : $8 ou($)8 ?
    Il faut par exemple que si j'envoie 79 de l'interface au microcontrolleur, alors mon programme du microcontrolleur devra ouvrir tel port... si il reçoit 85 il ouvrira tel ports....


    Si quelqu'un a une petite idée sur l'envoie de données hexadécimale, je lui serais très reconnaissant

    Merci d'avance

    Bonne soirée
     


    • Publicité




      Poursuivez votre recherche
      Recherche personnalisée

  2. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    Une liaison série ne connait que des octets. Donc si tu écris :
    Code:
    MSComm.Output = "M"
    MSComm.Output = chr$(77)
    Dans les deux cas il y a un octet binaire 01001101 ou l'héxa 0x4D qui est envoyé sur la liaison RS232
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     

  3. lil-vince

    Date d'inscription
    février 2008
    Localisation
    Lyon
    Âge
    26
    Messages
    1 112

    Re : VB envoyer des données avec le rs232

    Toutefois, comment fait-on pour envoyer des données de type hexadécimal ou même binaire ? pour que mon microcontrolleur puisse y comprendre
    Je ne sait pas si tu sais que que t´écrive un nombre en hexa, en décimal ou en binaire, dans tous les cas dans ton proc c´est inscrit en binaire!
    Donc il n´y a rien à faire (d´ailleurs, la lettre "M" ca n´est pas du binaire!)
     

  4. gedonet

    Date d'inscription
    février 2004
    Messages
    616

    Re : VB envoyer des données avec le rs232

    Bonjour
    Attention coté PC si le µC doit envoyer des données, les valeurs superieurs à 128, en dehors de la table ascii, peuvent avoir des effets curieux si on les affiche comme un ascii.
    Gilles
     

  5. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    Pour l'instant je ne recçoit pas de données du µC. Je verrais cela plus tard.
    Je vais suivre cette procédure donc : MSComm.Output = chr$(77)
    Il me reste à voir maintenant comment gérer ces données dans le µC. C'est à dire que quand le µC reçoit 77 alors la pinA1 est activée. J'en ai pas la moindre idée je dois avouer.

    Sinon sur Visual Basic est-ce que vous savez comment faire pour lorsque j'appuie sur un bouton, outre les données envoyer avec le RS232, faire défiler un bloc, un objet. Je sais pas comment m'exprimer.
    Je vais essayer de prendre une image: Vous voyez les volets électriques qui s'ouvre et se ferme verticalement ? Les volets roulants, et bien j'aimerais avoir le même effet. En quelque sorte avoir un volet roulants qui monte quand j'appuie sur un bouton, ou s'arrête ou descend.
    Un truc de ce genre. Je sais pas si vous voyez ce que je veux dire.
    J'ai fais des recherches google mais rien ne va, je ne sais pas trop quoi mettre en mot clef lors de la recherche.

    Si quelqu'un sait comment on fait, il est le bienvenue

    Merci d'avance
    Bonne journée
     

  6. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    J'ai déjà entendu quelqu'un parler de ce truc
    Pour le Modo : Ce programme est copyright DAUDET78 (ainsi que les photos) et j'en autorise la publication.......
    Fichiers attachés
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     


    • Publicité



  7. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    Pour information je ne réponds JAMAIS par M.P.
    Citation Envoyé par Panda184
    L'envoie de donnée via le RS232 m'a l'air assez compliqué dans votre programme, ça me paraissait beaucoup plus simple dans le tutoriel que j'avais. J'utiliserais d'ailleurs la méthode du tutoriel dans mon programme, bien que cela doit revenir au même résultats que votre programme mais ça me parait plus abordable.
    Le programme d'écriture RS232 est ultra simple
    Code:
    MSComm1.Output = Cr$ + S1$ + S2$ + Lf$
    le programme de lecture RS232, je le fais dans Form_Activate (il y a d'autres solution)


    Citation Envoyé par Panda184
    Pourriez vous m'expliquer comment vous procédez précisément ? Ou si vous avez un tutorial qui l'explique, ça me convient parfaitement
    Il y avait deux volets à piloter, un seul (celui de gauche) est validé
    Code:
    Dim VoletUP%(2) ' si >0  volet à monter
    Dim VoletDOWN%(2)  ' si >0  volet à descendre
    Dim VoletHeight%(2) ' hauteur du volet

    Que signifie ceci ?
    Code:
    Private Sub Timer1_Timer()
    If VoletUP%(0) > 0 Then
        VoletUP%(0) = Volet(0).Height
        VoletUP%(0) = VoletUP%(0) - VoletHeight%(0) / 100
        If VoletUP%(0) > VoletMin% Then Volet(0).Height = VoletUP%(0)
    End If
    If VoletDOWN%(0) > 0 Then
        VoletDOWN%(0) = Volet(0).Height
        VoletDOWN%(0) = VoletDOWN%(0) + VoletHeight%(0) / 100
        If VoletDOWN%(0) > 0 Then Volet(0).Height = VoletDOWN%(0)
        If VoletDOWN%(0) > VoletMax% Then Volet(0).Height = VoletMax%: VoletDOWN%(0) = 0
    End If
    End Sub
    C'est la gestion de monté et de descente du volet "0". Cette routine est automatiquement appellée toutes les 50 millisecondes . Rien ne se passe si VoletDOWN%(0)=0 ET VoletUP%(0)=0


    Code:
    VoletUP%(0) = VoletHeight%(0)
    VoletDOWN%(0) = 0
    C'est pour fixer les paramètres d'ouverture des volets.
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     

  8. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    Bien, merci pour ces précisions. Et désolé je ne savais pas que vous ne répondiez pas au MP.

    Par contre je n'ai jamais vu dans votre programme la création de l'objet volet. J'ai peut être sauté une étape, mais où se trouve t-elle dans le programme ?

    Merci encore
     

  9. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    Je n'ai rien dit, il est tout en bas du programme, je ne l'avais pas vu.

    Je vais essaer de faire mon programme, je vous tiendrais au courant.

    Par contre avez vous une idée pour gérer les données envoyés par le PC dans le µC ? J'utilise un PIC 16F877.

    Y a t-il une structure bien définit ?

    Merci encore
     

  10. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    Les "frames" Volet(0) et Volet(1)
    Je ne réponds pas en MP car c'est un forum et tout le a le droit de participer aux échanges, ce qui permet de donner des avis différents, de corriger des erreurs.
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     


    • Publicité



  11. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    Bien Merci en tout cas.
    Je suis en train de créer mon programme, je vous tiendrais au courant pour d'autres informations

    Euh juste une petite chose, est-ce vraiment important de voir les données qu'on envoie via le RS232 sur le programme ? Comme vous l'avez fait sur ce programme sur le côté gauche.
    J'ai bien envie d'essayer de le faire, mais comment procéder vu que je vais envoyer mes code hexadécimaux de cette manière:
    Code:
       1.
          Private Sub cmdEnvoi_Click()
       2.
           MSComm.CommPort = 1 
       3.
           MSComm.Settings = "4800,n,8,1" 
       4.
           MSComm.PortOpen = True 
       5.
           MSComm.Output = chr$(77) 
       6.
           MSComm.PortOpen = False 
       7.
          End Sub
    Et enfin dois-je vraiment à chaque fois mettre MSComm.PortOpen = False à la fin de chaque bouton ?
    Et est-ce que je peux mettre un if après le MSComm.PortOpen = True en disant que si MSComm.PortOpen = False alors un label dit qu'il n'y a pas de port activé.

    Merci encore
     

  12. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    1/ il n'y a pas de
    MSComm.PortOpen = False
    après chaque bouton dans mon soft. On ferme le port uniquement en sortant du programme (par le bouton "FIN" ou la "Croix"
    2/ Les fenêtres de visualisation des codes Hexa en entrée et en sortie servent uniquement à vérifier le bon fonctionnement du programme (en rebouclant la pin 3 sur la pin 2 du port) en absence de hard de volet à piloter
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     

  13. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    J'ai bien étudié votre code pendant plusieurs heures, je pense avoir tout compris. C'est vraiment intéressant d'envoyer les trames d'octets de cette manière. Je pense même que c'est un moyen très rapide de faire comme vous l'avez fait lorsqu'on doit envoyer beaucoup de trames.

    Mais j'ai une petite question pour mon projet je doit gérer 3 boutons et dans un autre 5 boutons.

    J'aimerais savoir si je suis obligé d'envoyer comme vous 4 trames c'est à dire par exemple : 0D 4F 31 05
    ou alors je peux juste envoyer 05 pour un bouton; 06 pour un autre et 07 pour le dernier.
    Je pense que c'est largement suffisant non ? Après pour que le microcontrolleur gère ces données ça va être un autre problème, je créerais un autre topic si j'ai besoin.

    Merci infiniment
     

  14. DAUDET78

    Date d'inscription
    septembre 2006
    Localisation
    Ile de France
    Âge
    69
    Messages
    32 131

    Re : VB envoyer des données avec le rs232

    Citation Envoyé par Panda184 Voir le message
    J'aimerais savoir si je suis obligé d'envoyer comme vous 4 trames c'est à dire par exemple : 0D 4F 31 05
    1/ C'est une trame de 4 octets 0D 4F 31 0A
    2/ Le fait d'envoyer des codes "imprimables" (OD= retour_chariot 4F="O" 31="1" 0A=LineFeed) te permet de visualiser avec un espion RS232 (HyperTerminal par exemple) les codes envoyés (alors que 05 06 ou 07 te donne du chinois sur l'écran)
    3/ une trame commence toujours par 0D. donc le PIC attend cet octet, ensuite, il lit les deux suivants (pour les interpréter) et contrôle qu'il y a ensuite l'octet 0A pour exécuter la commande (la trame est bonne, Ouf!)

    On peut compléter le système en disant que si le PIC reçoit une bonne trame à exécuter, il renvoi les octets 0D 4F 4B 0A (Cr "OK" Lf) qui indique au PC que la commande est faite par le PIC et que ce n'est pas la peine de la renvoyer .
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
     


    • Publicité



  15. Panda184

    Date d'inscription
    janvier 2008
    Messages
    50

    Re : VB envoyer des données avec le rs232

    Ah d'accord je ne sais pas pour le 0D et 0A, c'est bon de le savoir
    Je vais utiliser ce principe alors.

    En tout cas merci beaucoup ! Je pense que j'ai assez d'informations pour faire mon programme sous VB.

    Merci !
     


Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. Comment envoyer des données au Pc via USB
    Par Rubot dans le forum Électronique
    Réponses: 3
    Dernier message: 22/03/2012, 22h41
  2. Ecrire des donnees dans un fichier .txt avec MATLAB
    Par ghislaine dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 24/10/2011, 17h03
  3. envoyer des octets sur RC6/TX avec logipic ?
    Par chawkiz dans le forum Électronique
    Réponses: 2
    Dernier message: 23/06/2007, 18h18
  4. La NASA souhaiterait envoyer des hommes autour de la Lune dès 2015
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 1
    Dernier message: 02/02/2007, 19h13
  5. Envoyer des données à une télécommande depuis un PC
    Par ptitmeck dans le forum Électronique
    Réponses: 5
    Dernier message: 25/01/2007, 14h25