temperatura e relè

salve ragazzi, dovrei comandare 4 relè mediante una sonda di temperatura e regolare con un potenziometro la temperatura a cui si desidera arrivare.
esempio: potenziometro impostato su 20 gradi
quando la sonda rileva 20 tutto fermo,
quando rileva 20,4 si accende il primo relè,
quando rileva 20.8 si accende il primo e il secondo relè,
quando rileva 21.2 si accende il primo il secondo e il terzo relè,
quando rileva 21.6 si accende il primo il secondo il terzo relè e il quarto relè.

come posso realizzare lo sketch? grazie in anticipo

Per prima cosa devi decidere che tipo di sonda per la temperatura utilizzare. Analogica o Digitale, un NTC o un LM35 o un DS18B20.
Poi scrivi uno sketch che rilevi la temperatura e la stampi su seriale. Trovi un milione di esempi su internet.
Infine con il dato della temperatura, tarata e calibrata, e una serie di IF comandi l'apertura e la chiusura dei relè (altro milione di esempi su internet). :grin:
Easy. :wink:

io sto usando un lm35.
e il potenziometro? ho notato che muovendo il potenziometro mi cambia anche la temperatura...
questo è il mio sketch non finito e incasinato :blush:

int led1=10;
int led2=6;
int led3=5;
int led4=3;
int pot=0;
int sens= A1;
float tempC;
int reading;
int potValue;
int buttonPin = 12;
int buttonState=0;
boolean pote=false;

void setup ()
{
  Serial.begin(9600);
  pinMode (buttonPin, INPUT);
  pinMode (led1,OUTPUT);
  pinMode (led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
}
void loop(){
  if (buttonState == HIGH) poten();
  buttonState = digitalRead(buttonPin);
  if (potValue == 1023) caso();

}

void poten()
{
  if (pote==false){
    potValue = analogRead(pot); 
    Serial.println(potValue);
    delay(10000);
  }
  if(buttonState == LOW){
    pote=true;
  }
}

void caso()
{  
  
    reading = analogRead(sens);
  tempC = reading * 0.48828125;
  Serial.println(tempC);

    if (tempC == 20);
  {

    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
  }
  if (tempC >= 20.4 && tempC <20.8);
  {

    digitalWrite (led1, HIGH);

  }
  if (tempC >= 20.8 && tempC <21.2);
  {
    digitalWrite (led1,HIGH);
    digitalWrite (led2,HIGH);
  }
  if (tempC >= 21.2 && tempC <21.6);
  {
    digitalWrite (led1,HIGH);
    digitalWrite (led2,HIGH);
    digitalWrite (led3,HIGH);
  }
  if (tempC >= 21.6);
  {
    digitalWrite (led1,HIGH);
    digitalWrite (led2,HIGH);
    digitalWrite (led3,HIGH);
    digitalWrite (led4,HIGH);

  }
}

Posta i collegamenti del sensore e del potenziometro, quasi sicuramente il problema e li.
Non ti aspettare una tensione stabile di 5V dalla usb del PC, usa un alimentatore esterno da >7V <15V da inserire nella presa DC di arduino.

Inoltre c'è la possibilità di sfruttare il riferimento interno agli atmega, sempre che di atmega si tratti.
Nel forum cerca i post legati a LM35, ne troverai molti.

Ciao.

un pin l'ho collegato su 5 volt uno su gnd e 1 su A0 per il potenziometro e A1 per il sensore.
ho un arduino 1