Forum: Mikrocontroller und Digitale Elektronik Thermometer-Steuerung


von Robin (Gast)


Lesenswert?

Hallo liebe Forengemeinde,

ich bin noch µC-Anfänger (habe erst 2 Projekte realisiert) und brauche 
eure Hilfe.
Ich habe folgendes Thermometer:
[[http://www.produktinfo.conrad.com/datenblaetter/175000-199999/192147-as-01-de-LED_Thermometer.pdf]]

Jetzt würde ich gern eine Steuerung entwickeln, mit welcher ich die 
gemessene Temperatur mit einer einstellbaren Temperatur vergleichen kann 
um dann ein Relais zu schalten. Leider komme ich an dieser Stelle nicht 
weiter.

Meiner erste Idee war folgende:
1) Die Leitungen zwischen dem ICL 7107 und den 7-Segmentanzeigen 
anzpafen und in die PC bzw PD-Eingänge eines Atmega8 geben. Dadurch 
könnte ich doch theoretisch erkennen, welche Temperatur im Bereich von 
minus unendlich bis 99 °C gerade gemessen wird. Leider werden die 
Eingänge hier schon knapp.

2) Die gemessene Temperatur mit einer vorgegebenen Temperatur 
vergleichen und gegebenenfalls das Relais schalten.

Bis hier her würde das evtl. noch funktionieren oder?

3) Die Vergleichstemperatur will ich aber auch einstellen können. Also 
brauche ich hier schon wieder die PC und PD als Ausgänge für weitere 
7-Segment-Anzeigen und die Taster zum Einstellen der Temperatur. 
Spätestens hier kommt der Atmega8 an seine Grenzen bzgl. Ein-/Ausgänge.

Ich möchte auch nicht zwischen "Messen" und "Temperatur einstellen" hin 
und her schalten müssen.

Habt ihr eine Idee? Bitte bedenkt, ich bin noch Anfänger ;)

Viele Grüße

von Ernst L. (extraterrestrial)


Lesenswert?

1. Wieso nimmst du dieses Modul zur Temperaturmessung und nicht einfach 
einen Sensor an deinen µC?

2. Zur Ansteuerung beliebig vieler 7-Segment-Anzeigen brauchst du nur 3 
Ausgänge und pro Digit ein Schieberegister (Schieberegister sind eine 
Möglichkeit, gibt auch andere).

von Robin (Gast)


Lesenswert?

zu 1.
habe ich versucht, leider bekomme ich das nicht hin. Mein µC zeigte 
immer die gleiche Temperatur an. Habe es dann aufgegeben.

zu 2.
Kann ich nicht eigentlich auch einfach einen atmega16 oder 32 nehmen? 
Der hat doch dann genügend Ausgänge oder?

- Anzahl Eingänge für Kopplung mit Temperatur-Modul: 15 (2 Zahlen-Module 
á 7 Segmente  + das Minus-Zeichen)
- Anzahl Ausgänge für 7-Segment-Anzeigen zur Temperatureinstellung: 9 (7 
für Segmentanzeige + 2 zum ansteuern per Multiplexing) (Evtl. noch 1 
mehr fals ich auch Kommastellen einstellen will)
- 4 oder 5 für Taster und noch 1 oder 2 für LEDs

Sind ungefähr 30. Sollte doch mit Atmega16 machbar sein oder?


Frage:  Ist ein Atmega16 / 32 komplizierter zu programmieren als ein 
8er?

von Michael (Gast)


Lesenswert?

Robin schrieb:
> zu 1.
> habe ich versucht, leider bekomme ich das nicht hin. Mein µC zeigte
> immer die gleiche Temperatur an. Habe es dann aufgegeben.

Die Daten vom Display abzugreifen, wird bestimmt nicht einfacher. Also 
nur nicht zu früh aufgeben. Wie hast du es denn probiert?

von Robin (Gast)


Lesenswert?

Das ist schon 2 Jahre her. Hatte auch hier im Forum einen Beitrag 
Beitrag "DS18S20 bringt immer 127"

Wollte es mir einfach machen und bereits ein Thermometer-Modul benutzen.

Wieso ist denn das Abgreifen der Daten schwierig? Ich kann doch anhand 
der aktiven Segmente der 7-Segmentanzeigen herausbekommen, welche 
Temperatur anliegt. Ist sicher etwas umständlich realisiert aber auch 
nicht sehr fehleranfällig oder? Jedes einzelne Segment der 
7-Segment-Anzeigen auch einen Eingang am Atmega und dann bekomme ich ja 
raus, ob da Strom anliegt oder?

von Karl H. (kbuchegg)


Lesenswert?

Robin schrieb:
> zu 1.
> habe ich versucht, leider bekomme ich das nicht hin. Mein µC zeigte
> immer die gleiche Temperatur an. Habe es dann aufgegeben.

Daran solltest du aber arbeiten.
Sich an die fertige Thermometerschaltung an die 7-Segment Ausgänge zu 
klemmen ist
a) eine Notlösung
b) mit Sicherheit nicht einfacher als einen DS1820 auszulesen, für den
   es fertige Funktionen hier in der Codesammlung gibt.

Zur Not könnte man sich auch an die Eingangsspannung des ICL klemmen und 
dort einfach mit dem ADC die Messung machen. Aber im Grunde ist das 
ziemlich sinnlos, 2 Schaltungen parallel zu haben. Denn wenn der Sensor 
erst mal am Mega8 hängt und die Temperaturen zb auf einem 2-zeiligen LCD 
ausgegeben werden, braucht kein Mensch mehr die Originalschaltung.

Mega8
DS1820
LCD
Poti zum Einstellen der Schalttemperatur
Relais samt Hühnerfutter zur Ansteuerung

mehr brauchst du nicht.
Und deine Thermomteterschaltung kannst du zu den Akten legen.

von Robin (Gast)


Lesenswert?

welcher µC ist denn dem atmega8 am nächsten?

atmega16 oder 32?

von Ernst L. (extraterrestrial)


Lesenswert?

Also nur mal so als Alternative:

Ich habe diesen Sensor hier an nem Arduino 2009 am laufen:
http://www.play-zone.ch/de/dht-temperatur-und-feuchtigkeitssensor-breakout.html

Belegt gerade mal 1 Pin.

Die Temperatur wird mir auf 7-Segment anzeigen mit Schiebregistern 
(74hc595) ausgegeben, belegt wie oben erwähnt 3 Pins.

Total also vier Pins.

Das ganze bringt man an nem verregneten Samstagnachmittag zum laufen, 
selbst wenn man es zum ersten Mal macht.

Da beim Arduino 2009 der Atmega gesockelt ist, kann man das Board auch 
nur zum Programmieren verwenden und den µC dann auf ne eigene Platine 
setzen, wenn man möchte, so kommt man sicher nicht teurer als mit einem 
herkömmlichen µC, nur viel einfacher.

Gruss
E.T.

von Robin (Gast)


Lesenswert?

Hallo,

kann ich denn eine 7-Segment-Anzeige an einen 74HC595 anschließen? 7 
Segmente á 20mA übersteigt doch die 70 zulässigen mA für das 
Schieberegister-

von Ich (Gast)


Lesenswert?

Höhere Widerstände nehmen.
Den Unterschied zwischen 10 mA und 20 mA sieht man nur im direkten 
Vergleich.

von Ernst L. (extraterrestrial)


Lesenswert?

Ja, würde nicht mehr als 10mA belasten und den Dezimalpunkt natürlich 
direkt anschliessen.

Finde, 10mA ist für Anzeigen bis 2cm Ziffernhöhe hell genug, ansonsten 
braucht es halt zusätzliche Treiber.

von Robin (Gast)


Lesenswert?

Aso okay, ist ja ziemlich peinlich für mich. Ich dachte, durch einen 
höheren Widerstand nimmt nur die Spannung weiter ab. Das heißt ich 
dachte bisher, dass bspw. durch einen doppelt so hohen Widerstand die 
LED dann gar nicht mehr leuchtet und nicht einfach nur die Hälfte an mA 
verbrät. Sorry. Da hatte ich wohl einen Denkfehler.

von Karl H. (kbuchegg)


Lesenswert?

gibt ja auch eine Variante eines 595, die mehr Strom kann.

Oder gleich ein 2-zeiliges LCD.
Ist vom Platzverbrauch her auch nicht mehr soviel größer als 2(!) 
komplette Temperatur-Anzeigen und braucht deutlich weniger Strom. 
Einziger Nachteil: zumindest Standard-LCD sind auf größere Entfernung 
nicht mehr so gut ablesbar wie ein paar 7-Segment. Dafür muss man sie 
aber auch in der Nacht nicht dunkel schalten, damit man schlafen kann 
:-)

von Robin (Gast)


Lesenswert?

Wie hoch darf denn eigentlich Strom und Spannung an den Eingängen des 
atmega8 sein?

Ich möchte von der Leitung A/D-Converter zur 7-Segment-Anzeige einen 
Abzweig zu meinem µC legen. Auf der Leitung sollten laut Datenblatt wohl 
3V liegen. Es ist kein Widerstand zwischengeschaltet.

Kann ich einfach einen Abzweig legen? Mehr als 20mA sollten nicht auf 
der Leitung sein und der Atmega verträgt doch 40mA oder?

von ... (Gast)


Lesenswert?

Robin schrieb:
> kann ich denn eine 7-Segment-Anzeige an einen 74HC595 anschließen? 7

Einfacher ist, ein fertiges 16x2 LCD Modul zu verwenden. 6 Pins sollten 
dafür zu verkraften sein.

von Robin (Gast)


Lesenswert?

Danke für deine Antwort. Ich habe mich aber glaube etwas unklar 
ausgedrückt.

Ich habe heute nochmal versucht, die Temperatur mit dem µC zu messen. 
Bekomme das nicht hin. Deshalb die Notlösung mit dem 
Temperaturmessungs-Modul (welches mit einem A/D-Wandler betrieben wird). 
Dieser steuert die 7-Segmentanzeigen an und gibt dort die Temperatur an.

Ich möchte nun von jedem dieser einzelnen Verbindungskablen vom 
A/D-Wandler zu den Segmentanzeigen ein "Stück" vom Strom abhaben und 
diesen in ein (bzw. mehrere) Schieberegister leiten, um darüber später 
am µC feststellen zu können, welche Temperatur gemessen wurde.

Klar geht das wie bereits von euch geschrieben wurde einfacher indem 
gleich mit dem µC gemessen wird aber ich bekomme das 1. nicht hin und 2. 
habe ich das Temperaturmess-Modul bereits da. Es liegt sowieso nur rum.


Kann ich so einfach eine Leitung vom Verbindungskabel (A/D-Wandler zu 
Segment-Anzeige) zum Schieberegister ziehen?

von Robin (Gast)


Angehängte Dateien:

Lesenswert?

Anbei habe ich mal aufgezeichnet, wie ich mir das gedacht habe. Leider 
habe ich Angst, dass es nicht funktionieren könnte, da der Strom, 
welcher bei eingeschalteter Segmentanzeige über den A/D Wandler 
abgeführt wird zu hoch ist. Ich werde aber aus dem Datenblatt nicht 
schlau.

Ich werde blaue 7-Segmentanzeigen verwenden. Diese benötigen 3,3 Volt 
bei 20mA.

Funktioniert das?

von spontan (Gast)


Lesenswert?

Ich werd aus der Zeichnung nicht schlau.

von Karl H. (kbuchegg)


Lesenswert?

Sei mir nicht böse.
Aber das ist doch Irrsinn was du da vor hast.

Und das alles nur, weil du dich nicht mit dem DS18S20 beschäftigen 
willst.

von Robin (Gast)


Angehängte Dateien:

Lesenswert?


von Robin (Gast)


Angehängte Dateien:

Lesenswert?

@kbuchegger

Also okay, du hast mit Sicherheit mehr Erfahrung als ich und ich werde 
mich wohl nochmal mit dem DS18S20 beschäftigen.

Ich fange nochmal neu an, evtl. hatte ich ja damals auch eine kalte 
Lötstelle oder irgendetwas. Hoffe diesmal klappt alles.


Nur weil mich die Neugier treibt:
Hätte denn meine Idee mit dem Optokoppler (siehe Anhang) funktioniert 
oder ist das alles nicht so einfach, wie ich mir das das vorstelle?

Viele Grüße und wünscht mir Glück bei meinem DS18S20² Vorhaben

von Karl H. (kbuchegg)


Lesenswert?

Robin schrieb:
> @kbuchegger
>
> Also okay, du hast mit Sicherheit mehr Erfahrung als ich und ich werde
> mich wohl nochmal mit dem DS18S20 beschäftigen.


Es gibt haufenweise Projekte mit dem DS18S20
Sowohl hier im Forum als auch in der Codesammlung als auch im Web.

Und wenn du mit C nicht klarkommst - in BASCOM ist ein DS18S20 
Kinderkram, weil dir BASCOM den komplizierten Teil schon abnimmt. Auch 
dazu gibt es massenhaft Beispielcodes hier im Forum und im Web.

Einzig das gleichzeitige Multiplexen der 7-Segment mit der DS 
Ansteuerung könnte knifflig werden. Daher auch: Ausweichen auf LCD. Ist 
auch mit dem Hintergedanken, dass ja eigentlich 2 Temperaturen 
anzuzeigen sind, besser vereinbar.

Auch hier: LCD ist mit BASCOM eine triviale Sache.


Und die Sache mit der Eigenerwärmung:
Sagt ja keiner, dass man den DS volle Pulle ständig wandeln lassen muss. 
Alle 2 Sekunden mal eine Wandlung und der DS bleibt kühl. Gleichzeitig 
entschärft das dann auch das Multiplexproblem. Könnte man sogar als 
Feature verkaufen: Man merkt wann der DS misst, wenn die 7_Segment mal 
kurz blinzelt. Aber wie schon ein Dutzend mal gesagt: Ich würd keine 
7-Segment nehmen, sondern ein LCD, solange es keine triftigen Gründe 
gibt, die da dagegensprechen. "Ich hab noch nie eines benutzt"! ist kein 
triftiger Grund.

von Karl H. (kbuchegg)


Lesenswert?

Und wenn dir der DS nicht zusagt.

(Wink mit dem Zaunpfahl)

Der ICL auf dieser Conrad Schaltung ist ein ADC. Der misst eine 
Spannung. Nämlich am Pin 31. Dort ist der dortige Temperatursensor 
angeschlossen.

Spannungen messen kann dein Mega auch. Der hat ebenfalls einen ADC 
eingebaut.


Manchmal muss man den Weg gehen, den du gehen willst und sich an die 
Anzeige klemmen. Ja, das kommt vor. Wenn man überhaupt nichts anderes 
hat als die Anzeige und auch sonst an nichts anderes herankommt.
Wenn aber, so wie bei dir, noch alles möglich ist, dann ist das der 
komplizierteste Weg überhaupt.

von Harald W. (wilhelms)


Lesenswert?

Robin schrieb:

> 1) Die Leitungen zwischen dem ICL 7107 und den 7-Segmentanzeigen
> anzpafen

Wenn es schon ein 71xx sein soll, nimm einen 7109. Bei dem ist
die Anaogseite weigehend identisch mit dem 7107, der Ausgang ist
aber 12Bit binär. Das kann man problemlos in einen uC einlesen
und der kann ausgangsseitig auch wieder eine Anzeige treiben.
Gruss
Harald

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.