Dokumentation für Temperatur Spannungswandler mit paralleler Eingabemöglichkeit für den Rechner

von Matthias Beckert                                         FGT 11A


Inhaltsverzeichnis  

1.Aufgabenstellung                                                                                                3
2.Lösung                                                                                                                 3
2.1 Die Schaltung                                                                                                   3
2.1.1 Die OP Schaltung                                                                                         3
2.1.2 Die ADC Schaltung                                                                                      4
2.1.3 Die Ansteuerung des LPT                                                                           5
2.1.4 Quellenangabe                                                                                             5
2.2 Layout                                                                                                               6
2.2.1 Reines Ätzlayout                                                                                           6
2.2.2 Ätzlayout mit Bestückungsplan                                                                   6
2.3 Bauteilliste mit Bestellnummer und Preis                                                     7
3. Die Software                                                                                                      7
3.1 Die Benutzeroberfläche                                                                                  7
3.2 Der Quelltext  Version 1                                                                                  8


1. Aufgabenstellung

Es war die Aufgabe eine Temperaturschwankung in ein Spannungssignal umzuwandeln und dieses Spannungssignal digital (8Bit) auszugeben. Optionale Möglichkeit war es dieses Signal an den LPT eines Computers weiter zu geben. Kurz gesagt: Ein Thermometer das man an den PC anschließen kann.

2. Lösung

Das Temperatursignal wird zu erst durch den KTY 10 auf die Spannung aufmoduliert. Es wird dann von dem LM741 um den Faktor 120 verstärkt.

Dieses Spannungssignal wird dann von dem ADC 0804 in ein digitales 8Bit Signal umgewandelt. Das Signal kann dann je nach der Position des Schalters S2 (ein Jumper auf der Platine) über acht LED’s ausgegeben werden oder über acht Transistoren an den Computer weiter gegeben werden.

Alternativen:1. Man könnte einen größeren Verstärkungsfaktor wählen, um eine genauere Messung zu bekommen.

2. Man könnte anstatt eines 8Bit-ADC einen 16Bit-ADC benutzen, um einen größeren Temperaturbereich abzudecken.

3. Man kombiniert 1 und 2 um eine genauere Messung zu bekommen und einen größeren Temperaturbereich abzudecken.

Diese Alternativen habe ich nicht gewählt. Dies hat keine genaueren Gründe, es ist nur eine reine Kostenfrage, denn die genaueren Bauteile sind erheblich teuerer.

2.1 Die Schaltung

2.1.1 Die OP-Schaltung

Beschreibung: Die Widerstände R1,R2, der Poti P1 und der KTY 10 dienen jeweils als Spannungsteiler für die beiden Eingänge des OP’s. Wenn sich die Temperatur ändert, wird der Widerstand des KTY10 größer oder kleiner und die Spannung am Pin2 entgegengesetzt zum Widerstand des KTY 10 größer oder kleiner. Durch den Poti P1 wird eingestellt ab welcher Temperatur der ADC anfangen soll zu messen, da man mit ihm die Spannung am zweiten Eingang regelt. Das Verhältnis zwischen R7/R6 und R4/R5 bestimmt den Verstärkungsfaktor. Die Diode D1 dient dazu, dass der ADC keine negative Spannung auf seinem Eingang liegen hat, da dies den ADC zerstören könnte.

2.1.2 Die ADC Schaltung         

Beschreibung: Das Spannungssignal bekommt der ADC auf seinen Pin 6, dies ist der positive Messeingang. Die Pin’s 1, 2 und 7 werden direkt auf Masse gelegt. Dadurch, dass Pin 1 und 2 direkt auf Masse liegen kann der ADC dauerhaft messen wenn der Schalter S1 (ein Jumper auf der Platine) offen ist. Pin 7 benötigt nur Massepotential damit er keine Störsignale abgibt. Wenn man nun S1 schließt wird das Signal gespeichert und erst wieder gelöscht wenn man den Schalter öffnet. Wenn wir die Schaltung am PC betreiben, muss S1 offen sein, da wir hier die Speicherung über die Software betreiben. R11 und C1 bestimmen wie oft pro Sekunde der ADC messen soll.

2.1.3 Ansteuerung des LPT

Beschreibung: Die Transistoren T1...T8  schließen jeweils einen der acht Eingänge gegen Masse kurz, je nach dem ob eine Spannung an der Basis anliegt oder nicht. Es ist nur möglich dass entweder nur die LED’s oder die Transistoren als Ausgabe benutzt werden, da für beide Varianten nicht genug Strom fließt.

2.1.4 Quellenangabe

Die  OP-Schaltung ist eine ganz normale Verstärkerschaltung wie man sie überall finden kann. Das einzige Problem sind die Werte der Widerstände R4-R7 , da das Verhältnis von R4/R5 und R7/R6 die Verstärkung ergibt.

Die ADC-Schaltung stammt von der Internetseite http://www.digital-hobby.de.
Die komplette Adresse lautet:
http://www.digital-hobby.de/c-C937fe745fb0dddb73186021335ed7bc1/

Ich habe nur den Schaltplan nachgezeichnet, da die Datei in der vorhanden Form für diesen Bericht nicht zu gebrauchen war. Ebenfalls habe ich die Widerstände R1 und R2 beigefügt (Spannungsteiler  für VRef ).

Die Schaltung zur Ansteuerung des LPT stand nicht direkt  in einem Buch. Ich habe nur vor ca. 1½ Jahren gelesen, dass man das 8Bit-Register des LPT gegen Masse kurzschließen muss, um es als Eingang zu nutzen.

Ausgehend von diesem Vorwissen entstand dann diese Schaltung.

2.2 Layout

Das Layout entstand in Zusammenarbeit mit Stefan Hinz. Den Entschluss, den LPT eines Computers anzusteuern, habe ich erst gefasst, nachdem die Platine schon geätzt war. Deshalb sind die Transistoren nicht auf dem Layout vorhanden. Allerdings ist es nicht sehr schwer diese Transistoren auf einer Lochrasterplatine anzubringen.

2.2.1 Reines Ätzlayout

2.2.2 Ätzlayout mit Bestückungsplan

2.3 Bauteilliste mit Bestellnummer und Preis

Anzahl

Bestellnummer

Bauteil

Stückpreis in €

Preis in €

5

40 33 77-77

Widerstand 10 kΩ

0,10

0,50

2

40 36 28-77

Widerstand 1.2 MΩ

0,10

0,20

10

40 32 53-77

Widerstand 1 kΩ

0,10

1,00

8

40 31 72-77

Widerstand 220 Ω

0,10

0,80

1

43 08 46-77

Poti 2.5 kΩ

0,38

0,38

1

45 17 54-77

Kondensator 150 pF

0,18

0,18

1

47 24 84-77

Elko 10 mF

0,18

0,18

8

15 49 89-77

Transistor BC 547C

0,13

1,04

1

16 22 72-77

1N4007 Diode

0,10

0,10

1

17 50 30-77

7805 Festspannungsregler

0,66

0,66

1

15 36 40-77

KTY10

1,26

1,26

1

17 59 35-77

LM 741

0,49

0,49

1

17 45 05-77

ADC 0804

4,73

4,73

8

18 45 60-77

3mm LED Rot

0,07

0,56

1

18 95 39-77

20Pol IC-Sockel

0,54

0,54

1

18 95 00-77

8Pol IC-Sockel

0,28

0,28

1

73 24 78-77

36Pol Stiftleiste RM 2.54

0,66

0,66

2

73 19 78-77

Jumper RM 2.54

0,26

0,52

3

73 03 19-77

Bananenstecker

1,00

3,00

1

74 11 83-77

25Pol Sub-D Stiftleiste

1,18

1,18

1

52 82 69-77

Fotoplatine 60 x 100

0,66

0,66

 

 

 

Gesamt

18,26

Preise und Bestellnummern sind aus dem aktuellen Katalog der Firma Conrad Elektronik Hirschau.

3. Die Software

3.1 Die Benutzeroberfläche


3.2 Der Quelltext Version 1

Private Sub Form_Load()  
Dim a As Integer                                              // a wird als Integer definiert  
End Sub

Private Sub Form_Click()  
frmAbout.Visible = True                                     // © Fenster wird aufgerufen  
frmtemp.Enabled = False  
End Sub

Private Sub btnClear_Click()  
save.Clear                                                        // der Inhalt der Listbox  “save“ wird gelöscht  
End Sub

Private Sub btnEnde_Click()  
End                                                                 // Programm wird beendet  
End Sub

Private Sub btnSave_Click()  
a =255 - DlPortReadPortUchar(888)                   // das 8Bit-Register des LPT wird ausgelesen   
save.AddItem (a & "°C")                                    // die Listbox “save”  wird um einen Eintrag erweitert  
End Sub

Private Sub btnStart_Click()
Timer.Enabled = True                                        // der Timer wird aktiviert  
btnSave.Enabled = True                                    // der Button “Save” wird freigeschaltet  
btnStop.Enabled = True                                    // der Button “Stop” wird freigeschaltet  
btnClear.Enabled = True                                    // der Button “Clear” wird freigeschaltet  
btnStart.Enabled = False                                  // der Button “Start” wird gesperrt  
End Sub

Private Sub btnStop_Click()  
Timer.Enabled = False                                      // der Timer wird deaktiviert  
lblout.Caption = ""                                            // der Inhalt des Label’s “lblout” wird gelöscht  
btnStop.Enabled = False                                   // der Button “Stop” wird gesperrt  
btnStart.Enabled = True                                    // der Button “Start” wird freigeschaltet  
btnSave.Enabled = False                                  // der Button “Save” wird gesperrt  
End Sub

Private Sub Timer_Timer()  
a = 255 - DlPortReadPortUchar(888)                  // das 8Bit-Register des LPT wird ausgelesen  
lblout.Caption = a & "°C"                                   // es wird der der Variable  “a“ ausgegeben  
DlPortWritePortUchar (888), 255                        // alle acht Eingänge werden auf 1 gelegt  
End Sub

 

zurueck FGT 2002-2005
zurueck W.v.S.S.