Go Down

Topic: Termometro RGB, Kelvin to RGB? (Read 880 times) previous topic - next topic

Nik_90

Jun 27, 2012, 07:43 pm Last Edit: Jun 27, 2012, 07:45 pm by Nik_90 Reason: 1
Ciao a tutti, poco fa mi sono imbattuto in un'immagine simile a questa:

http://img.diytrade.com/cdimg/1113020/12701342/0/1273025995/Temperature_Sensitive_LED_RGB_Color_changing_Shower_head_CHT-1103.jpg

Bene :) , 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

toti94

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

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.

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

1000 kelvin = 726,85 Celsius

Quindi potrei rappresentare tramite quella scala minimo 726 gradi  :smiley-eek-blue: che mi sembra decisamente troppo!

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

Grazie

alexdb

se non sbaglio quella scala è il calore del colore delle lampadine...quindi non penso che faccia al caso tuo.... :)
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...

tonid

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
Code: [Select]

  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
Code: [Select]
switch (mappa) {
    case 1:
      analogWrite(led_rosso,255)
      break;
    case 2:
      analogWrite(led_verde,255)
      break;
  ecc.
  }

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

uwefed

#5
Jun 27, 2012, 09:46 pm Last Edit: Jun 27, 2012, 09:53 pm by uwefed Reason: 1

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.



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

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.
http://it.wikipedia.org/wiki/Temperatura_di_colore
http://en.wikipedia.org/wiki/Color_temperature
esempio di foto a dierse temperature di colore: http://de.wikipedia.org/w/index.php?title=Datei:Whitebalance4.jpg&filetimestamp=20050813111122


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

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy