Projekt 20 bringt uns mit dem Arduino zum Digitalthermometer und dieser Artikel liefert den Code dazu…
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);
}