control ventiladores y un maldito boton :)

Fenomeno.... muchas gracias ya he coseguido lo q qria :), efectivamente era con ese ejemplo, ahora al pulsar una vez apaga el led los fans y enciende el rele ¡¡¡ y al volver a pulsar justo lo contrario.

Dejo aqui el codigo q he estado probando en la protoboard por si alguien lo quiera o ve una posible mejora (siempre hay espacio para mejorar) ahora solo me qda un pqño problema con el delay de la temperatura ya q me afecta a toda la programacion si lo subo por ej al pulsar el boton tengo q estar ese tiempo pulsandolo para q funcione no se si hay alguna manera de aislar el delay de la temperatura para q solo afecte a la sonda y no a todo¿?¿?¿? he intentado aislarlo en cochertes pero no ha servido de nada.... :frowning:

int pinTemperatura = 0;
int fan = 11;
int tempValor = 0;
int samples[8];
int i;
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;

void setup()

{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(relem, OUTPUT);
Serial.begin(9600);
}

void loop()

{
for(i = 0;i<=7;i++){
samples = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;
_ tempValor = tempValor + samples*;_
_
delay(100); //<<<-----------delay temperatura me afecta a todo*_
* }*
tempValor = tempValor/8.0;
Serial.print("La Temperatura en este momento es de: (Celsius) = ");
Serial.println(tempValor);

_ int valor = tempValor255/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);*
* }*

tempValor = 0;
}