Hallo,
ich versuche mittels eines LM335 Temperatursensors (Datenblatt)und einem ATtiny 13 die Temperatur zu messen, um einen Lüfter zu steuern.
Meine Schaltung sieht so aus:
Das Zugehörige Bascom Programm misst alle 10 Sekunden über den ADC die Temperatur und wenn der gemessene Wert über 600 (also über 23 Grad) liegt werden der Lüfter und die Grüne LED eingeschaltet, liegt er über 800 werden der Lüfter und die rote LED eingeschaltet. Ansonsten bleiben der Lüfter und die LEDs aus.
Dazu initialisiere ich zuerst den Tiny
Definiere die benötigten PortsCode:$regfile = "attiny13.dat" 'Tiny13 $crystal = 4000000 $hwstack = 10 $swstack = 20 $framesize = 20
Starte den ADC und führe die erste Messung durchCode:Config Portb.2 = Output 'Anschluss Lüfter Luefter Alias Portb.2 Luefter = 0 Config Portb.1 = Output 'Anschluss LED Rot Ledrot Alias Portb.1 Ledrot = 0 Config Portb.0 = Output 'Anschluss LED Grün Ledgruen Alias Portb.0 Ledgruen = 0 Config Portb.3 = Output Sensorversorgung Alias Portb.3 'GND oder +5V für Messung Sensorversorgung = 1
und gehe schließlich in das Hauptprogramm überCode:Config Portb.4 = Input 'ADC Initialisieren Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Dim Messergebnis As Word 'Variable für gemessenen Wert Waitms 500 Ledgruen = 1 Messergebnis = Getadc(3) 'Erste Temperaturmessung Waitms 500 Sensorversorgung = 0
Mein Problem ist folgendes:Code:Do If Messergebnis > 600 Then Luefter = 1 Ledgruen = 1 Else Luefter = 0 Ledgruen = 0 Ledrot = 0 End If If Messergebnis > 800 Then Luefter = 1 Ledrot = 1 End If Waitms 8500 Sensorversorgung = 1 Waitms 500 Messergebnis = Getadc(3) 'Temperaturmessung Waitms 5000 Sensorversorgung = 0 Ledrot = 0 Ledgruen = 0 Waitms 500 Loop End
Bei normaler Raumtemperatur (gerade ca. 22 Grad) ermittelt der ADC einen Wert zwischen 1010 und 1020, was absolut unrealistisch ist.
Nach meiner Berechnung anhand des Datenblatts des LM 335 müsste es bei 23 Grad Celsius 2,9V also über den ADC bei Referenzspannung 5V ca 600 ergeben-
(Rechnung: [ 273,15 (Kelvin) + 23 (Grad Celsius) ] * 10mV (pro Kelvin) =~ 2,9V ;
[1024 (Auflösung des ADC):5 (V Referanzspannung)] * 2,9(Volt) =~ 595 ).
Wenn ich mit dem Multimeter an den Beinchen 3 und 4 manuell nachmesse komme ich auf 3,2 Volt, was ca 48 Grad Celsius entspricht und ebenfalls zu hoch aber dennoch realistischer als die Messung des ADC ist. Da es mir nicht auf ein halbes Grad ankommt habe ich das Adjust Beinchen des LM 335 frei gelassen.
Hat jemand eine Idee wie ich einen realistischen Temperaturwert ermittelt bekomme?
Gruß,
Marius







Zitieren


Lesezeichen