Hallo Liebe Community,
ich möchte von einem TMP36 ausgelesene Temperaturen auf einem TM1637 Display anzeigen.
Zweistellig
Dabei können die Temp. etwa zwischen -50 und +50 Grad liegen.
Solange die Werte im positiven Bereich liegen, wird alles korrekt angezeigt. Im ersten Segment wird
nichts angezeigt, in den nächsten beiden der Temperaturwert und dann ein C für Celsius.
Im Minusbereich soll im ersten Segment ein (-) angezeigt werden, in den nächsten beiden der Temperaturwert und dann ein C für Celsius.
Dabei werden leider auf allen 4 Segmenten völlig falsche Daten angezeigt.
Wie kann ich das (-) anzeigen gefolgt von den richtigen Werten und einem großen C.
#
include "TM1637.h" // Einfügen der Bibliothek TM1637.h
#define CLK 10 // CLK Pin des Displays TM 1637
#define DIO 11 // DIO Pin des Displays TM 1637
TM1637 tm1637(CLK,DIO);
int Temperatursensor = A0;
int sensorwert; // Ausgelesener Wert zwischen 0 und 430
int temperatur = 0; // Hier wird der Temperaturwert abgespeichert
void setup()
{
tm1637.set(BRIGHTEST);
pinMode(A0, INPUT);
}
void loop()
{
int digitone = temperatur / 10;
int digittwo = temperatur % 10;
sensorwert=analogRead(Temperatursensor); // Auslesen des Sensorwertes
temperatur= map(sensorwert,0,430,-50,150); // Umwandeln des Sensorwertes mit Hilfe des "map" Befehls
if (temperatur >= 0)
{
tm1637.display(0,16); // Schreibt ein leeres Segment
tm1637.display(1,digitone); // Schreibt die erste Ziffer der Temperatur
tm1637.display(2,digittwo); // Schreibt die zweite Ziffer der Temperatur
tm1637.display(3,12); // Schreibt ein C am Ende - für Grad Celsius
}
if (temperatur < 0)
{
tm1637.display(0,77); // Hier ein (-)
tm1637.display(1,digitone); // Schreibt die erste Ziffer der Temperatur
tm1637.display(2,digittwo); // Schreibt die zweite Ziffer der Temperatur
tm1637.display(3,12); // Schreibt ein C am Ende - für Grad Celsius
}
}