Pages: [1]   Go Down
Author Topic: problema acquisizione dati  (Read 1175 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti , sto lavorando a un progetto di acquisizione dati da un motore termico .
Utilizzando una arduino uno controllo i dati da 2 sensori lm35 , da una sonda DS18B10 ,e da un circuito che converte la frequenza in voltaggio per controllare il numero dei giri .
Sempre via arduino comando dei transistor per il controllo del motorino di avviamento e di una ventola posta sopra il radiatore del motore .

Ho realizzato una semplice form in visual basic 2008 per la parte visuale del programma , e qui sorgono i problemi .
Per la parte di comunicazione dati da pc verso arduino 0 problemi , i comandi vengono recepiti tranquillamente .
IL problema sorge nel momento in  cui devo inserire i dati provenienti dai sensori in apposite text_box.
Per risolvere il problema della comunicazione seriale avevo pensato , prima di inviare il dato con arduino proveniente dal sensore , di inviare una stringa che indicava il sensore da cui sarebbe arrivato il dato , per farmi capire meglio :
" <dato sensore uno>
 <valore sensore uno>
 <dato sensore 2>
 <valore sensore 2>"
e , con una serie di controlli , in base alla stringa di "segnalazione" decidere in quale text_box immettere il dato ...
il problema è che sono alle prime armi in visual basic e non riesco propio a far apparire i dati nella text_box

qualcuno ha gia avuto esperienze a riguardo e riesce a darmi delucidazioni ?

gazie in anticipo per la pazienza !  smiley-lol
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ti aiuto lato VB perché non ho Windows. Ricordati comunque che l'Arduino spedisce byte, quindi se spedisci una stringa questa ti arriva scomposta nei singoli byte rappresentanti i codici ASCII dei caratteri. Quindi "AB" arriva come 65, 66.
Non credo ti sarà poi difficile fare una concatenazione col testo di una TextBox dei dati via via che ti arrivano.
Logged


Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

io uso c# ma credo che i concetti siano simili:

- per prima cosa salva la stringa che ricevi da arduino in una apposita variabile
- se lato arduino invii qualcosa tipo sensore1;1,2 (ad indicare che il valore 1,2 proviene dal sensore1) dovrai dividere la stringa utilizzando lo stesso separatore (nel mio esempio il punto e virgola) usato per concatenare lato arduino. con il metodo Split - http://msdn.microsoft.com/en-us/library/system.string.split(v=vs.71).aspx puoi ottenere un array di due elementi (nel nostro caso sensore1 e 1,2)
- usando il setter .Text puoi visualizzare il valore nella textbox corretta:
http://www.startvbdotnet.com/controls/textbox.aspx
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok , per l'invio dei dati avevo pensato esattamente a una cosa del genere ...
grazie 1000 per i link , mi saranno molto utili , anche se non ho capito come usare questo setter.text ... c'è qualcuno che è in grado di spiegarmi ???
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

forse ho capito male la domanda... ma per impostare il testo di una textBox (che si chiami ad es. myTextBox) basta fare myTextBox.Text = "Ciao"
Logged

lucadentella.it

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmm se fa già il setText magari deve chiamare un repaint della pagina/elemento (oddio il VB non lo uso più da anni, era il VB6.0!)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

esatto... al momento sto lavorando a una form con una singola text-box per non complicarmi la vita ... il primo dato che viene inviato riesco a vederlo ma poi stop , servirebbe qualcosa per "ricaricare" la text-box ma non sò da che parte iniziare!
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

spiega meglio: se fai nuovamente un .Text = secondoValore comunque la textBox ti visualizza ancora il primo?
Come ricevi i valori? In un thread separato?
Logged

lucadentella.it

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in effetti è strano, un problema di repaint non dovrebbe mostrare nessun valore, a meno che non sia impostato PRIMA che venga disegnata la finestra. In oltre un modo semplice (ma non sempre funziona) per forzare il repaint è spostare la finestra
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ragazzi qualcosa si muove .... ho inserito un timer che ogni secondo va a pulire l'interno della text box e inserisce il nuovo dato :

Public Class Form1
    Dim dato As String

    Function ReceiveSerialData() As String

        Dim dato As String = ""

        Using com1 As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM9")
            dato = com1.ReadLine()
        End Using

        Return dato
    End Function


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Timer1.Start()

    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        TextBox1.Clear()
        TextBox1.Text = TextBox1.Text & Val(ReceiveSerialData())

    End Sub
End Class



codice moooolto migliorabile direi .... ad esempio manca ancora il bottone per stoppare il timer ...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ragazzi altro problema .... datemi una idea su come utilizzare un button per inviare comandi , visto che il timer sembra non mi permetti di utilizzarlo ....  smiley-confuse
Logged

Pages: [1]   Go Up
Jump to: