Salve a tutti,
ho un problema con questo sketch. Vorrei far spegnere il relay1, se la temperatura è maggiore di 30 gradi, ma non funziona.
#include <max6675.h> //temperatura
#define RELAY1 31 // IN1 Relay collegato al pin digitale 31
#define RELAY2 33 // IN2 Relay collegato al pin digitale 33
#define BUTTON 52 // pin di input dove è collegato il pulsante
#define BUTTON2 53 // pin di input dove è collegato il pulsante 2
#define TMAX 30
int temp;
int ktcSO = 8; //pin termocoppia
int ktcCS = 9; //pin termocoppia
int ktcCLK = 10; //pin termocoppia
int val = 0; // si userà val per conservare lo stato del pin di input
MAX6675 ktc(ktcCLK, ktcCS, ktcSO);
void setup() {
Serial.begin(9600);
pinMode(RELAY1, OUTPUT); // imposta il pin digitale come output
pinMode(RELAY2, OUTPUT); // imposta il pin digitale come output
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
delay(50);
}
void loop() {
Serial.print("temperatura = ");
Serial.print(ktc.readCelsius());
delay(250);
temp=byte(ktc.readCelsius());
val = digitalRead(BUTTON); // legge il valore dell'input e lo conserva
// controlla che l'input sia LOW (pulsante premuto)
if (val == LOW) {
digitalWrite(RELAY1, HIGH); //accende il relay
}
else {
digitalWrite(RELAY1, LOW); //spegne il relay
}
//per temperatura
if (val == HIGH && temp>TMAX) {
digitalWrite(RELAY1,LOW);
}
val = digitalRead(BUTTON2);
if (val == LOW) {
digitalWrite(RELAY2, HIGH); //accende il relay
}
else {
digitalWrite(RELAY2, LOW); //spegne il relay
}
}