Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

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