Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
je vais communiquer le VB avec arduino,coté VB (quand je recoie une chaine ex(12)je déclenche un compteur ) voici le programme que j'ai fait s'il veut vous pouvez m'aider
Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load duration = New System.TimeSpan(0, 0, 0, 1) answer = New System.TimeSpan(0, 0, 0, 0) s.PortName = "COM1" s.BaudRate = 9600 s.DataBits = 8 s.Parity = Parity.None s.StopBits = StopBits.One s.Handshake = Handshake.None s.Encoding = System.Text.Encoding.Default Timer1.Start() Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) s.Close() Try s.Open() value = s.ReadLine() If value = 12 Then ' start etat = 1 ElseIf value = 13 Then ' pause etat = 0 ElseIf value = 14 Then ' reset etat = 2 End If s.Close() Catch ex As Exception Timer1.Stop() MsgBox("Erreur!..." & Chr(13) & ex.Message, 48, "Erreur") s.Close() End Try If etat = 1 Then answer = answer.Add(duration) ElseIf etat = 2 Then answer = New System.TimeSpan(0, 0, 0, 0) End If TextBox1.Text = answer.ToString + " S"
Option Explicit On Option Strict On Imports System.IO.Ports Public Class Form1 Dim duration As TimeSpan Dim answer As TimeSpan Dim value As Integer Dim etat As Integer Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing S.Close() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load duration = New System.TimeSpan(0, 0, 0, 1) answer = New System.TimeSpan(0, 0, 0, 0) S.PortName = "COM1" S.BaudRate = 9600 S.DataBits = 8 S.Parity = Parity.None S.StopBits = StopBits.One S.Handshake = Handshake.None S.Encoding = System.Text.Encoding.Default S.Open() Timer1.Interval = 1000 Timer1.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = False Try value = CInt(S.ReadExisting) If value = 12 Then ' start etat = 1 ElseIf value = 13 Then ' pause etat = 0 ElseIf value = 14 Then ' reset etat = 2 End If S.Close() Catch ex As Exception Timer1.Stop() MsgBox("Erreur!..." & Chr(13) & ex.Message, CType(48, MsgBoxStyle), "Erreur") S.Close() End Try If etat = 1 Then answer = answer.Add(duration) ElseIf etat = 2 Then answer = New System.TimeSpan(0, 0, 0, 0) End If TextBox1.Text = answer.ToString + " S" End Sub Private Sub S_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles S.DataReceived Timer1.Enabled = True End Sub End Class