visual basic + arduino
Répondre à la discussion
Affichage des résultats 1 à 26 sur 26

visual basic + arduino



  1. #1
    mattlander

    visual basic + arduino


    ------

    Bonjour tout le monde.. avec mon arduino j'ai creer un petit programme qui avec 2 capteur envoie des donnees sur le port serie que j'ai recu avec un petit programme tournant sur visual basic 2010...j'affiche les deux resultat dans un RichTextBox.....tout est ok....mais ce que je voulais faire c'est d'afficher chaque resultat dans leur propre RichTextBox...mais je ne sais pas quel ligne de code utiliser pour diviser les donnees recues....quelqu'un peut m'aider ???

    -----

  2. #2
    Bluedeep

    Re : visual basic + arduino

    Bonjour

    C'est sur que sans le code source on va pouvoir t'aider .....

    Attend juste que ma boule de cristal ait fini de chauffer. (elle a le reboot difficile en cette saison).

  3. #3
    mattlander

    Re : visual basic + arduino

    merci d'avance

  4. #4
    Bluedeep

    Re : visual basic + arduino

    Citation Envoyé par mattlander Voir le message
    merci d'avance
    T'es sur que tu as compris ma réponse ?
    Il faut le source

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : visual basic + arduino

    Citation Envoyé par Bluedeep Voir le message
    T'es sur que tu as compris ma réponse ?
    Il faut le source
    Visiblement, c'est toujours aussi confus:
    http://forums.futura-sciences.com/pr...r-arduino.html

    Au passage, c'est maintenant du VB. Bizarre de changer de langage alors qu'à priori aucun n'est maitrisé.

  7. #6
    Bluedeep

    Re : visual basic + arduino

    Citation Envoyé par Jack Voir le message
    Bizarre de changer de langage alors qu'à priori aucun n'est maitrisé.
    Surtout dans ce sens là ......

  8. #7
    mattlander

    Re : visual basic + arduino

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    receivedData = ReceiveSerialData()
    RichTextBox1.Text &= receivedData
    End Sub

    c'est ici que tout se passe, RichTextBox1 a recu tout les donnees, et les affiches, moi j'en veux qu'il s'affiche une seulement

  9. #8
    mattlander

    Re : visual basic + arduino

    je veux ajouter deux RichTextBox, RichTextBox1 et RichTextBox2... la premiere affichera les donnees du capteur1 et la deuxieme affichera les donnees du capteur2.....je vois pas ou est la confusion

  10. #9
    Bluedeep

    Re : visual basic + arduino

    Citation Envoyé par mattlander Voir le message
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    receivedData = ReceiveSerialData()
    RichTextBox1.Text &= receivedData
    End Sub

    c'est ici que tout se passe, RichTextBox1 a recu tout les donnees, et les affiches, moi j'en veux qu'il s'affiche une seulement
    Et comment est on censé savoir comment sont séparées vos données ?

  11. #10
    mattlander

    Re : visual basic + arduino

    Imports System
    Imports System.IO.Ports
    Public Class Form1
    Dim comPORT As String
    Dim receivedData As String = ""
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Enabled = False
    comPORT = ""
    For Each sp As String In My.Computer.Ports.SerialPortNa mes
    comPort_ComboBox.Items.Add(sp)
    Next
    End Sub
    Private Sub comPort_ComboBox_SelectedIndex Changed(sender As Object, e As EventArgs) Handles comPort_ComboBox.SelectedIndex Changed
    If (comPort_ComboBox.SelectedItem <> "") Then
    comPORT = comPort_ComboBox.SelectedItem
    End If
    End Sub
    Private Sub connect_BTN_Click(sender As Object, e As EventArgs) Handles connect_BTN.Click
    If (connect_BTN.Text = "Connect") Then
    If (comPORT <> "") Then
    SerialPort1.Close()
    SerialPort1.PortName = comPORT
    SerialPort1.BaudRate = 9600
    SerialPort1.DataBits = 8
    SerialPort1.Parity = Parity.None
    SerialPort1.StopBits = StopBits.One
    SerialPort1.Handshake = Handshake.None
    SerialPort1.Encoding = System.Text.Encoding.Default
    SerialPort1.ReadTimeout = 10000
    SerialPort1.Open()
    connect_BTN.Text = "Dis-connect"
    Timer1.Enabled = True
    Timer_LBL.Text = "Timer: ON"
    Else
    MsgBox("Select a COM port first")
    End If
    Else
    SerialPort1.Close()
    connect_BTN.Text = "Connect"
    Timer1.Enabled = False
    Timer_LBL.Text = "Timer: OFF"
    End If
    End Sub
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    receivedData = ReceiveSerialData()
    RichTextBox1.Text &= receivedData
    End Sub
    Function ReceiveSerialData() As String
    Dim Incoming As String
    Try
    Incoming = SerialPort1.ReadExisting()
    If Incoming Is Nothing Then
    Return "nothing" & vbCrLf
    Else
    Return Incoming
    End If
    Catch ex As TimeoutException
    Return "Error: Serial Port read timed out."
    End Try
    End Function
    Private Sub clear_BTN_Click(sender As Object, e As EventArgs) Handles clear_BTN.Click
    RichTextBox1.Text = ""
    End Sub
    End Class

  12. #11
    Bluedeep

    Re : visual basic + arduino

    Merci d'utiliser les balises CODE car là c'est illisible.

  13. #12
    mattlander

    Re : visual basic + arduino

    Code:
    Imports System
    Imports System.IO.Ports
    
    Public Class Form1
        Dim comPORT As String
        Dim receivedData As String = ""
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Enabled = False
            comPORT = ""
            For Each sp As String In My.Computer.Ports.SerialPortNames
                comPort_ComboBox.Items.Add(sp)
            Next
        End Sub
    
        Private Sub comPort_ComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles comPort_ComboBox.SelectedIndexChanged
            If (comPort_ComboBox.SelectedItem <> "") Then
                comPORT = comPort_ComboBox.SelectedItem
            End If
        End Sub
    
        Private Sub connect_BTN_Click(ByVal sender As Object, ByVal e As EventArgs) Handles connect_BTN.Click
            If (connect_BTN.Text = "Connect") Then
                If (comPORT <> "") Then
                    SerialPort1.Close()
                    SerialPort1.PortName = comPORT
                    SerialPort1.BaudRate = 9600
                    SerialPort1.DataBits = 8
                    SerialPort1.Parity = Parity.None
                    SerialPort1.StopBits = StopBits.One
                    SerialPort1.Handshake = Handshake.None
                    SerialPort1.Encoding = System.Text.Encoding.Default
                    SerialPort1.ReadTimeout = 10000
                    SerialPort1.Open()
                    connect_BTN.Text = "Dis-connect"
                    Timer1.Enabled = True
                    Timer_LBL.Text = "Timer: ON"
                Else
                    MsgBox("Select a COM port first")
                End If
            Else
                SerialPort1.Close()
                connect_BTN.Text = "Connect"
                Timer1.Enabled = False
                Timer_LBL.Text = "Timer: OFF"
    
    
            End If
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    
            SerialPort1.Write("A")
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    
            SerialPort1.Write("E")
    
        End Sub
    
    
    
        Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
            receivedData = ReceiveSerialData()
            RichTextBox1.Text &= receivedData
        End Sub
    
        Function ReceiveSerialData() As String
            Dim Incoming As String
            Try
                Incoming = SerialPort1.ReadExisting()
                If Incoming Is Nothing Then
                    Return "nothing" & vbCrLf
                Else
                    Return Incoming
                End If
    
            Catch ex As TimeoutException
                Return "Error: Serial Port read timed out."
            End Try
        End Function
        Private Sub clear_BTN_Click(ByVal sender As Object, ByVal e As EventArgs) Handles clear_BTN.Click
            RichTextBox1.Text = ""
        End Sub
    End Class
    Dernière modification par Jack ; 13/11/2015 à 15h20. Motif: Ajout balises code

  14. #13
    Bluedeep

    Re : visual basic + arduino

    Citation Envoyé par Bluedeep Voir le message
    Merci d'utiliser les balises CODE car là c'est illisible.

    Euh .... vous lisez les réponses ?

  15. #14
    Jack
    Modérateur

    Re : visual basic + arduino

    C'est fait (pour cette fois)

  16. #15
    Jack
    Modérateur

    Re : visual basic + arduino

    Citation Envoyé par mattlander Voir le message
    je veux ajouter deux RichTextBox, RichTextBox1 et RichTextBox2... la premiere affichera les donnees du capteur1 et la deuxieme affichera les donnees du capteur2.....je vois pas ou est la confusion
    Ma boule de cristal étant en panne également (ça doit être la saison), il m'est impossible de deviner comment on peut identifier une donnée issue du capteur 1 d'une issue du capteur 2.

  17. #16
    mattlander

    Re : visual basic + arduino

    je vois, je suis mal tomber :'(

  18. #17
    Jack
    Modérateur

    Re : visual basic + arduino

    Citation Envoyé par mattlander Voir le message
    je vois, je suis mal tomber :'(
    ?????

    Ca veut dire quoi?

    On t'explique qu'il manque des informations, quelles sont les informations manquantes et c'est tout ce que tu trouves à dire.

  19. #18
    mattlander

    Re : visual basic + arduino

    Code:
    //Déclaration des pin sur lesquelles sont connectées les LED
    int pinLed13 = 13; // LED Blanche
    const char capteur_Trou = 0; //broche A0 sur laquelle va être connecté le capteur Trou
    float tension_capteur_Trou = 0; //variable qui va enregistrer la tension lue en sortie du capteur_Trou
    float seuil_capteur_Trou = 1.5; // valeur en V au quel il y a un trou devant le capteur_Trou
    const char capteur_choc_avant = 1; //broche A1 sur laquelle va être connecté le capteur_choc_avant
    float tension_capteur_choc_avant = 1; //variable qui va enregistrer la tension lue en sortie du capteur_choc_avant
    float seuil_capteur_choc_avant = 2.5; //valeur en V au quel il y a un choc devant le capteur_choc_avant
    //Déclaration de la variable contenant la valeur de la touche saisi au clavier
    int octetRecu;
    
    void setup() {
    // Initialisation de la communication serielle
    Serial.begin(9600);
    // Configuration des pin en sortie
    // il est important pour le bon fonctionnement du montage de spécifier quelles pins seront utilisées comme sortie.
    
    pinMode(pinLed13, OUTPUT);
    }
    
    void loop() 
    {
    
    tension_capteur_Trou = (analogRead(capteur_Trou) * 5.0) / 1024; // conversion de la valeur du tension_capteur_Trou en V
    tension_capteur_choc_avant = (analogRead(capteur_choc_avant) * 5.0) / 1024; // conversion de la valeur du tension
    
    Serial.print(tension_capteur_Trou);
    Serial.println("V1");
    Serial.print(tension_capteur_choc_avant);
    Serial.println("V2");
    delay(1000);
    
    
    // Verfie si il y a une donnée sérielle disponible
    if (Serial.available() > 0) {
    // Lecture de l'octet présent dans la mémoire tampon (buffer)
    octetRecu = Serial.read();
    
    if (octetRecu == 'A' || octetRecu == 'a') { //Si l'octet recu est égal à R ou r
    digitalWrite(pinLed13, HIGH); //Allumer la LED connectée à pinLed13
    Serial.println("LED blanche allumee"); //Afficher "LED Rouge allumee" dans le moniteur série
    }
    
    if (octetRecu == 'E' || octetRecu == 'e') { //Si l'octet recu est égal à J ou j
    digitalWrite(pinLed13, LOW); //Allumer la LED connectée à pinLed1
    Serial.println("LED Blanche eteinte"); //Afficher "LED Jaune allumee" dans le moniteur série
    }
    }
    }
    Dernière modification par JPL ; 14/11/2015 à 14h09. Motif: Ajout de la balise Code (#)

  20. #19
    Jack
    Modérateur

    Re : visual basic + arduino

    Tu pourrais au moins faire l'effort de présenter le code comme cela te l'a été demané (Balises CODE !!!!!! ou bouton # dans l'éditeur avancé.

    De plus, ça n'est pas très correct de ta part de nous balancer un code complet qu'il va falloir décortiquer alors qu'une simple explication suivie par les 3 ou 4 lignes de code correspondantes auraient suffi.
    Serial.print(tension_capteur_T rou);
    Serial.println("V1");
    Serial.print(tension_capteur_c hoc_avant);
    Serial.println("V2");
    Il suffit donc à la réception de détecter V1 ou V2 pour savoir de quelle mesure il s'agit et de l'envoyer sur la bonne textBox.

  21. #20
    mattlander

    Re : visual basic + arduino

    oui cest exactement ca...et je sais pas comment faire

  22. #21
    Jack
    Modérateur

    Re : visual basic + arduino

    Il faut traiter les chaines que tu vas recevoir sur ton port série.
    Un peu de lecture: https://msdn.microsoft.com/en-us/library/dd789093.aspx

  23. #22
    mattlander

    Re : visual basic + arduino

    1000merci a toi jack, jai bien fait la lecture, en tant que debutant j'avoue je vois tous noir... je ne sais pas comment traiter les chaines..tu veux bien m'aider...merci d'avance.

  24. #23
    JPL
    Responsable des forums

    Re : visual basic + arduino

    J'ai ajouté une fois de plus la balise Code mais je constate que ton code n'est pas indenté. Je crains qu'à la prochaine fois où tu négligeras de respecter ce qu'on te demande certains renoncent à te répondre.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  25. #24
    Jack
    Modérateur

    Re : visual basic + arduino

    Citation Envoyé par mattlander Voir le message
    1000merci a toi jack, jai bien fait la lecture, en tant que debutant j'avoue je vois tous noir... je ne sais pas comment traiter les chaines..tu veux bien m'aider...merci d'avance.
    1- je ne connais pas trop VB .net et je n'ai pas trop le rtemps pour me plonger dedans
    2- http://forums.futura-sciences.com/pr...ces-forum.html
    J'ai cru un instant que le code que tu nous montrais était le tien, mais visiblement ce n'est pas le cas car rechercher "V1" ou "V2" dans une chaîne est assez trivial en regard du code que tu nous as présenté.

  26. #25
    mattlander

    Re : visual basic + arduino

    bien ok...merci

  27. #26
    mattlander

    Re : visual basic + arduino

    ne vous en faites pas..je laisse tomber

Discussions similaires

  1. communication serial entre arduino et visual basic
    Par Neilmine dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 08/03/2015, 11h30
  2. Problème de réception port série visual basic ( visual studio 2012)
    Par extremgear dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 30/07/2013, 22h44
  3. visual basic 6
    Par geniant dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 22/06/2011, 08h21
  4. Programme entre Visual Basic et logiciel Arduino
    Par invitec984624a dans le forum Électronique
    Réponses: 39
    Dernier message: 26/03/2010, 13h58
  5. Interfacage Logiciel Arduino et visual basic
    Par invitec984624a dans le forum Électronique
    Réponses: 2
    Dernier message: 12/03/2010, 10h59