Zobrazení měřené teploty ve visual basicu

Odpovědět
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Zobrazení měřené teploty ve visual basicu

Příspěvek od johan »

Ahoj

Rozhodl jsem se zobrazit teplotu externího čidla v oop jazyku, a to visual basicu 2010
Zapojení: DS18b20, Picaxe 20x2, virtualní com port pro BT.modul OBS421, Visual basic.

Ve Win.Form.App.,Label1 se mi Zobrazuje každou sekundu naměřená teplota ve tvaru "XXX.X" čili na jedno desetinné číslo.
Odesílání z picaxe je prováděno přes 19.tý vývod "Serial out" a to ve tvaru: sertxd (#b38,".",#b39)
pro kladná čísla: sertxd ("-",#b38,".",#b39) pro záporná čísla, přičemž proměnná b39 jsou ty desetiny.(zaokrouhloval jsem v programu jen na jedno desetinné číslo.)

Problém nastane, když ho převádím ve Win.Form.App. Zobrazení je nekorektní. Chvíli se mi zobrazí ve tvaru např. "24.6" a po nějaké době mi naskočí jen desetiny "6", a tak se to v růrných intervalech střídá. Chvíli celé stupně i s desetinami, a po třech sekundách jen zase desetiny.

Když ale vynechám desetiny "b39", a nechám tam jen celá čísla i s tečkou: sertxd (#b38,"."), pak je vše v pořádku a zobrazuje se ni "24." stupnů celsia



Public Class Form1
Dim myPort As Array

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myPort = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)

End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
reccivedText(SerialPort1.ReadExisting())
End Sub

Private Sub reccivedText(ByVal [text] As String)

Me.Label1.Text = (text)

End Sub


Nevíte jak zobrazit teplotu v celém tvaru "24.6" stupnů celsia ?

Díky
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od johan »

Ahoj.
Heuréééééka :)))

Problém byl při definování "SerialPort1", kde ve "Properties/ReceivedBytesThreshold" byla implicitně nastavena hodnota jedna(1).
Zvýšil jsem její hodnotu na čtyři(4) "Hranice přijatých bajtů".
V podstatě asi záleží na tom, kolik bajtů je přenášeno příkazem SERTXD.
V mém případě to je VÍCE než jeden bajt.... SERTXD (#b38,".",#b39)

Pořád jsem nad tím přemýšlel a přemýšlel v čem by to mohlo být...
Jsem rád, že jsem se na to nevykašlal, vždy existuje řešení, jen ho najít ;)
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od jrt »

Gratuluju a díky, žes popsal i vyřešení problému. To v poslední době není v tomto fóru nějak zvykem, každý chce radu, ale jestli mu vůbec k něčemu byla už nenapíše... :evil:
jrt
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od johan »

Za pár dní tady hodím video s oběma zdrojáky.
Picaxe a visual basic, takových videí je na jutub poskromnu.

Občas si člověk myslí, že vytvořil něco úžasného, do té doby, než příjde někdo jiný s lepším řešením. :)
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od jrt »

johan píše:Občas si člověk myslí, že vytvořil něco úžasného, do té doby, než příjde někdo jiný s lepším řešením. :)
Tomu se říká pokrok, pane kolego :D
jrt
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od johan »

Tak tady je v výsledek, jednoduchý program, spojení VB. a PicAxe. https://www.youtube.com/watch?v=Cfyr31D ... e=youtu.be
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od jrt »

Pěkné!
Bylo by příliš odvážné požádat o článek na Robodoupě?
jrt
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: Zobrazení měřené teploty ve visual basicu

Příspěvek od johan »

Velice rád, ale ted mám dost napilno v nové práci.
Odpovědět