Under Construction!!!
Dieses Tutorial beschreibt wie man mit Hilfe eines KTY-Sensors die Temperatur messen kann.
Quellen
www.rn-wissen.de
Kty81-110 Tutorial (EN)
sprud.de
Aufbau
(Vcc 5+)--+-->2.7k--+-->kty81-110-->(GND)
| |
+->100nF--+-----> ADC0 (Analog Port 0)
Attach:temperature.jpg
Funktionsbeschreibung
Der KTY-Sensor misst konstant die Temperatur. Durch drücken des Tasters wird die aktuell gemessene Temperatur auf der seriellen Konsole ausgegeben. Ausserdem bestätigt eine LED den Tastendruck.
Beispielsketch
/*
Programm um die Temperatur mit einem KTY-Sensor zu messen und
durch drücken eines Tasters auszugeben.
*/
// Laden der Button Bibliothek
#include <Button.h>
// Taster an pin 12 definieren
Button button = Button(12,PULLUP);
void setup()
{
// LED zur Anzeige eines Tastendruck
pinMode(13,OUTPUT);
// Definition der seriellen Schnittstelle
Serial.begin(9600);
}
// Funktion zum auslesen der Temperatur
float kty(unsigned int port) {
float temp = 82;
// ADCSRA Register zurücksetzen
ADCSRA = 0x00;
// ADC aktivieren und Teiler auf 128 setzen
ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
// MDMUX Register zurücksetzen
ADMUX = 0x00;
// AVCC mit externen Kondensator am AREF Pin
ADMUX = (1<<REFS0);
// Zuweisen des Kanals des Multiplexers
ADMUX |= port;
// schleife zum Auslesen der Spannung
for (int i=0;i<=63;i++)
{
ADCSRA|=(1<<ADSC);
while (ADCSRA & (1<<ADSC));
temp += (ADCL + ADCH*256);
}
// Umrechnen in Temperatur
temp /= 101;
temp -= 256;
return (temp);
}
void loop()
{
// Anweisung zur Ausgabe der Temperatur auf dem seriellen Port wenn der Taster gedrückt wird.
if(button.isPressed()){
// LED ein
digitalWrite(13,HIGH);
// Aufruf der Funktion um die Temperatur auszulesen
float read_temp = kty(0);
// Ausgabe der Temperatur auf dem seriellen Port
Serial.println(read_temp);
// 1/2 Sekunde warten bevor der nächste Tastendruck ausgelesen wird
delay(500);
}else{
// LED aus
digitalWrite(13,LOW);
}
}
Tipps & Tricks
- um einen Temperaturanstieg zu simulieren kann eine Taschenlampe benutzt werden.
Infos
Beitrag im Forum