Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung mit Temperatur-Zeitmodul


von Ingo (Gast)


Lesenswert?

Hallo,
hat jemand schon einmal Temperaturüberwachung mit dem
Temperatur-Zeitmodul von Conrad (19 55 88) realisiert?
Dazu möchte ich einen Atmel AT89C51AC2 verwenden.
Wäre sehr dankbar für einen kleinen Denkanstoß.

Ciao Ingo

von Ingo (Gast)


Lesenswert?

Hier nochmal ne genauere Frage:
Das Problem für mich ist die Bitfolge, die eine solches Modul sendet.
Es sind nämlich 13 Bits, wobei kein Start/Stoppbit vorhanden ist und
die UART aber eines möchte.

von Tobias Breckle (Gast)


Lesenswert?

die artikelnummer gibts beim online katalog von conrad nicht.

von Darko Sabljo (Gast)


Lesenswert?

Hi
bist du sicher das du da den UART benutzen kannst?
Ich habe ein temp/feuchte Modul, das 24 Bit Daten liefert, diese müssen
seriell eingelesen werden, udn dann in 3x8Bit gespeichert werden. Dies
lässt sich aber nicht über den UART lösen, sonder mann muss sich das
selber stricken.
haste zu dem Teil nen Datenblatt?

gruss
Darko

von Ingo (Gast)


Lesenswert?

Hi,
zu Tobias: Das Ding gibt (gab) es schon ca. 10 Jahre auf dem Markt. Im
aktuellen Katalog ist es nicht mehr zu finden, aber das Datenblatt kann
man noch abrufen!

zu Darko: Selber stricken ist natürlich auch eine Lösung, aber ich
dachte eben an die UART. Das Datenblatt ist sehr mager ( bei Conrad
eben abrufbar ). Es liegt an einem Pin alle 10 oder 1 Sekunde (ist
umschatltbar) eine Clock an. An dem zweiten Pin zum Auslesen der Daten
ist dann der Temperaturwert in 13 Bits dargestellt.
1. Bit -/+  2.-5. Bit 10er Stellen  6.-9. Bit 1er Stellen und 10. -
13.Bit 1/10er Stellen.
Also für Start/Stopp ist da nichts übrig.
Bin auch erst seit 3Monaten in diesem Beruf und bin da noch nicht so
kreativ!
Aber schon mal Danke im Voraus für eure Hilfe!!

Ciao Ingo

von Simon Langhof (Gast)


Lesenswert?

Es ist in meinen Katalogen drin (2004, der kleine und der große). S.
877, rechts oben.

von Karlheinz Reiher (Gast)


Lesenswert?

Hi
habe mit diesem Modul vor etlichen Jahren unsere Fußbodenheizung über
Thermoexpansionsventil temperaturabhängig gesteuert. Da das Conradmodul
immer wieder die Grenzwerte vergessen hatte, möchte ich das über einen
AVR abwickeln.
 Das serielle Signal halte ich nichtfür 'UART-geeignet'. Es hat einen
verlängerten 1. Clockimpuls, von 1,25 ms Dauer, die Folgeimpulse sind
dagegen nur 0,125 lang. Man scant  mittels Timer die Impulslänge und
beginnt die Datenübernahme ab einem erkannten 1,25 ms Impuls. Eine
andere schnelle Lösung, die bei mir recht stabil auf einem ATMega 8
läuft, ist in Bascom mit shiftin unter Angabe der Bitlänge
realisierbar. Allerdings stimmt wahrscheinlich aus Timingproblemen das
mit dem 13 bit nicht so ganz. Erst beim Einlesen in eine long-Variable
mit 18 bit ergibt sich ein stabiles Ergebnis. Werde, wenn mal Zeit ist
den Code noch mal aufarbeiten.
frdl. Grüße Karlheinz

von Darko Sabljo (Gast)


Lesenswert?

Hi
ehm.. so ähnlich geht mein ELV Modul, aber ich würde da nix mit timer
machen, sondern einfach auf die Flanke des Clocks den Seriellen Wert
auslesen. Ausserdem ist das nicht UART Tauglich wie Karkheinz Reiner
schon sagt.

hier z.B. ein Codeschnipsel um eine LOW-HIGH Flanke abzufragen

;LH Flanke abfrage

  LHabfrage1:
    sbic PINC , 1
    rjmp LHabfrage1


  LHabfrage2:
    sbis PINC , 1
    rjmp LHabfrage2

dann speicher ich bei mir (es sind 24 Bit) das ganze in 3 Registern ab

byteout:

    cpi r20 , 8
    brsh j24to8_1
    lsl r21
    in r24 , PINC
    andi r24 , 0b00000001
    or r21, r24
    inc r20
    rjmp bitout_out

  j24to8_1:
    cpi r20 , 16
    brsh j24to8_2
    lsl r22
    in r24 , PINC
    andi r24 , 0b00000001
    or r22, r24
    inc r20
    rjmp bitout_out

  j24to8_2:
    cpi r20 , 24
    brsh bitout_out
    lsl r23
    in r24 , PINC
    andi r24 , 0b00000001
    or r23, r24
    inc r20


  bitout_out:
ret

und wandel diesen BCD Codierten Zahlenwert in ASCII mit

BCD2ASCII:
andi temp1,0b00001111
ori temp1,0b00110000
ret

also so ähnlich würd ich das bei dir auch machen :)
Zwischendrin sind noch ein paar Zeilen, wo ich z.B. den zu wandelden
Register Wert nach Temp1 verschieb... das hab ich jetzt mal nicht
dazugeschrieben.
Wenn du willst, kann ich dir aber gerne den kompletten Code schicken

Gruss
Darko

von Ingo (Gast)


Lesenswert?

Danke Darko,

das hört sich doch schon mal nicht schlecht an! Den Code brauchst du
mir nicht komplett schicken, da ich das ganze nur in C auf nem
Keil-Compiler aufziehe (aufziehen muss :-)
So dann mache ich mich mal ans Werk.
Ciao Ingo

von Darko Sabljo (Gast)


Lesenswert?

kein thema :)
falls du fragen haben soltest, frag einfach :-)

grüssle
darko

von Stöbels (Gast)


Lesenswert?

Ihr könnt auch einfach im Microkontroller Buch "Bernd-Dieter Schaaf" 
nachschauen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.