Buonasera a tutti
Sto cercando di scrivere un codice per comandare una caldaia a legna e pellet composta da quattro motori a 220 volt , di cui due per far girare le cocle e due per la ventilazione
Volevo sapere se qualcuno già usato una scheda relè in input al posto di un pulsante?
il relai viene gestito tramite un termostato con una sonda inserita all'interno di un pozzetto della caldaia per rilevare la temperatura dell'acqua interna
Quando il termostato chiude il contatto fa scattare il rellè che anche lui a sua volta al circuito chiuso è Arduino deve far partire il programma
Prova a mettere il codice sotto
int rele1 = 2; //Pin arduino 2 collegato a pn IN1 Rele
int rele2 = 3; //Pin arduino 3 collegato a pn IN2 Rele
const int termostatoPin = 7;
void setup() {
pinMode(rele1, OUTPUT); //Imposta il pin 2 (ora chiamato rele1) come uscita
pinMode(rele2, OUTPUT); //Imposta il pin 3 (ora chiamato rele2) come uscita
digitalWrite(rele1, HIGH); //Inizialmente disattiva il
digitalWrite(rele2, HIGH); //Inizialmente Disattiva il Rele (logica invertita)
pinMode(termostatoPin, INPUT_PULLUP); // INPUT_PULLUP significa: contatto chiuso → LOW
// - contatto aperto → HIGH
Serial.begin(9600);
}
void loop(){
int stato = digitalRead(termostatoPin);
if (stato == LOW) {
// Contatto CHIUSO → esegue il programma
Serial.println("Termostato attivo: avvio programma...");
// ----- Qui dentro metti il tuo programma -----
avviaProgramma();
//attiva il primo rele
digitalWrite(rele1, LOW); //Attiva rele
delay(3000); //Rele acceso per 3 secondi
digitalWrite(rele1, HIGH); //Disattiva rele
delay(1500); //Rele spento per 1,5 secondi
//attiva il secondo rele
digitalWrite(rele1, LOW); //Attiva rele
delay(3000); //Rele acceso per 3 secondi
digitalWrite(rele1, HIGH); //Disattiva rele
delay(1500); //Rele spento per 1,5 secondi
}
else {
// Contatto APERTO → non fa nulla
Serial.println("Contatto aperto: in attesa...");
}
delay(500); // per evitare saturazione della seriale
}
void avviaProgramma() {
// Qui inserisci le istruzioni reali del tuo programma.
// Esempio:
Serial.println("Eseguo operazioni...");
delay(2000);
}