PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnissproblem kty10 an atmega16



Olle_Filzlaus
14.05.2006, 12:16
Hallo,

ich habe google und das forum schon durchsucht, aber nirgends eine antwort auf mein problem erhalten.

ich habe ein kty10 Temperatursensor an meinen ADC gehangen.

aufbau: 5V -> R -> ADC -> Kty10 ->GND

Habe das mal schnell mit nem 2200ohm vorwiderstand ausgerechnet und da müssten am adc ca 2,62V ankommen. das passt auch.

in meinem zimmer sind 21° (Kty = 2003ohm), zeigt der adc ca 896 an. wenn ich den sensor in der hand halte, steigt er auf 901. das sind 5 schritte, bei 0,0048V auf lösung sind das aber nicht viel, oder???? das wären ja pro schritt 3°, ne ziehmlich bescheidene auflösung.

wie kann ich das verbessern????

Ach ja Aref liegt bei 5V. (bit wandler also max 1023.

hier mal mein testprogramm (ist noch nicht speziell für temperatur sondern zeigt erstmal nur die spannung an). ausserdem hat es noch ne leuchtbalkenanzeige. so mal als test.



$regfile = "m16def.dat"
$crystal = 8000000

'******************* AD-Wandler ***********************
Config Adc = Single , Prescaler = Auto , Reference = Internal

'******************* LCD Display **********************
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.2 , Rs = Portd.0
Config Lcdbus = 4
Config Lcd = 16 * 2


Config Portc = Output

Portc = &B11100111

Start Adc

Dim Wert As Word , Channel As Byte , Spannung As Single

Channel = 0

Do

Wert = Getadc(channel)

Spannung = Wert * 0.0048875855

Cls
Locate 1 , 1
Lcd "Volt: " ; Spannung ; " V";

Locate 2 , 1
Lcd "ADC: " ; Wert ;

If Spannung => 0.625 Then
Portc.0 = 0
Else
Portc.0 = 1
End If

If Spannung => 1.25 Then
Portc.1 = 0
Else
Portc.1 = 1
End If

If Spannung => 1.875 Then
Portc.2 = 0
Else
Portc.2 = 1
End If

If Spannung => 2.5 Then
Portc.3 = 0
Else
Portc.3 = 1
End If

If Spannung => 3.125 Then
Portc.4 = 0
Else
Portc.4 = 1
End If

If Spannung => 3.75 Then
Portc.5 = 0
Else
Portc.5 = 1
End If

If Spannung => 4.375 Then
Portc.6 = 0
Else
Portc.6 = 1
End If

If Spannung => 4.95 Then
Portc.7 = 0
Else
Portc.7 = 1
End If

Waitms 500


Loop
End


thx for help

shaun
14.05.2006, 12:36
Wurde in https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=7810 ausgiebig diskutiert - bei 2,2k kommt man wohl auf 8,5mV/K, ein bisschen dürftig für einen ADC mit 4,8mV Schrittweite.

Ratber
14.05.2006, 12:38
Yo,das läst sich noch verbessern.

Für den einfachen Teilerbetrieb nutze ich gerne den KTY81-210 mit 2000 Ohm bei 25° mit einem Teiilerwiderstand von 2.7k
Damit kommt man gut auf 1° Auflösung im bereich von 10-70°C wenn man die Tabellenwerte als Stützpunkte nimmt und dazwischen Mittelt.

Für mehr Geneuigkeit ist dann aber ein Messverstärker fällig (OP-Schaltung)