PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Temperaturmessung mit digitalem Sensor TSIC 308



Plasmagerd
16.11.2008, 20:58
Hallo Leute,
hier mal kein Problem sondern nur ein kleiner Bericht was der Markt so hergibt.
Ich habe diese Woche mal ein paar Versuche mit den Temperatursensoren TSIC (gibts als Typ 208 und 308) der Firma Hygrosens gemacht. Die Dinger gibts beim Reichelt für ca 5Euro, was nicht gerade billig ist, dafür sind sie einfach zu handeln. Die Sensoren kann ich "wärmstens" empfehlen, sie sind angegeben mit einer Abweichung von 0,5°C über einen Bereich von -50°C bis 150°C. Das Tolle daran ist sie digitalisieren bereits im Chip so das nur ein digitaler Port am µC benötigt wird. Ein 100n Kerko an die Versorgungsbeinchen und schon kanns losgehen, kein Hühnerfutter auf der Platine und kein analoger Port verbraten. Die Sensoren schieben den Messwert seriell, bestehend aus 2 Byte, mit 11Bit auf die Leitung, was eine Auflösung von ca 0,1°C ergibt. Die Teile sprechen sehr gut an, dem kleinen TO92 Gehäuse reicht ein Anhauchen und schon schnellt die Temperatur nach oben. Die Temperatur wird bei meinen Typen mit 10Hz ausgegeben. Ein Bit soll nominal 128us lang sein. Bei meinen Versuchen habe ich festgestellt das diese Zeit doch etwas schankt, sie wird mit steigender Temp. grösser. Nun denn, hier meine Bascomroutine zum testen. Sie läuft ohne externen Interrupt (Sensoren geben leider ungefragt ihre Info raus) und erkennt ein vertauschtes High/Lowbyte. Würde mich freuen wenn jemand den Code brauchen kann, viel Spass damit... (ich weiss blos nicht wie ich hier drin Code posten kann, na dann als txt) Achja ich will die Sensoren an meine Wakü hängen. :-)

hexabotix
16.11.2008, 21:51
Mahlzeit!

Danke für Info und Software! Wollte mich mit den Teilen gelegentlich befassen. Allerdings heissen sie TSIC 206 bzw. TSIC 306 (also null sechs und nicht null acht). Reichelt-ArtikelNr. TSIC 306 SO8. Es gibt sie nicht nur in der Bauform S08 (8 Pin, SMD) sondern auch als TO92 (3 Pin, bedrahtet).

Rage_Empire
17.11.2008, 14:30
(ich weiss blos nicht wie ich hier drin Code posten kann, na dann als txt)

Guck mal, was es hier schönes gibt:
https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=30

da kannst du deinen source hochladen, wenn du magst.

Plasmagerd
17.11.2008, 20:51
Oh no, natürlich heissen die Sensoren TSIC 306 und 206.... Guter Tip :-s
(hab den Code jetzt auch noch bei den Codeschnitzeln gepostet)

MOsfetgrille
14.10.2009, 18:28
Ich weiß ich bin etwas spät drann, aber kann es sein das in dem code fehler sind?
Also mein Bascom erkennt z.B die Zeile :
" 'enable interrupts " nicht an weil es durch den Apostroph ja zu nem Kommentar wird!
Und warum:
Ddrb = &B00000000
Portb = &B00000000

Ddrd = &B10111110 'pind.6 ist input für tsic; portd.2 ist buzzer
Portd = &B00000001

Ddra = &B11000000
Porta = &B00000000

Ddrc = &B11111111
Portc = &B00000000

wird port b a und c belegt ? für timer oder so?
also soweit ich das dem code entnehmen kann braucht ma ja nur pind.6 und portd.2

Ach ja und was für einen Zweck soll denn der Buzzer haben?
Ist doch praktisch so ein pieper oder?

sry bin noch ziemlicher noob!
MFG Fet

Plasmagerd
15.10.2009, 18:19
Hallo Fet,
kein Problem, ich habe das Code-Posting grade selber mal getestet. Ist furchtbar :-)

Auf die Schnelle:
Mit dem Buzzer erkenne ich wie schnell der Code läuft (da der µc ja auf den TSIC wartet bis er das Start-Signal erkennt). Ein "buzz" heisst Code durchlaufen. (Mein Buzzer mach bei einer Pegeländerung von 0 auf 5V oder von 5 auf 0V ein akustisches "Knack", dh ja es ist ein pieper, aber er kann mit DC nichts anfangen da er beim Anlegen der SPG nur einmal knackt und nicht piept)

Um den Sensor zu lesen brauchst du nur pind.6 (pin fuer Input, port fuer output). Die anderen Outputs brauchst du nicht, sie dienen zur Analyse)

PS.: Ich war auch mal ein noob, kein Problem ... viel Erfolg

Gruss

MOsfetgrille
16.10.2009, 13:16
HI,
Danke für die schnelle Antwort!
Also und die ganzen anderen ports? Sind die alle dafür belegt? Eigentlich wird doch dann nur buzzer und TSic benötigt!
Display brauche ich ja auch noch :D
Edit:
hab das jetzt mal probiert,
also mehr we "hallo" zeigt er mir nicht an
mal sehen wo der da hengt also Tsic is ok signal liegt am atemga32 an
edit2:
habs jetzt laufen! waren ein paar fehler drinne mit >< usw
lade das neue gleich hoch

MFG MOsfetgrille

rt1970
26.12.2010, 00:23
Und wenn ich ATMEGA 256 mit 16MHz habe? Welchen Wert muss ich ändern? Einfach nur den Faktor verdoppeln? Weiterhin habe ich nur Timer0 frei. Sollte aber kein Problem sein, oder?

Hab es am laufen, aber bei mir scheint es zu warm zu sein ;-)
Anzeige sagt mir 89,3 C anstatt 19,8 C...

Habe Werte in Do...Loop verdoppelt und High/Low Erkennung auch verdoppelt...