Dokumentation
für Temperatur Spannungswandler mit paralleler Eingabemöglichkeit für den
Rechner
von
Matthias Beckert
FGT 11A
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
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
Private Sub
Form_Load()
Dim a As
Integer
// a wird als Integer definiert
Private Sub Form_Click()
End Sub
Private Sub btnClear_Click()
Private Sub btnEnde_Click()
End
// Programm wird beendet
End Sub
Private Sub btnSave_Click()
save.AddItem
(a & "°C")
// die Listbox “save” wird
um einen Eintrag erweitert
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
Private Sub btnStop_Click()
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
End Sub
Private Sub Timer_Timer()
DlPortWritePortUchar
(888), 255
// alle acht Eingänge werden auf 1 gelegt
End Sub