Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Comunicazione con Arduino
Forum - C# / VB.NET - Comunicazione con Arduino - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:19
Sabato, 21/05/2022
In vb usa un timer da 300 ms


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
bernie (Normal User)
Pro


Messaggi: 164
Iscritto: 23/10/2019

Segnala al moderatore
Postato alle 14:26
Sabato, 21/05/2022
Sostituisco il pulsante del primo esempio con un timer da 300 ma? Giusto?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:12
Sabato, 21/05/2022
Fai la prova


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
bernie (Normal User)
Pro


Messaggi: 164
Iscritto: 23/10/2019

Segnala al moderatore
Postato alle 18:42
Sabato, 21/05/2022
Salve , dopo il consiglio di nessuno ho fatto nella seguente maniera .
Considerando che devo anche mandare dei dati nella seriale , ho pensato di usare l'evento click sulle textbox in cui devo scrivere i dati da inviare , così facendo fermo il timer e con il pulsante di invio lo riabilito .
Ogni suggerimento è ben accetto
Grazie
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  4.         'Scivo le varie COM attive nella combobox
  5.         ComboBox1.Visible = True
  6.         SerialPort1.Close()
  7.         ComboBox1.Items.Clear()
  8.         ComboBox1.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
  9.     End Sub
  10.  
  11.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  12.         'Seleziono la seriale  e attivo il timer
  13.         ComboBox1.Visible = False
  14.         SerialPort1.Close()
  15.         If ComboBox1.Text <> "" Then
  16.             Try
  17.                 SerialPort1.Encoding = System.Text.Encoding.Default
  18.                 SerialPort1.PortName = ComboBox1.Text
  19.                 SerialPort1.Open()
  20.                 Button2.Text = "Connesso"
  21.                 Label29.Visible = True
  22.                 Label29.Text = "Collegato alla porta" + ComboBox1.Text
  23.                 Timer1.Enabled = True
  24.             Catch ex As Exception
  25.                 MsgBox(" Non Connesso")
  26.             End Try
  27.         End If
  28.  
  29.     End Sub
  30.  
  31.     Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  32.         'Invia i dati ad arduino
  33.         SerialPort1.WriteLine(TextBox12.Text)                ' invia il valore Set.Menisco
  34.         SerialPort1.WriteLine(TextBox14.Text)                ' invia il valore velocità pompa mandata  
  35.         Timer1.Enabled = True                                ' riattivo il timer    
  36.     End Sub
  37.  
  38.     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  39.         'Ogni 300ms leggo la seriale
  40.         Dim pressioneIn As Short
  41.         Dim pressioneOut As Short
  42.         Dim arduino As String = SerialPort1.ReadLine()                  'scrivo in arduino quello che ricevo dalla seriqale
  43.         arduino = arduino.Trim()                                        'elimino eventuale porcheria
  44.         Dim lunghezza As Short = Len(arduino)                           'ricavo la lunghezza del dato
  45.         Dim indice As String = arduino.Substring(0, 1)                  'ricavo l'indice dai dati ricevuti per sapere dove mettere i valori
  46.         Dim valore As Short = arduino.Substring(1, lunghezza - 1)  'ricavo i valori
  47.         If indice = 0 Then
  48.             TextBox13.Text = valore                     'valore menisco
  49.         End If
  50.         If indice = 1 Then
  51.             TextBox11.Text = valore                     'velocità pompa ritorno
  52.         End If
  53.         If indice = 2 Then
  54.             TextBox10.Text = valore                     'valore pressione mandata
  55.             pressioneIn = valore
  56.         End If
  57.         If indice = 3 Then
  58.             TextBox9.Text = valore                      'valore pressione ritorno
  59.             pressioneOut = valore
  60.         End If
  61.  
  62.  
  63.         TextBox8.Text = pressioneIn - pressioneOut
  64.     End Sub
  65.  
  66.     Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.Click
  67.         'Fermo il timer per scrivere i dati
  68.         Timer1.Enabled = False
  69.     End Sub
  70.  
  71.     Private Sub TextBox12_TextChanged(sender As Object, e As EventArgs) Handles TextBox12.Click
  72.         'Fermo il timer per scrivere i dati
  73.         Timer1.Enabled = False
  74.     End Sub
  75.  
  76.  
  77. End Class


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo