Die Schaltung mit den zwei Siebensegmentanzeigen wird jetzt um einen Temperatursensor erweitert und somit ein Digitalthermometer gebaut…

Vorbereitungen:

Für dieses Projekt brauchen wir folgende Bauteile für den Schaltungsaufbau:

Schaltungsaufbau:

Der mittlere Anschluß des TMP36 wird an den Analogpin 5 des Arduinos angeschlossen. Der linke Anschluß des TMP36 wird mit 5 V Pin des Arduinos verbunden. Der rechte Anschluß des TMP36 wird abschließends an Ground (GND) angeschlossen. Jetzt kann die Temperaturmessung beginnen.

Programmierung:

#define DATA 6 // Arduino-Pin 6 wird verbunden mit Schieberegister-Pin 14
#define LATCH 8 // Arduino-Pin 8 wird verbunden mit Schieberegister-Pin 12
#define CLOCK 10 // Arduino-Pin 10 wird verbunden mit Schieberegister-Pin 11

int temp = 0;
float voltage = 0;
float celsius = 0;
float sensor = 0;
int digits[]={252, 96,218,242,102,182,190,224,254,246,238,62,156,122,158,142};

void setup()
{
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
}

void displayNumber(int n)
{
int left, right = 0;
if (n < 10)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[n]);
shiftOut(DATA, CLOCK, LSBFIRST, digits[0]);
digitalWrite(LATCH, HIGH);
}

if (n>= 10)
{
right = n %10;
left = n / 10;
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[right]);
shiftOut(DATA, CLOCK, LSBFIRST, digits[left]);
digitalWrite(LATCH, HIGH);
}
}

void loop()
{
sensor = analogRead(5);
voltage = (sensor * 5000) / 1024;
voltage = voltage - 500;
celsius = voltage / 10;
temp = int(celsius);
displayNumber(temp);
delay(500);
}

Von Torsten