Con un Led RGB, Arduino, 3 resistencia de 1 K , 1 de 4K7 y por ultimo un sensor ds18b20, se puede hacer un simple termómetro gráfico. Buscando por internet siempre encontraba termómetros graficos con sensores analógicos pero con este ds18b20 ninguno, asi que imaginando y teniendo la base del analógico saque este código:
#include <OneWire.h>
#include <DallasTemperature.h>
// Definimos el pin 8 de arduino para el sensor de temperatura ds18b20
#define ONE_WIRE_BUS 8
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int redPin = 9; //El pin 9 de arduino para la patilla del color rojo del led rgb
int bluePin = 11; //El pin 11 para color azul
int greenPin = 10; //El pin 10 para color Verde
int valor,i,j;
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
pinMode(redPin,OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop(void)
{
sensors.requestTemperatures(); // Enviamos el comando para obtener la temperatura
valor = sensors.getTempCByIndex(0);
Serial.println(sensors.getTempCByIndex(0)); // Imprimimos el valor de la temperatura para guiarnos un poco
if (valor < 18){
analogWrite(bluePin,64);
delay(3000);
j=255;
for(i=64;i<=255;i++){
j--;
delay(50);
analogWrite(redPin,0);
analogWrite(greenPin,0);
analogWrite(bluePin,i);
}
}
else if ((valor >= 18) && (valor < 23)){
analogWrite(bluePin,64);
delay (3000);
j=255;
for (i=64; i<=255; i++){
j--;
delay(50);
analogWrite(redPin,0);
analogWrite(greenPin,i);
analogWrite(bluePin,64);
}
}
else if ((valor >= 23) && (valor < 28)){
analogWrite (greenPin,64);
delay (3000);
j=255;
for (i=64; i<=255; i++){
j--;
delay(50);
analogWrite(redPin,i);
analogWrite(greenPin,64);
analogWrite(bluePin, 0);
}
}
else if (valor >= 28){
analogWrite (redPin, 64);
delay (3000);
j=255;
for (i=64; i<=255; i++){
j--;
delay(50);
analogWrite(redPin,64);
analogWrite(greenPin,0);
analogWrite(bluePin, 0);
}
}
}
El codigo se puede mejorar y mucho pero solo queria saber si se podia hacer y aqui esta, subo unas fotitos para verlo como lo monte.