Keresés

Részletes keresés

halaloszto Creative Commons License 2015.03.17 0 0 1026

a hatotavot nem az ado teljesitmenyevel kell novelni, a leirt okbol. hanem az antenna meretenek es nyeresegenek novelesevel. az ugyanis a vetelt is aranyosan javitja. jo nagy tekercs kell. a tavolsag is no, meg egyszeruen eleg sokminden lesz kozel a tekercshez mert a tekercs nagy. persze ami eredetileg 5cm-t tud, az ettol sem fog felmetert.

 

Vajk

Előzmény: Prof (1025)
Prof Creative Commons License 2015.03.17 0 0 1025

A bolti lopásgátlók jelentős része nem rfid komplikációval működik, egyszerűen csak egy pinget küldd vissza, nem jelsorozatot. Az rfid lényege pont az, hogy érdemi információt hordoz a visszasugárzott adatcsomag (az rfid vevők egy része nem is sugároz folyamatosan, hanem impulzusokat küldd és közöttük megfelelő ideig figyeli, hogy van-e válasz). Az erősebb adóval nem fog semmit elérni, mert a passzív oldali adó teljesítményét nem fogod tudni ezzel megváltoztatni, márpedig ez szükséges lenne a hatótáv érdemi növeléséhez). Van ennél jóval nagyobb hatótávú rfid is, csak azt kevéssé fogod tudni ebayen 15 dollárért megvenni.

 

Beléptetőrendszert, akár csak macskára is, nem szokás önálló telepről működtetni, legalább két szinten kell biztosítani (vagyis egy hálózati táp és egy önfelügyelő hálózatfüggetlen táp, nagyjából akku), vagy elfogadod, hogy a macska áramszünet és/vagy telepkimerülés esetén nem tud bejönni, emiatt nyávogni és kaparászni fog adott esetben órákon át.

Előzmény: x20fan (1019)
x20fan Creative Commons License 2015.03.17 0 0 1024

Az rfid oldalán van ez: Maximum effective distance up to 50mm

 

A cabinet lock oldalán meg ez: Unlock time:1 second, Power on < 10 seconds

Szerintem itt még nincs software, csak egy elektromágnes, ami 10 W-ot fogyaszt, és gondolom a túlmelegedés miatt maximálták 10 másodpercben a bekapcsolási időt.

 

Itt inkább az van, hogy nem szeretik az idegen macskákat, ivartalanított mindkettő, hanem vagy félnek vagy harcolnak.

Előzmény: John Zero (1023)
John Zero Creative Commons License 2015.03.17 0 0 1023

1. Az eredeti cikkben 10 cm-t írnak. De lehet, hogy 5 cm is elég, odamegy a macska, odadörgőlődzik..

2. A 10 másodperc az szoftverből jön, azt át tudod állítani 30 másodpercre.

 

Csak egy problémát olvastam: ha a saját macska rájön, hogy a barátait is behozhatja vendégségbe :-)

 

Előzmény: x20fan (1021)
Trike. Creative Commons License 2015.03.17 0 0 1022

"Pavlov" megoldja :)

 

Hamar meg fogja tanulni, ha kattanás után nem jön be, akkor kint marad.

Előzmény: x20fan (1021)
x20fan Creative Commons License 2015.03.16 0 0 1021

12.5 $-ért max 50 mm az nem jó.

Másrészt a max 10 másodpercig behúzva tartható lock se jó, mert sokszor a macska nem azonnal jön be, hanem nézelődik, "gondolkodik" hogy mi legyen, közben ha elenged a lock, akkor nem tud bejönni a macska.

Előzmény: John Zero (1020)
John Zero Creative Commons License 2015.03.15 0 0 1020
Előzmény: x20fan (1017)
x20fan Creative Commons License 2015.03.15 0 0 1019

Az kevés. :(

Ha tekernék a macskaajtó köré meneteket, akkor bele tudnék egy erősebb impulzuscsomagot is küldeni, a bolti lopásgátló kapukhoz hasonlóan, akár több 10 cm-ről is működhet egy papírlap vékonyságú címkével. Csak semmit nem tudok róla, kész rendszert venni meg drága lenne.

Fejleszteni meg az elemeset látom könnyebbnek, valami adó, amit a ráküldött impulzuscsomag kapcsol be, kiküldi a kódot és visszaalszik. Lehet hogy még kód se kellene, csak pl. egy ultrahang kattanás, az idegen macska nyakában nem lesz ilyen. De az ajtón levő tekercsnek vagy állandóan küldeni kell a jelet, vagy érzékelni, hogy közeledik a macska. A legnagyobb baj, hogy nem tudom mikor merül ki az elem, és a macska nem tud bejönni.

Előzmény: Prof (1018)
Prof Creative Commons License 2015.03.15 0 0 1018

Ha nincs közte semmi, kb. 5 cm.

Előzmény: x20fan (1017)
x20fan Creative Commons License 2015.03.15 0 0 1017

Van egy másik ötlet, gyűjtök hozzá infókat. Van a bejárati ajtón egy macskaajtó, az udvarba bejárnak idegen macskák, és szeretném elkerülni hogy bejöjjenek a házba. Hogyan ismerjem föl a saját macskákat? Rfid tag milyen távolságból működik? Pl. ez.

Hol találok két stabil állapotú reteszt? Ezzel szeretném a lengő macskaajtót befelé blokkolni úgy, hogy nem fogyaszt áramot csak az átbillentéskor. Jön a saját macska, érzékeli, hogy nyitni kell, impulzus kinyit, amíg ott a macska vár, ha eltávolodik bezár.

x20fan Creative Commons License 2015.03.15 0 0 1016

Nekem nem tűnt ilyen kényesnek, bár csak 2-3 sketchet töltöttem rá, amikor befejezte a fordítást és kiírta a memória adatokat, akkor nyomtam egyet, és már töltötte is föl. Mintha elég sokat várna az IDE a fordítás elkészülte után, és közben gondolom vár a válaszra, de ez úgy 8-10 másodperc.

Mindegy, a pro mini nem tesztelésre van, ebbe a végleges program kerül, és valószínűleg bootloader nélkül, szóval nem is az usb-soros konverterrel kell írni.

Előzmény: John Zero (1003)
x20fan Creative Commons License 2015.03.15 0 0 1015

Arra figyelj, hogy ha programozóval rakod fel a programot, akkor az felülírja a bootloadert! Természetesen a programozóval vissza is tudod rá rakni.

 

Pont ezt szeretném kipróbálni, hogy bootloader nélkül milyen gyorsan éled. A wc-lámpa threedben derült ki, hogy 1-2-3 másodperc kell a bootloadernek, míg átadja a futást a sketchnek, ráadásul még a 13-as pinen villogtat is. Remélhetőleg bootloader nélkül ezek nem lesznek, hanem ahogy a táp megjön elindul a sketch, és csak azt csinálja amit kell neki. A tápot is úgy van értelme tesztelni, ha nincs bootloader, hogy éledjen, milyen legyen stb.

Előzmény: Vargham (1001)
Törölt nick Creative Commons License 2015.03.14 0 0 1014

A forráskód innét származik, ezt bővítettem 8 mérőhelyig:

http://www.reocities.com/capecanaveral/launchpad/3632/pc_therm.htm

 

A vb6 kódba kellene beiktatni az arduino slave elérését, az arduino max6675 hőfokmérésének a kiolvasásához.

Előzmény: Vargham (1013)
Vargham Creative Commons License 2015.03.14 0 0 1013

Ez így olvashatatlan. :-(

Keress egy forráskód megosztó szolgáltatást, rakd fel oda a kódot, és linkeld be itt.

Vagy tedd fel valami tárhelyre a forrásfájlokat, és linkeld ide.

Előzmény: Törölt nick (1012)
Törölt nick Creative Commons License 2015.03.14 0 0 1012

Akkor ez a kérdés megoldva.

Marad nekem a fő problémám, a VB6-ban írt kód és az arduinós összehozása I2C kommunikációra.

Az I2C buszon Ds1624 hőmérők vannak, erre van a VB6 ban írt program:

VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "mscomm32.ocx"
Begin VB.Form frm_thermometer
ClientHeight = 7710
ClientLeft = 60
ClientTop = 345
ClientWidth = 8055
Icon = "frm_thermometer.frx":0000
LinkTopic = "Form1"
ScaleHeight = 7710
ScaleWidth = 8055
StartUpPosition = 2 'Képernyő közepére
Begin VB.Frame Frame4
Height = 1335
Left = 120
TabIndex = 11
Top = 0
Width = 6135
Begin VB.CheckBox check_start_minimized
Caption = "start minimized"
Height = 375
Left = 4200
TabIndex = 26
ToolTipText = "Start as an icon in taskbar"
Top = 480
Width = 1335
End
Begin VB.CheckBox check_log_to_file
Caption = "log data to file"
Height = 375
Left = 4200
TabIndex = 17
ToolTipText = "log temperatures on text file ""pc_thermometer.txt"""
Top = 840
Width = 1335
End
Begin VB.CheckBox check_farenheit
Caption = "use Farenheit"
Height = 375
Left = 4200
TabIndex = 12
ToolTipText = "Show as Fahrenheit or Celsius (centigrade)"
Top = 120
Width = 1335
End
Begin VB.Label külsődéli
Alignment = 2 'Középre
BackStyle = 0 'Átlátszó
Caption = "külső déli"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2280
TabIndex = 16
Top = 120
Width = 1215
End
Begin VB.Label padlószint
Alignment = 2 'Középre
BackStyle = 0 'Átlátszó
Caption = "padlószint"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 720
TabIndex = 15
Top = 120
Width = 1215
End
Begin VB.Label label_temperature_külsődéli
Alignment = 2 'Középre
Caption = "--.---"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 735
Left = 2040
TabIndex = 14
Top = 480
Width = 1815
End
Begin VB.Label label_temperature_padlószint
Alignment = 2 'Középre
Caption = "--.---"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 735
Left = 120
TabIndex = 13
Top = 480
Width = 1815
End
End
Begin VB.Frame Frame3
Caption = "Sample time"
Height = 2055
Left = 4560
TabIndex = 6
Top = 4440
Width = 1575
Begin VB.OptionButton option_1_min
Caption = "1 min."
Height = 375
Left = 240
TabIndex = 10
Top = 1440
Width = 855
End
Begin VB.OptionButton option_30_sec
Caption = "30 sec."
Height = 375
Left = 240
TabIndex = 9
Top = 1080
Width = 855
End
Begin VB.OptionButton option_6_sec
Caption = "6 sec."
Height = 375
Left = 240
TabIndex = 8
Top = 720
Width = 855
End
Begin VB.OptionButton option_1_sec
Caption = "1 sec."
Height = 375
Left = 240
TabIndex = 7
Top = 360
Value = -1 'True
Width = 855
End
End
Begin VB.Frame Frame2
Caption = "N. of sensor ICs"
Height = 2055
Left = 2400
TabIndex = 1
Top = 4440
Width = 2055
Begin VB.OptionButton option_double
BeginProperty Font
Name = "MS Sans Serif"
Size = 13.5
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 240
TabIndex = 3
Top = 1080
Width = 375
End
Begin VB.OptionButton option_single
BeginProperty Font
Name = "MS Sans Serif"
Size = 13.5
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 240
TabIndex = 2
Top = 360
Value = -1 'True
Width = 375
End
Begin VB.Label Label3
Caption = "double IC (indoor + outside)"
Height = 615
Left = 720
TabIndex = 5
Top = 1200
Width = 1215
End
Begin VB.Label Label2
Caption = "single IC (indoor temperature)"
Height = 735
Left = 840
TabIndex = 4
Top = 360
Width = 1095
End
End
Begin VB.Frame Frame1
Caption = "Com port:"
Height = 2055
Left = 120
TabIndex = 0
Top = 4440
Width = 2175
Begin VB.OptionButton option_com8
Caption = "Com8"
Height = 375
Left = 1200
TabIndex = 25
Top = 1440
Width = 855
End
Begin VB.OptionButton option_com7
Caption = "Com7"
Height = 375
Left = 1200
TabIndex = 24
Top = 1080
Width = 855
End
Begin VB.OptionButton option_com6
Caption = "Com6"
Height = 375
Left = 1200
TabIndex = 23
Top = 720
Width = 855
End
Begin VB.OptionButton option_com5
Caption = "Com5"
Height = 375
Left = 1200
TabIndex = 22
Top = 360
Width = 855
End
Begin VB.OptionButton option_com4
Caption = "Com4"
Height = 375
Left = 120
TabIndex = 21
Top = 1440
Width = 855
End
Begin VB.OptionButton option_com3
Caption = "Com3"
Height = 375
Left = 120
TabIndex = 20
Top = 1080
Width = 855
End
Begin VB.OptionButton option_com2
Caption = "Com2"
Height = 375
Left = 120
TabIndex = 19
Top = 720
Width = 855
End
Begin VB.OptionButton option_com1
Caption = "Com1"
Height = 375
Left = 120
TabIndex = 18
Top = 360
Width = 855
End
End
Begin VB.Timer Timer1
Interval = 1000
Left = 240
Top = 6840
End
Begin MSCommLib.MSComm MSComm1
Left = 2400
Top = 6720
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
RTSEnable = -1 'True
End
Begin VB.Label ad_ertek
Height = 735
Left = 6360
TabIndex = 41
Top = 3120
Width = 1575
End
Begin VB.Label ADC
Caption = "ADC"
Height = 495
Left = 6240
TabIndex = 40
Top = 1560
Width = 1575
End
Begin VB.Label label_temperature_ADC
Caption = "--,---"
BeginProperty Font
Name = "MS Sans Serif"
Size = 13.5
Charset = 238
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 6360
TabIndex = 39
Top = 2280
Width = 1455
End
Begin VB.Label Label_temperature_opoph424el
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4320
TabIndex = 38
Top = 3840
Width = 1695
End
Begin VB.Label OPOPH424EL
Caption = "OPOP H424 EL"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4320
TabIndex = 37
Top = 3000
Width = 1695
End
Begin VB.Label Label_temperature_opoph424be
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4320
TabIndex = 36
Top = 2280
Width = 1695
End
Begin VB.Label OPOPH424BE
Alignment = 2 'Középre
Caption = "OPOP H424 BE"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4320
TabIndex = 35
Top = 1560
Width = 1695
End
Begin VB.Label Label_temperature_boiler
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2280
TabIndex = 34
Top = 3840
Width = 1815
End
Begin VB.Label Boiler
Alignment = 2 'Középre
Caption = "Boiler"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 238
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2880
TabIndex = 33
Top = 3120
Width = 1215
End
Begin VB.Label Label_temperature_fancoilel
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 120
TabIndex = 32
Top = 3600
Width = 1815
End
Begin VB.Label Label_temperature_fancoilbe
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 120
TabIndex = 31
Top = 2160
Width = 1815
End
Begin VB.Label fancoilel
Alignment = 2 'Középre
Caption = "Fan-Coil El"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 120
TabIndex = 30
Top = 2880
Width = 1455
End
Begin VB.Label fancoilbe
Alignment = 2 'Középre
Caption = "Fan-Coil Be"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 120
TabIndex = 29
Top = 1440
Width = 1455
End
Begin VB.Label label_temperature_radiator
Alignment = 2 'Középre
Caption = "--.-"
BeginProperty Font
Name = "MS Sans Serif"
Size = 17.25
Charset = 238
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2280
TabIndex = 28
Top = 2280
Width = 1815
End
Begin VB.Label radiator
Alignment = 2 'Középre
Caption = "radiator"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 238
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2880
TabIndex = 27
Top = 1560
Width = 1215
End
End
Attribute VB_Name = "frm_thermometer"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim address_adc As Double
Dim parancs As Double
Dim feny_ertek As Long
Dim szamlalo


Private Sub ad_szoveg_Click()

End Sub

Private Sub ADC_label_Click()

End Sub

Private Sub Form_Load()
ReadIni
update_com_port
update_sample_rate
If check_start_minimized.Value Then
Me.WindowState = vbMinimized
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
close_iic_bus
SaveIni
End Sub


Private Sub option_1_min_Click()
update_sample_rate
End Sub

Private Sub option_1_min_KeyPress(KeyAscii As Integer)
update_sample_rate
End Sub

Private Sub option_1_sec_Click()
update_sample_rate
End Sub

Private Sub option_1_sec_KeyPress(KeyAscii As Integer)
update_sample_rate
End Sub


Private Sub option_30_sec_Click()
update_sample_rate
End Sub

Private Sub option_30_sec_KeyPress(KeyAscii As Integer)
update_sample_rate
End Sub


Private Sub option_6_sec_Click()
update_sample_rate
End Sub

Private Sub option_6_sec_KeyPress(KeyAscii As Integer)
update_sample_rate
End Sub


Private Sub option_com1_Click()
update_com_port
End Sub

Private Sub option_com1_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

Private Sub option_com2_Click()
update_com_port
End Sub

Private Sub option_com2_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

Private Sub option_com3_Click()
update_com_port
End Sub

Private Sub option_com3_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

Private Sub option_com4_Click()
update_com_port
End Sub

Private Sub option_com4_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

Private Sub option_com5_Click()
update_com_port
End Sub

Private Sub option_com5_KeyPress(KeyAscii As Integer)
update_com_port
End Sub
Private Sub option_com6_Click()
update_com_port
End Sub

Private Sub option_com6_KeyPress(KeyAscii As Integer)
update_com_port
End Sub
Private Sub option_com7_Click()
update_com_port
End Sub

Private Sub option_com7_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

Private Sub option_com8_Click()
update_com_port
End Sub

Private Sub option_com8_KeyPress(KeyAscii As Integer)
update_com_port
End Sub

 

Private Sub timer1_timer()
Dim t As Double
Dim unit As String
If check_farenheit Then
unit = "°F"
Else
unit = "°C"
End If

t = temperature(&H48)

If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read padlószint temperature", vbOKOnly, "Error"
Timer1.Enabled = False
label_temperature_padlószint.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
label_temperature_padlószint.Caption = Format(t, "#00.000")
End If

If option_double Then
t = temperature(&H49)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read külsődéli temperature", vbOKOnly, "Error"
Timer1.Enabled = False
label_temperature_külsődéli.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
label_temperature_külsődéli.Caption = Format(t, "#00.000")
End If
Else
label_temperature_külsődéli.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4A)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read radiator temperature", vbOKOnly, "Error"
Timer1.Enabled = False
label_temperature_radiator.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
label_temperature_radiator.Caption = Format(t, "#00.000")
End If
Else
label_temperature_radiator.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4B)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read fancoilbe temperature", vbOKOnly, "Error"
Timer1.Enabled = False
Label_temperature_fancoilbe.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
Label_temperature_fancoilbe.Caption = Format(t, "#00.000")
End If
Else
Label_temperature_fancoilbe.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4C)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read fancoilel temperature", vbOKOnly, "Error"
Timer1.Enabled = False
Label_temperature_fancoilel.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
Label_temperature_fancoilel.Caption = Format(t, "#00.000")
End If
Else
Label_temperature_fancoilel.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4D)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read opoph424be temperature", vbOKOnly, "Error"
Timer1.Enabled = False
Label_temperature_opoph424be.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
Label_temperature_opoph424be.Caption = Format(t, "#00.000")
End If
Else
Label_temperature_opoph424be.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4E)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read opoph424el temperature", vbOKOnly, "Error"
Timer1.Enabled = False
Label_temperature_opoph424el.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
Label_temperature_opoph424el.Caption = Format(t, "#00.000")
End If
Else
Label_temperature_opoph424el.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H4F)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read boiler temperature", vbOKOnly, "Error"
Timer1.Enabled = False
Label_temperature_boiler.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
Label_temperature_boiler.Caption = Format(t, "#00.000")
End If
Else
Label_temperature_boiler.Caption = "--.---" + unit
End If
If option_double Then
t = temperature(&H32)
If t = ERROR_TEMPERATURE_NOT_READ Then
MsgBox "Unable to read ADC temperature", vbOKOnly, "Error"
Timer1.Enabled = False
label_temperature_ADC.Caption = "--.---" + unit
Else
If check_farenheit Then
t = farenheit(t)
End If
label_temperature_ADC.Caption = Format(t, "#00.000")
End If
Else
label_temperature_ADC.Caption = "--.---" + unit
End If
If option_double Then
frm_thermometer.Caption = label_temperature_padlószint.Caption + " ( out " + label_temperature_külsődéli.Caption + " )"
Else
frm_thermometer.Caption = label_temperature_padlószint.Caption
End If

End Sub

Private Function temperature(address As Integer) As Double

Dim temperature_int As Long
Dim temperature_frac As Long
'address = address(&H48)
address = address * 2
On Error GoTo errors
open_iic_bus MSComm1.object

'/*resettiamo bene il chip*/
IIC_stop
'/**/
IIC_start
IIC_tx_byte &H90 + address
IIC_tx_byte &HAC
IIC_tx_byte &H2

IIC_start
IIC_tx_byte &H90 + address
IIC_tx_byte &HEE

IIC_stop

IIC_start
IIC_tx_byte &H90 + address
IIC_tx_byte &HAA
IIC_start
IIC_tx_byte &H91 + address
temperature_int = IIC_rx_byte(1)

temperature_frac = IIC_rx_byte(0)
temperature = (temperature_int * 256 + temperature_frac) / 128 * 5 / 10
If temperature_int >= 128 Then
temperature = temperature - 256
End If
IIC_stop
Exit Function

errors:
temperature = ERROR_TEMPERATURE_NOT_READ
End Function
Private Function update_sample_rate()
If option_1_sec Then
Timer1.Interval = 1000
ElseIf option_6_sec Then
Timer1.Interval = 6000
ElseIf option_30_sec Then
Timer1.Interval = 30000
ElseIf option_1_min Then
Timer1.Interval = 60000
Else
Timer1.Interval = 1000
End If
End Function
Private Function update_com_port()
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If

If option_com1 Then
MSComm1.CommPort = 1
Timer1.Enabled = True
ElseIf option_com2 Then
MSComm1.CommPort = 2
Timer1.Enabled = True
ElseIf option_com3 Then
MSComm1.CommPort = 3
Timer1.Enabled = True
ElseIf option_com4 Then
MSComm1.CommPort = 4
Timer1.Enabled = True
ElseIf option_com5 Then
MSComm1.CommPort = 5
Timer1.Enabled = True
ElseIf option_com6 Then
MSComm1.CommPort = 6
Timer1.Enabled = True
ElseIf option_com7 Then
MSComm1.CommPort = 7
Timer1.Enabled = True
ElseIf option_com8 Then
MSComm1.CommPort = 8
Timer1.Enabled = True
Else
MSComm1.CommPort = 1
Timer1.Enabled = False
End If

End Function

Private Function farenheit(ByVal t As Double)
farenheit = 32 + 9 / 5 * t
End Function

Private Function log_to_file()
If check_log_to_file Then
Open "pc_thermometer.csv" For Append As #1
Print #1, Date$, Time$, label_temperature_padlószint.Caption, label_temperature_külsődéli.Caption, Label_temperature_fancoilbe.Caption, Label_temperature_fancoilel.Caption, Label_temperature_boiler.Caption, Label_temperature_opoph424el.Caption, Label_temperature_opoph424be.Caption, label_temperature_radiator.Caption, feny_ertek
Close #1
End If
End Function

 

 

 A kérdés, hogyan kell az arduino slave móddal kapcsolatot teremteni a VB6 kódból?

Előzmény: Vargham (1011)
Vargham Creative Commons License 2015.03.14 0 0 1011

> Neked is igazad van, a pro mini rst lábát használjuk DTR kapcsolatra.

Nono! Ez így nem precíz, pont fordítva van. :-)

A RS232 szabványban leírt Data Terminal Ready jelet (ami a szabvány szerint egészen másra való) használjuk arra, hogy reseteljük a mikrokontrollert. A DTR aktív alacsony jel, ez húzza az MCU reset lábát a földre.

Tehát a pro mini nem küld az RS232 szerinti Data Terminal Ready jelet sehova, és nem is dolgoz fel ilyet.

Előzmény: Törölt nick (1010)
Törölt nick Creative Commons License 2015.03.13 0 0 1010

Neked is igazad van, a pro mini rst lábát használjuk DTR kapcsolatra.

Előzmény: Vargham (1009)
Vargham Creative Commons License 2015.03.13 0 0 1009

Hidd el, hogy a pro minin nincs DTR láb, mert az Atmega328-nak nincs ilyen lába.

A DTR jelentése itt le van írva.

Van viszont reset lába, amit a soros kapcsolat DTR jele aktivál, ha bootloaderes feltöltést használsz. De próbálj ki olyan terminál szoftvert, amiben ez kapcsolható. A DTR gombot nyomogatva, az Arduino resetelni fog.

 

Az általad mellékelt rajzon a DTR annyit jelent, hogy oda kell kötni az USB-TTL serial DTR lábát. A rajzon az is látszik, hogy a reset lábon van egy 0,1uF kerámia kondenzátor, aminek a másik végre kell a DTR-t kötni. Érdemes ismerni ezeket a felépítésbeli, működési sajátosságokat. Láttam már olyat, aki a pro mini után egy másik boardra nem tudta feltölteni a programot. (Hova kösse a DTR-t? Resetre? De miért nem resetel? Stb.)

 

De hívhatjuk DTR lábnak is. Csak megtévesztő. ;-) Ha ez így szerepel a pro minin, akkor az nem jó ötlet. Keresgéltem a neten, de az általam talált képeken a pro mininek RST jelölésű kivezetése van, DTR jelű pedig nincs.

Előzmény: Törölt nick (1008)
Törölt nick Creative Commons License 2015.03.12 0 0 1008

Nem, a pro minin is van DTR láb.

Csak tudom mit vettem.

Az FTDI-TTL átalakítón is van, fizikai reset nélkül megy a pro minire a sketch rátöltése.

Előzmény: Vargham (1005)
Vargham Creative Commons License 2015.03.12 0 0 1007

Én erre válaszoltam:

"Ezen a pro minin van DTR láb."

A DTR láb a soros átalakítón van, nem a mikrokontrolleren.

Előzmény: John Zero (1006)
John Zero Creative Commons License 2015.03.12 0 0 1006

Van amelyiken nincs! Az FTDI-sen van, de a kínaiakon nem mindegyiken.

Előzmény: Vargham (1005)
Vargham Creative Commons License 2015.03.12 0 0 1005

Mármint az USB-TTL serial átalakítón van DTR láb.

Előzmény: Törölt nick (1004)
Törölt nick Creative Commons License 2015.03.12 0 0 1004

Ezen a pro minin van DTR láb.

Az Rx Tx lábakat fel kell cserélni az USB csatolón:

 

Előzmény: x20fan (999)
John Zero Creative Commons License 2015.03.12 0 0 1003

Ha nincs DTR akkor az fájdalmas. Átmenetileg próbálkozhatsz a jó reflexszel: amikor úgy látod, hogy kész a program fordítás és indulna a feltöltés, gyorsan nyomd meg a pro mini-n a reset gombot egyszer.

 

Az Arduino-s mikrokontroller reset után vár egy kicsit, hogy kap-e programozási parancsot, de ha nem, akkor továbbugrik és a már korábban feltöltött programot futtatja.

Régen 8 másodpercet várt, de mióta a DTR-es módszer van, ez már minimális idő, ezért kellenek jó reflexek :-)

Előzmény: x20fan (999)
Vargham Creative Commons License 2015.03.12 0 0 1002

Kár. Az a láb kezeli a reset-et bootloaderes feltöltéskor. Érdemes olyan átalakítót venni, amin ez ki van vezetve.

A PL2303-nak van DTR lába, forrassz rá egy kivezetést!

 

Nekünk mondjuk nem voltak jó tapasztalataink ezzel az IC-vel. Hiába kötöttük be a DTR lábat, nem resetelte az MCU-t. Valószínűleg driver probléma lehetett, de nem álltunk neki jelszintet mérni, meg hibát keresni.

A Silabs CP2102 hasonló áron van, WinCE-től kezdve Win 8-ig van hozzá driver, ahogy minden verziójú (Power és Intel architektúrájú) OSX-hez, Linuxhoz, és Androidhoz is. És rögtön működött a DTR lábra kötött reset is.

Előzmény: x20fan (999)
Vargham Creative Commons License 2015.03.12 0 0 1001

Arra figyelj, hogy ha programozóval rakod fel a programot, akkor az felülírja a bootloadert! Természetesen a programozóval vissza is tudod rá rakni.

Előzmény: x20fan (998)
Trike. Creative Commons License 2015.03.11 0 0 1000
Előzmény: John Zero (995)
x20fan Creative Commons License 2015.03.11 0 0 999

Nincs DTR láb, 3.3 V, 5 V, GND, TX és RX van. D-SUN USB to TTL a neve, Pl2303 chippel.

Előzmény: Vargham (997)
x20fan Creative Commons License 2015.03.11 0 0 998

És tényleg, resetet nyomva átmegy a sketch. Na akkor mégis van bootloader, de összerakom az unot programmernek, ki kell próbálni azt is, meg meg akarom nézni a direkt sketch futtatást is.

Előzmény: John Zero (996)
Vargham Creative Commons License 2015.03.11 0 0 997

Illetve az USB-TTL DTR lába és az MCU reset lába között van-e 100nF kerámia kondenzátor?

Előzmény: John Zero (996)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!