www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Anfängerfrage: Temperatursensor steuert Gerät über LPT port


Autor: Rocco L. (kaufparkangucker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte für unser Labor einen beheizbaren Schüttler bauen.
Ich habe mir das so vorgestellt das eine Lampe (100Watt) oder eine 
Heizfolie - oder etwas vergleichbares, über ein Relais ein und aus 
geschaltet wird.
Die Temperatur soll über einen Sensor bestimmt werden. so das die 
Lampe/Heizfolie mit einer gewissen (einstellbaren?) Hysterese ein und 
aus geschaltet wird. Das Auslesen des Temperatursensors und das schalten 
des relais würde ich gern über den LPT Port erledigen weil ich damit 
schon ein paar Erfahrungen habe (LED Lauflicht).

Und jetzt kommt mein eigentliches Problem. Ich benötige dazu ein Windows 
Programm indem man sagen wir mal 50 Temperaturen eingeben kann die das 
Gerät nacheinander erzeugt und über eine bestimmte Zeit, die ebenfals 
einstellbar ist, hält.

Ich hatte vor in dem Bereich 20...45°C hin und her zu wechseln. Die 
Zeiten in denen die jeweilige Temperatur gehalten wird genügen 
Minutengenau.

Ach so, Programmieren tue ich in C bzw C++ - aber auch alles selber 
beigebracht und damit auch nur gevierteltes Halbwissen.

Vom Prinzip will ich also einen Sensor auslesen und damit einen Aktor 
ansteuern.


Es wäre wirklich toll wenn mir jemand helfen könnte womit und wie ich 
anfangen soll.

fG Rocco

Autor: Wolfgang-G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was steht im Vordergrund Deines Projekts?
- beheizbarer  Schüttler  (hierfür reicht ein Bimetallschalter)
- Nutzung (Spielchen)  der  LPT  als Einstieg in die digitale Welt
- wichtig ist mir die Anwendung mit einem PC
MfG

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Wichtig ist das man sich die Temperaturen aussuchen kann und wie lange 
diese Temperaturen gehalten werden sollen.
Eine Einfache Bedienung ist mir ebenfals wichtig.

fG Rocco

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mal etwas geforscht und habe bereits den ersten Teil gefunden 
den ich benötige.

Also die Schaltung zum messen der Temperaturen:

KTY10 -> Operationsverstärker (Bsp LM741) -> A/D Wandler (Bsp ADC 0804) 
-> Transistor (BC 547) -> Drucker Port am PC


Nun meine frage Dazu, der ADC 0804 hat die Ausgänge D1...D8 die als 
eingänge zum Druckeranschluss dienen. Also liegen, so wie ich das 
verstehe da, je nach Temperatur, unterschieliche Kombinationen aus 1 und 
0 an. Diese kombinationen aus 1 un 0 symbolisieren die binären Zahlen 
von 0 bis 245.

Also muss ich in meinem geschriebenen Programm diese binären Zahlen zu 
dezimalen konvertieren. Jetzt fehlt noch eine for Schleife die wiederum 
einen Out Pin am Druckerport ein und aus schaltet. An dem out hängt dan 
das Relais mit dem Heizer.

Wie seht ihr das?
Wichtig ist das alles so Anfängerfreundlich wie möglich bleibt.

Autor: Wolfgang-G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wichtig ist das alles so Anfängerfreundlich wie möglich bleibt.
Jeder war mal Anfänger.
Dein aufgezeigter Weg ist schon mal nicht verkehrt. Aber Du wirst für 
dein Projekt Ausdauer brauchen.
>Also muss ich in meinem geschriebenen Programm diese binären Zahlen zu
>dezimalen konvertieren.
Nicht unbedingt. Der Rechner arbeitet letztendlich mit Binärzahlen.
Fang mit Teilaufgaben an. Vielleicht so:
- Zunächst solltest Du dir einen leicht beschaffbaren A/D Wandler
  aussuchen.
- an den A/D-Wandlereingang eine definierte Spannung anlegen und den
  Digitalwert in den PC einlesen.(LPT beherrscht Du ja schon)
- weitere Stufen (KTY10 -> Operationsverstärker) entwickeln und 
verbinden
- wenn Temperaturwerte im Rechner stehen --> Programm zur Verarbeitung 
entwickeln

MfG

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Wolfgang,

danke für Deine Tips.
dann werde ich mal gucken wo ich einen passenden AD Wandler her bekomme.
Con... ist direkt vor der Tür, da werde ich es dort mal versuchen.

fG  Rocco

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rocco,

du kannst es dir auch leichter machen:

http://www.conrad.de/goto.php?artikel=155031

I²C geht auch über den LPT. Der Clock kommt nur vom
Master (PC) also ein Ausgang.
SDA hat einen PullUp, geht auf einen LPT-Eingang und über eine
Diode auf einen LPT-Ausgang.
Ist LPT-Ausgang auf high kann der Slave SDA auf low ziehen
und so senden; will der Master senden kann er mit Ausgang low
über die Diode SDA auf low ziehen.

I²C-Timing ist unkritisch da synchrone Übertragung (darf nur
nicht zu schnell sein 100/400 KHz).

Mit einem exakten Thermometer kann man Abweichungen ausmessen
und im Programm einrechnen.

avr

PS: wenn du dis 50° geheizt hast und zurück auf 25° willst
must du lange warten bei Zimmertemperatur ;)

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo avr,

ich hbae mir gerade mal das Datenblatt angesehen.
Mal sehen ob ich das einigermasen richtig kapiere:

Also gelesen und geschrieben wird jeweils über den SDA Pin, deswegen 
diese Schaltung mit der Diode.

Du schreibst außerdem:
"Ist LPT-Ausgang auf high kann der Slave SDA auf low ziehen
und so senden; will der Master senden kann er mit Ausgang low
über die Diode SDA auf low ziehen."

Welcher Master welcher Slave - leider kapier ich das nicht. Bin wirklich 
Anfänger :-(

Außerdem verstehe ich nicht wie man genau einen Messvorgang beginnt und 
wan er zuende ist.
Und wofür sind nochmal die Pins A0, A1, A2 genau gut?

Ein weiteres Problem stellt sich mir beim Programmieren da. So weit ich 
es vertehe kommt das 12 Bit Signal nacheinander (seriell) aus einem Pin 
heraus. Bei meinem bisherigen AD Wandler käme das Signal gleichzeitig 
aus 8 Beinchen (parallel). Das könnte ich mit meinen 
Programmierfähigkeiten leicht in einer Schleife abfragen - leider weis 
ich nicht wie ich das mit einem seriellen Signal machen soll?!

fG Rocco

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier werden die Grundlagen für I²C recht gut erklärt:

http://www.rn-wissen.de/index.php/I2C

Damit sollte das meiste beantwortet sein.

avr

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mal sehen, ich gebe über den LPT einen Takt an den SCL Pin des 
Sensors und prüfe zum gleichen Zeitpunkt was am SDA anliegt. Ok damit 
kann ich unterscheiden was eine eins und was eine null ist.
SCL darf dabei eintweder 100 oder 400kHz betragen - Zwischenwerte sind 
verboten oder? Wenn die Zwischenwerte verboten sind weis ich leider 
nicht wie ich ein genaues Signal über den LPT ausgeben soll, schließlich 
kann ein PC ja keine Echtzeitsignale augeben - oder verstehe ich da was 
falsch?

Über die Pins A0...A2 kann man dem Sensor eine Adresse zuweisen. Leider 
habe ich nicht genau kapiert wie. In dem Bsp von Deinem Link hängt A2 an 
Vcc und A1 und A0 an GND. Wie ermittelt man daraus die Adresse?

Wenn ich dem sensor sagen möchte das ich jetzt eine Messung machen 
möchte muss ich SDA und SDC auf high legen und wärend SDC auf high ist 
SDA auf low schalten. Jetzt sollte der Sensor ein 12 Bit Signal an 
seinem SDA Pin abgeben. davon wird jedes Bit gleizeitig mit einem SDC 
Signal ausgegeben.

Hört der dann von alleine auf, wenn das 12 Bit Signal zuende ist oder 
muss ich unbedingt ein Stopsignal schicken? So wie ich es verstanden 
habe muss ich kein Stop senden sodern ich mache einfach nach ca 1 
Sekunde wieder das SDA SDC auf high und dabei SDC auf low Prozedere - 
richtig?

Auch wenn ich bis zum Ende lese kapiere ich den Teil mit der 
Adressierung nicht - obohl ich das Prinzip mehrere I²C Sensoren 
anzuschließen wirklich großartig finde. Da kann ich ja ganze 
Bioreaktoren mit steuern und das an einem PC Port.


Es ist bestimmt etwas unverschämt - so soll es aber nicht klingen aber 
kann mir jemand einen einfachen Anschlussplan für so einen Sensor geben?

vielen Dank

fG Rocco

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähnliche Bausteine sind LM75 und DS75.
Für den DS75 gibt es hier was fertiges:

http://hobbyelektronik.org/VB/DS75/index.htm

Trennung SDA nur mit Widerstand.

LM75 ist hier im µC hundertfach beschrieben (Suchfunktion).

Es gibt auch einfache Varianten an der RS232 (kein USB-Wandler!).

avr

Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Link mit dem DS75 ist natürlich perfekt.
Das Pogie in VB sollte auch kein Problem darstellen.

Der Tip mit dem LM75 war natürlich genau so perfekt.


danke für Deine Hilfe.

nun kann ich erst mal ein bischen studieren. Wenn ich dann nicht weiter 
komme melde ich mich wieder.

fG Rocco

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.