#include <Wire.h>
#include <Adafruit_NeoPixel.h>
const byte TMP422 = 0x4E; // Adresse des TMP75
const byte NumberOfFields = 2; // Anzahl anzufordernder Felder (Bytes)
char tempHighByte; // Höherwertiges Byte der Temperatur (vorzeichenbehafteter Wert in Grad Celsius)
char tempLowByte; // Niederwertiges Byte der Temperatur (die Nachkommastellen)
float temperature; // Temperatur im Fließkomma-Format
#define PIN 6 // PIN wird definiert auf Pin6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800); // strip wird definiert
void setup() {
Serial.begin(9600); // öffnet die Serielle Schnittstelle und gibt die Übertragungsgeschwindigkeit an
Wire.begin(); // Einbinden der Wire Bibliothek und einleiten in den I2C-Bus
strip.begin(); // Einbinden der Adafruit_Neopixel Bibliothek und Vorbereitung zu Datenübermittlung
strip.show(); // Initialisieren das zu Beginn alle LED`s aus sind
}
void loop()
{
Wire.requestFrom(TMP422, NumberOfFields); //
tempHighByte = Wire.read();
tempLowByte = Wire.read();
Serial.print("Integer-Temperatur ist ");
Serial.print(tempHighByte, DEC);
Serial.print(",");
// Die unteren 4 Bit von LowByte enthalten die fractional-Temperatur
int t = word( tempHighByte, tempLowByte) / 16 ;
temperature = t / 16.0; // In Fließkommazahl umwandeln
Serial.println(temperature);
Ringlicht(temperature);
strip.show();
delay(100);
}
void Ringlicht(float temp)
{
if (temp < 25.5)
{
strip.setPixelColor(0, 0, 0, 200);
strip.setPixelColor(7,0, 0, 0);
strip.setPixelColor(6,0, 0, 0);
strip.setPixelColor(5,0, 0, 0);
strip.setPixelColor(4,0, 0, 0);
strip.setPixelColor(3,0, 0, 0);
strip.setPixelColor(2,0, 0, 0);
strip.setPixelColor(1,0, 0, 0);
strip.show();
}
else if (temp >= 25.5 && temp<=26 )
{
strip.setPixelColor(1,0, 50, 200);
strip.show();
}
else if (temp > 26 && temp<=26.5 )
{
strip.setPixelColor(2,0,100, 150);
strip.show();
}
else if (temp > 26.5 && temp<=27 )
{
strip.setPixelColor(3,0, 150, 100);
strip.show();
}
else if (temp > 27 && temp<=27.5 )
{
strip.setPixelColor(4,0, 200, 50);
strip.show();
}
else if (temp > 27.5 && temp<=28 )
{
strip.setPixelColor(5,0, 200, 0);
strip.show();
}
else if (temp > 28 && temp<=28.5 )
{
strip.setPixelColor(6,50, 200, 0);
strip.show();
}
else if (temp > 28.5 && temp<=29 )
{
strip.setPixelColor(7,100, 150, 0);
strip.show();
}
else if (temp > 29 && temp<=29.5 )
{
strip.setPixelColor(0,150, 100, 0);
strip.show();
}
else if (temp > 29.5 && temp<=30 )
{
strip.setPixelColor(1,200, 50, 0);
strip.show();
}
else if (temp > 30)
{
strip.setPixelColor(2,255, 0, 0);
strip.setPixelColor(3,0, 0, 0);
strip.setPixelColor(4,0, 0, 0);
strip.setPixelColor(5,0, 0, 0);
strip.setPixelColor(6,0, 0, 0);
strip.setPixelColor(7,0, 0, 0);
strip.setPixelColor(0,0, 0, 0);
strip.setPixelColor(1,0, 0, 0);
strip.show();
}
}