mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung mit Temperatur-Zeitmodul


Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die artikelnummer gibts beim online katalog von conrad nicht.

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon Langhof (Gast)
Datum:

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

Autor: Karlheinz Reiher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kein thema :)
falls du fragen haben soltest, frag einfach :-)

grüssle
darko

Autor: Stöbels (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr könnt auch einfach im Microkontroller Buch "Bernd-Dieter Schaaf" 
nachschauen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.