Någon som kan hjälpa mig med att mäta temperaturen med SMT160 i VB6? Att läsa den via Com1 blir lurigt,om du har GamePort på datorn så är det den bästa lösningen För några år sedan lyckades jag läsa från comporten men nu när VB intresset har vaknat igen så har kunskapen dött lite. Så att läsa från comporten ska vara möjligt... Jag köpte utvecklingskortet 73-087-60 från ELFA, och läste via serieporten. Oki på det har inte kollat,men det låter jättebra.Men ! min metod är jättenkel. Jag är dålig på seriekommunikation,har alltid tyckt att dessa protokoll är "pain in my ass" Men då måste det väl tilkomma lite extra elektronikbygge. Gått över till att försöka få gameporten att visa temperaturen men det går inte heller. Förmodligen fel adress GamePorten kan ha adress mellan 513 -520, du får kolla i Enhetshanteraren. Vart ändrar jag portAdrJstick = 520 någonstans? Ok Vi håller oss till TempData.exe. Du ändrar Portadress under Konfig i Menyn TempData.vbp Form_Load När du hittat rätt adress så ändra raderna till de nya värdet tex. 400 Skumt...144,7 visar den oavsett vilken adress jag väljer förutom 143,6 på 400 serien. Näää det är inget fel på din lödning det ser jag på dom resultat du får. Vi får göra så här för att få ordning på det hela. Jag frågar igen för säkerhets skull. Var får du 400 - 407 ifrån är det kanske Hexvärde du anger ? Jag fick ordning på det genom att aktivera den inbyggda spelporten och där fungerar det bra med 204. Tog bort spelporten på soundblastern. Härligt då har du koll på läget ser att du använder 204 Hex. Då är dagen räddad, ska snabbt iväg att handla ett par smt till. Har du även gjort något program för att läsa flera och visa flera temps samtidigt? Bra jobbat, återkom om det strular jag har totalkoll på detta projekt. Ang SoundBlaster så hade det funkat där också. Du angav 400-407 det är ju Hex. Eftersom du väckt mitt intresse för GamePorten igen skall jag kompletera med ett ex. på 4 SMT160 Låter trevligt, ser med förväntan fram mot det!!! Ska även testa på soundblastern. Har lagt upp ett förslag till lösning i Programarkivet . 4 st SMT160-30 på GamePortenMäta temperatur med SMT160
Jag får inte till det trots otaliga försök med alla möjliga varianter av koder. Jag kör igenom comport1. Tacksam om någon har en kodsnutt för detta.Sv: Mäta temperatur med SMT160
Annars gäller Parallellporten . Ta hem Programarkivet:Temperatur med SMT 160-30 och läs noga all den information som finns där.
Edit
Pelle har lyckats igen.Jag skulle editera lite i bifogad text,när jag sedan sparade så försvann hela
den bifogade .zip filen och det gick inte att lägga tillbaka den. Nu finns den som Ny Programarkivet:Temperatur med SMT 160-30Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Får nog börja läsa på seriella protokoll USB mm.
Rent principiellt så är SMT160-30 byggd för parallell transmissionSv: Mäta temperatur med SMT160
Skulle vilja se en standard som man förstår XOn/Xof 8 bitar, handshake ,paritet mm. mm. Phuuu.
Det blir för mycket samtidigt som det var långsamt, nu är det andra takter med USB.Två snöre !
Jag får väl börja tänka om ;-) det är inte alltid lätt att lära gamla hundar var dom skall skita !Sv: Mäta temperatur med SMT160
SMT160-30 lämnar ju pulser upp till 4 khz dvs man jämför totala antalpulser med hur många som var höga.
GetTemp := (cntHigh / totNumOfSamp - 0.32) / 0.0047
Edit: Oki missade informationen om 73-087-60 Elfa. Intressant jag tror jag skall testa.
Lite konfunderad över omfattningen - 25 till + 115. Min variant mäter -60 +145Sv: Mäta temperatur med SMT160
...försöker läsa av gameporten med SvenPons program men får bara fram 143,6 grader och jag betvivlar på att det är så varmt ute nu.
SMT160 är kopplad till ben 1,2 och 4 till gameporten och det fungerar fan mig inte....vad kan det vara för fel???Sv: Mäta temperatur med SMT160
Min dator kör på adress 520 använder du den adressen så är det förmodligen fel Testa 513 den vanligaste.
Att du får 143.6 tyder på att det är rätt kopplat.
Här skall du ändra
<code>
portAdrJstick = 520 ' Min dator har JoyStickadress 520
</code>Sv: Mäta temperatur med SMT160
Om jag testar ditt tempdata.exe och ändrar så händer det likväl inget. Min spelport ligger på 400-407.Sv: Mäta temperatur med SMT160
Jättemystiskt att du har adress 400-407,trodde att 201 Hex - 208 Hex var standard.
Dvs 513 - 520 decimal.Du får ändra där till 400 som test sedan till 401 osv till du hittar rätt.
Du kan ju också ändra i default Form_Load i tempData.vbp och sedan kompilera om.
Hav tröst det funkar utmärkt.Du kan ha 4 st SMT160-30 anslutna på GamePorten.
Funkar inte någon av 400 - 407 så får du vandra genom 513 - 520
Att du läser 143.6 visar att elektroniken är rätt kopplat.Om det var fel där skulle du läsa - 69Sv: Mäta temperatur med SMT160
portAdrJstick = 520 ' Min dator har JoyStickadress 520
inputretur = 889 ' till nya värdet
<code>
Private Sub Form_Load()
Dim i As Long
frmTmpData.Show
'De flesta datorers standard JoyStickadress är 513 decimal
portAdrJstick = 520 ' Min dator har JoyStickadress 520
portAdrLpt = 889 ' Lpt1Adr 888 + 1 Status signaler
'Detta exempel är kopplat till knapp 1 ( Mask1)
'tempC = GetTemp(portAdrJstick, Mask1) - 1.5
'**************************************
'Skall du köra mot Lpt1 så gäller raderna nedan
' -1.1 är min kalibrering, har funnit att på min dator
'visas resultatet 1.5 C för mycket
'Parallellport pinne 11
'Number of tic marks
inputretur = 889
DoEvents
End Sub
</code>Sv: Mäta temperatur med SMT160
Ska kolla om alla lödningar är okSv: Mäta temperatur med SMT160
Min kod på TempData är en djä.. soppa ser jag .Har inte användt GamePorten på flera år.
Verkar som du får adress 889 hur du än gör.Återkommer skall koppla min GamePort igen.Sv: Mäta temperatur med SMT160
Ta hem mitt uppskick ParallellportNy Programarkivet:Parallellport experiment
Där kollar du genom att Trycka Läs från Aktiv Adress ändra Aktiv Adress till 1024 - 1031 eller 513 - 520
När du träffar rätt adress kommer du att läsa 248 eller 120 det blir mest 248.
Tryck upprepade gånger så kommer den att växla mellan 248 och 120
står det 255 så är det fel adress.Sv: Mäta temperatur med SMT160
I Enhetshanteraren står det Hexvärde kör du XP ? Har du installerat port95Nt.exe .
Ett måste för XP . Det skall finnas en DlPortIO.sys i System32/DriverSv: Mäta temperatur med SMT160
Går det att nollställa .dat filen med statistiken?
Får tacka så mycket för hjälpen!!Sv: Mäta temperatur med SMT160
Ang statestik så får du göra så här .Tillverka en Ny .dat under Arkiv.
Döp den till nått annat än mitt stuk börja mäta. Ändra koden i vbp till den Nya sökvägen.
Förslag Ändra här. Döp din nya statestik tex .S_2004.dat
Du Måste köra Temperatur.exe för att få DataBasen uppdaterad
Den väntar i 20 sek innan den börjar mäta du får ju även ändra adresser i den.
ändra denna rad till DataFile = App.Path & "\T_" & Year & ".dat" DataFile = App.Path & "\S_" & Year & ".dat"
Kompilera om till FastCode
<code>
Private Sub Form_Activate()
Year = Format$(Date, "yyyy")
timeNow = Format$(Now, "hh:mm")
thNow = CLng(Format$(Now, "hh"))
tmNow = CLng(Right$(timeNow, 2))
lblTempC = Format$(tempC, "0.0 C")
DataFile = App.Path & "\T_" & Year & ".dat"
lblSthlm = lblSthlm & " " & Year
tempC = GetTempData(516, Mask1) - 1.1 ' OBS ändra till detta
lblTempC = Format$(tempC, "0.0 C")
Call GetQnhAndPlott
Call GetAndPlott
Call VisaData
End Sub
</code>Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Jag pratade om decimal då blir det 1024 - 1031
Du har alltså 2 GamePort möjligheter därför denna förbistring i vårt resonemang.
Teoretiskt kan du ha 8 SMT160-30 igång samtidigt.Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Sv: Mäta temperatur med SMT160
Programarkivet:4 st SMT160-30 tempgivare på GamePorten
Här finns grundprinciperna , sen ankommer det på dig att bygga vidare.