Buenas tardes, la función de este código es proteger a un calentador solar, de exceso de temperatura, y evitar que tire agua o se dañe, al llegar a cierta temperatura (ebullición) los tubos de vidrio, dejan de ser expuestos al sol, y cuando la temperatura se normaliza, los tubos son expuestos a la radiación solar nuevamente. Lo que deseo es que código actual funcione en maquina de estados para darle seguridad y robustez al sistema.
Saludos.
#include "max6675.h"
#include<Wire.h>
const byte thermoDO = 6;
const byte thermoCS = 5;
const byte thermoCLK = 4;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int PUL = 9; //Pin para la señal de pulso
int DIR = 10; //define Direction pin
int EN = 11; //define Enable Pin
const byte vccPin = 3;
const byte gndPin = 2;
float temp;
void setup() {
Serial.begin(9600);
pinMode(vccPin, OUTPUT);
digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT);
digitalWrite(gndPin, LOW);
pinMode (PUL, OUTPUT);
pinMode (DIR, OUTPUT);
pinMode (EN, OUTPUT);
digitalWrite(EN, HIGH);
}
void loop() {
delay(800);
if (temp = thermocouple.readCelsius());
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
if ( temp < 30.00) {
digitalWrite(DIR, LOW);
for (int i = 0; i < 66.6; i++) //Forward 1600 steps
{
digitalWrite(PUL, HIGH);
delayMicroseconds(650);
digitalWrite(PUL, LOW);
delayMicroseconds(650);
}
delay(800);
if (temp = thermocouple.readCelsius());
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
if ( temp > 27.00); {
digitalWrite(DIR, HIGH);
for (int i = 0; i < 66.6; i++) //Backward 1600 steps
{
digitalWrite(PUL, HIGH);
delayMicroseconds(650);
digitalWrite(PUL, LOW);
delayMicroseconds(650);
}
}
}
}