a ver q opinais de este metodo q he encontrado para calcular la temperatura, la verdad es q ya no me pasa lo del delay de una manera tan exagerada tenias razon al usar los samples x8 tb el delay era por x8 asi es mas real
la verdad q lo del smooth no lo di aplicado al lm35 pero estoy en ello
os pongo el código a ver q opinais gracias por vuestra ayuda sois la caña.
int fan = 11;
int valor;
const int buttonPin = 7;
const int ledPin = 13;
int pul = 0;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
int relem = 12;
float tempValor = 0;
float pinTemperatura = 0;
float celsius = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(relem, OUTPUT);
Serial.begin(9600);
}
void loop()
{
pinTemperatura = analogRead(0);
tempValor = (pinTemperatura*5000)/1024;
tempValor = tempValor-500;
celsius = tempValor/10;
delay (100);
Serial.print("La Temperatura en este momento es de: (Celsius) = ");
Serial.println(celsius);
int valor = celsius*255/37;
analogWrite(fan,valor);
if (valor > 200){
analogWrite(fan,255);
}
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;
}
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0) {
digitalWrite(relem, LOW);
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
digitalWrite(relem, HIGH);
analogWrite(fan,0);
}
}