Szia!
Köszi, a kódot alább bemásolom, nem atomreaktor hűtőt vezérel, hanem egy pálinkafőzdében a hűtőtorony kézzelvezérlését hivatott kiváltani szakaszosan. Semmi probléma nem történik, ha nem hűt időben, vagy ha befagy is észreveszem, de most egy ideje a táppal kínlódok, mivel nagyon érzékeny a kapott tápegységre, mikor a relé behúz az 10mA-el megcsapolja a tápot és rögtön félremér a K-elem amitől ki-be húzgál minden másodpercben. Ez csak külsőtápról csinálja, ha gépre kötöm tökéletesen működik, mivel az USB-t meg tudja húzni... jelenleg USB-ről jár, hosszú 7,5m-es kábelen de így meg a feszültségesés miatt ~10C vel alámér... :D A táppal szívok egy ideje, nincs valami "tökéletes" megoldás? Egy 500W-os AXT-t nem akarok járatni miatta... :-D
#include <max6675.h>
float cefrezo;
int rele_c = 28;
float cefrezo_cel_be;
float cefrezo_cel_ki;
float finomito;
int rele_f = 29;
float finomito_cel_be;
float finomito_cel_ki;
int c_vcc = 39;
int c_gnd = 41;
int c_so = 37;
int c_cs = 35;
int c_sck = 33; //Max6675 K-hőelemhez szükséges lábkiosztás
int f_vcc = 38;
int f_gnd = 40;
int f_so = 36;
int f_cs = 34;
int f_sck = 32; //Max6675 K-hőelemhez szükséges lábkiosztás
MAX6675 thermocouple(c_sck, c_cs, c_so);
MAX6675 thermocouple1(f_sck, f_cs, f_so);
void setup() {
Serial.begin(9600);
pinMode(rele_c, OUTPUT);
pinMode(rele_f, OUTPUT);
pinMode(f_vcc, OUTPUT);
pinMode(f_gnd, OUTPUT);
pinMode(c_vcc, OUTPUT);
pinMode(c_gnd, OUTPUT);
digitalWrite(rele_c, HIGH);
digitalWrite(rele_f, HIGH);
digitalWrite(f_vcc, HIGH);
digitalWrite(f_gnd, LOW);
digitalWrite(c_vcc, HIGH);
digitalWrite(c_gnd, LOW);
cefrezo_cel_be = 65;
cefrezo_cel_ki = 40;
finomito_cel_be = 70;
finomito_cel_ki = 40;
}
void loop() {
cefrezo = (thermocouple.readCelsius());
delay(500);
finomito = (thermocouple1.readCelsius());
Serial.print(" Cefrezo huto homerseklete: ");
Serial.print(cefrezo);
Serial.print(" Finomito huto homerseklete: ");
Serial.println(finomito);
if (cefrezo >= cefrezo_cel_be){
digitalWrite(rele_c, LOW);
}
else{
}
if (cefrezo <= cefrezo_cel_ki){
digitalWrite(rele_c, HIGH);
}
else{
}
if (finomito >= finomito_cel_be){
digitalWrite(rele_f, LOW);
}
else{
}
if (finomito<= finomito_cel_ki){
digitalWrite(rele_f, HIGH);
}
else{
}
delay(1000);
}