Du könntest es damit lösen:
lese am analogen Eingang deine Temperaturen. die kleiste und die größte.
Das liegt dann irgendwo zwischen 0 und 1023, vielleicht bei 230 bis 850 für deinen Meßbereich. Das ist ein wenig individuell.
Diesen Wert übergibst du der Variablen "Z":
Mache eine Variable "angle" für den Winkel des Farbkreises
angle = map(Z,KLEINSTER WERTt,GRÖSSTER WERT,0,240);
if (angle<0){ angle=0;}
if (angle>240) {angle=240;}
unsigned char pwmtable[40] = {0, 0, 0, 1, 2, 3, 4, 6, 8, 10, 13, 16, 19, 23, 27, 31, 36, 41, 47, 52, 59, 65, 72, 80, 88, 96, 105, 114, 123, 133, 143, 154, 165, 177, 189, 201, 214, 227, 241, 255};
if(angle<40)
{
R=0;
G=pwmtable[angle];
B=255;
}
else if(angle<80)
{
angle-=40;
R=0;
G=255;
B=pwmtable[39-angle];
}
else if(angle<120)
{
angle-=80;
R=pwmtable[angle];
G=255;
B=0;
}
else if(angle<160)
{
angle-=120;
R=255;
G=pwmtable[39-angle];
B=pwmtable[angle];
}
else if(angle<200)
{
angle-=160;
R=255;
G=pwmtable[angle];
B=255;
}
else if(angle<=241)
{
angle-=200;
R=255;
G=pwmtable[39-angle];
B=pwmtable[39-angle];
}
//analogWrite(Red,R);
//analogWrite(Green,G);
//analogWrite(Blue,B);
Damit fährt deas RGB Display von kalt = Blau über Cyan, Grün, Gelb, Magenta bis Rot( warm)
den kompletten Regenbogen durch.