Termometro RGB, Kelvin to RGB?

Ciao a tutti, poco fa mi sono imbattuto in un'immagine simile a questa:


Bene :slight_smile: , lasciando perdere la doccia, si tratta quindi di led rgb che cambiano colore in base alla temperatura, es:
<= 32° ---> luce verde.

Facendo un po di ricerche ho trovato che effettivamente esiste una tabella di conversione tra gradi Kelvin e colori RGB.
Ora se non sbaglio 0 gradi celsius (c°) valgono 272 gradi Kelvin giusto?
Le tabelle di conversione che ho trovato però, partono tutti da 1000 gradi Kelvin, e danno i valori dei rispettivi R G B.

Volendo quindi rappresentare con un sensore di temperatura, un rispettivo colore con un led RGB come dovrei procedere se vorrei rappresentare ad esempio temperature nel range -20 c° a 50 c°.

Qualcuno di voi ha avuto già a che fare con conversioni tipo c° --> RGB ?

Grazie a tutti

Nicola

Scusa l'ignoranza ma sei tu che hai deciso di fare al conversione ? perchè altrimenti potresti mettere un controllo sulla temperatura con un range e poi dargli il colore, per esempio
if (temperatura >0 && temperatura<50)
{
colore= blu;
}
è un semplice esempio .
Se ho detto cazzate scusa XD

http://nwfsimages.s3.amazonaws.com/school/course/102/352.jpg

Come puoi vedere la scala parte da 1000 K e arriva a 8000 K, e va da un rosso accesso ad un blu. Questa è una delle tabelle, ma altre magari ti danno il valore preciso R G B del blu.

Il mínimo valore nella tabella è 1000 (kelvin)

1000 kelvin = 726,85 Celsius

Quindi potrei rappresentare tramite quella scala minimo 726 gradi :fearful: che mi sembra decisamente troppo!

Volevo quindi sapere se esiste appunto una tabella di conversione tra gradi celsius a colori rgb

Grazie

se non sbaglio quella scala è il calore del colore delle lampadine...quindi non penso che faccia al caso tuo.... :slight_smile:
decidi un colore per grado e sei a posto...
tipo 10 gradi blu scuro
20 verde
30 rosso

e poi magari i gradi intermedi schiarisci...

Se devi ottenere solo i tre colori potresti usare un sensore di temperatura e lo leggi da un pin analogico, crei una mappa con la funzione map di tre

  int val = analogRead (0);
  mappa = map (val, 0, 1023, 0, 2);

e usi uno switch case con lo stesso nome della mappa di modo da sfruttare il risultato della mappa e in ogni case gli scrivi il valore in pwm

switch (mappa) {
    case 1:
      analogWrite(led_rosso,255)
      break;
    case 2:
      analogWrite(led_verde,255)
      break;
  ecc.
  }

Ovviamente è un'idea.....poi mettici del tuo :slight_smile:

Nik_90:
http://nwfsimages.s3.amazonaws.com/school/course/102/352.jpg
Come puoi vedere la scala parte da 1000 K e arriva a 8000 K, e va da un rosso accesso ad un blu. Questa è una delle tabelle, ma altre magari ti danno il valore preciso R G B del blu.

alexdb:
se non sbaglio quella scala è il calore del colore delle lampadine...quindi non penso che faccia al caso tuo.... :slight_smile:

La temperatura di colore é definita come un corpo nero portato a tale temperatura emana una luce di un certo spettro di luce che corrisponde a un colore. Corrisponde quasi alla temperatura del filamento di una lampada a incandescenza o alogena anche se quelle arrivano a 3400 K e non piú alto perché sopra si fonde il filo. Si usa nella tecnica e nella fotografia per definire lo spettro della luce e per definire cosa é bianco.

esempio di foto a dierse temperature di colore: Datei:Whitebalance4.jpg – Wikipedia

Quello che Tu vuoi fare é semplicemente abinare un colore alla temperatura dell'acqua. Comunque sceglierei blu per temperature basse, verde per temperature acettabili e rosso per temperature troppo alte.

Ciao Uwe