Das Multi-Function-Shield war ja bereits vor kurzem Thema.
Whandall hat dazu einen Schaltplan gepostet.
Das Make-Magazin hat diesem Shield in der Ausgabe 2/2018 einen Artikel gewidmet (mit Beispielen) und es gibt zahlreiche Tutorials und Beispiele für dieses preisgünstige Shield im Netz. Zum Beispiel:
Gerd50:
Einige Fragen dazu:
-
Wieso zeigt der serielle Monitor die Zeitstempel nur bei den ersten 8 Messungen an, obwohl der Zeitstempel im Fenster aktiviert ist?
-
Ich möchte nun diesen Sensor mit dem Uno Multifunktion Shield verknüpfen. Wo und wie wird er darauf angeschlossen? Auf der 7-Segmentanzeoge möchte ich die Temperaturanzeige zweistellig mit einer Nachkommastellen haben. Gibt es dafür einen fertigen Sketch für mich als Newbie? Macht es überhaupt Sinn 1/10 auszugeben, da dieser Sensor doch nur +/- 2 Grad genau ist.
Zu Frage 2 (erster Teil):
Einen TMP36 kannst du direkt auf das Multi-Function-Shield stecken, so:

Er hängt dann an A4.
Wie du Daten des Sensors verarbeiten kannst ist zum Beispiel hier erklärt: Overview | TMP36 Temperature Sensor | Adafruit Learning System
Du musst den Sketch entsprechend anpassen (weil der Sensor auf A4 und nicht wie im Beispiel auf A0 hängt).
Wie du die Werte auf die Siebensegmentanzeige bekommst, kannst du in den vielen Beispielen im Netz nachlesen.
Zum Beispiel (als Anregung):
// Read analog pin and display value on display
/* Define shift register pins used for seven segment display */
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8
#define Pot1 4
/* Segment byte maps for numbers 0 to 9 */
const byte SEGMENT_MAP[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90};
/* Byte maps to select digit 1 to 4 */
const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};
void setup () {
/* Set DIO pins to outputs */
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}
void loop() {
int PotValue;
PotValue = analogRead(Pot1);
/* Update the display with the current counter value */
WriteNumberToSegment(0 , PotValue / 1000);
WriteNumberToSegment(1 , (PotValue / 100) % 10);
WriteNumberToSegment(2 , (PotValue / 10) % 10);
WriteNumberToSegment(3 , PotValue % 10);
}
/* Write a decimal number between 0 and 9 to one of the 4 digits of the display */
void WriteNumberToSegment(byte Segment, byte Value) {
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}
Wenn du "vernünftig" Temperaturen messen willst, würde ich einen anderen Sensor empfehlen, zum Beispiel DS18B20. Dieser gibt die Temperatur in digitalem Format aus. Aber für erste Versuche ist natürlich auch der TMP36 durchaus brauchbar.
Zur Frage 1 kann man (wie bereits von anderen erwähnt) nichts sagen, ohne den Code zu sehen.