const int portPin = 5;
int potValor = 0; // guarda los datos del potenciometro
int valorTem = 0; // guarda el valor deseado para temperatura
int verde = 0;
int amarillo = 0;
int naranja = 0;
int rojo = 0;
int SetPoin;
int r=0,g=0,b=0;
void setup() {
Serial.begin(115200);
analogSetPinAttenuation(5,ADC_2_5db);// se realiza una atenuacion de 2,5db, al ADC para tomar lecturas hasta 1.3v, ya que el sensor lm35 a 100°C
delay(100); // tiene una salida de 1.2v a proximadamente.
}
void loop() {
#ifdef RGB_BUILTIN
potValor = analogRead(portPin); //datos del potenciometro
valorTem = map(potValor,0,4095,0,100); // Escalamiento de temperatura de 0 a 100 grados
verde = map(potValor,0,1024,20,255); // Escalamiento para color verde
amarillo = map(potValor,1024,2048,20,255); // Escalamiento para color amarillo
naranja = map(potValor,2048,3072,255,80); // Escalamiento para color naranja
rojo = map(potValor,3072,4095,80,0); // Escalamiento para color rojo
Serial.print("Valor Potenciometro: "); //motrar valores del potenciometro
Serial.print(potValor); // y de temperatura
Serial.print(" Temperatura: ");
Serial.print(valorTem);
Serial.print("°C");
Serial.println();
if(potValor >=0 && potValor <= 1024){ // condiconal para el color verde en el rango (0 - 1024)
neopixelWrite(RGB_BUILTIN,0,verde,0); // Green
r = 0;
g = verde;
b = 0;
}
else
if(potValor>1024 && potValor<=2048){ // condiconal para el color amarillo en el rango (1024 - 2048)
neopixelWrite(RGB_BUILTIN,amarillo,255,0); //amarillo
r = amarillo;
g = 255;
b = 0;
}
else
if(potValor>2048 && potValor<=3072){ // condiconal para el color naranja en el rango 2048 - 3072)
neopixelWrite(RGB_BUILTIN,255,naranja,0); //naranja
r = 255;
g=naranja;
b = 0;
}
else
if(potValor>3072 && potValor<=4095){ /// condiconal para el color rojo en el rango 3072 - 4095)
neopixelWrite(RGB_BUILTIN,255,rojo,0); //rojo
r=255;
g=rojo;
b=0;
}
if(Serial.available()){ //si hay un valor ingresado en el puerto serial, toma el dato
SetPoin = Serial.readStringUntil('/n').toInt(); //Persibe el dato entero que esta ingresado en el puerto serial
Serial.print("El valor se ajusto a ");
Serial.println(SetPoin+1);
}
if(valorTem >= SetPoin) //parpadeo del led
{
neopixelWrite(RGB_BUILTIN,0,0,0);
delay(400);
neopixelWrite(RGB_BUILTIN,r,g,b);
}
#endif
delay(100);
}