Pid con Arduino per carichi ac/dc

Salve a tutti, sto implementando un progettino che dovrà servirmi per controllare la temperatura di un carico da 200W in dc (elementi ceramici riscaldabili) e un secondo progetto, separato, che dovrà pilotare una resistenza da 2500W ac per mantenere una determinata temperatura di un liquido. Il codice che sto analizzando, preso in rete, è il seguente:

#include <PID_v1.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define pinData 11
#define SSR 3
#define led 13
#define tempoCiclo 1000
double Setpoint, Input, Output;
double Kp=100, Ki=0, Kd=0;
float temperatura=0;

unsigned long rispostaUltimaTemperatura = 0;
unsigned long lastPIDCalculation = 0;
float prevTemperature = -9999.0;

PID myPid(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
OneWire OurWire(pinData);
DallasTemperature sensors(&OurWire);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
Setpoint = 30.0;
myPid.SetOutputLimits(0, 255);
myPid.SetSampleTime(tempoCiclo);
myPid.SetMode(AUTOMATIC);
Serial.begin(115200);
pinMode(SSR, OUTPUT);
digitalWrite(SSR, LOW);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
sensors.begin();
lcd.begin(16, 2);
}

void loop()
{
if (millis() - rispostaUltimaTemperatura >= tempoCiclo) {
	temperatura = sensors.getTempCByIndex(0);
	Input = (double)temperatura;

	myPid.Compute();
	lastPIDCalculation=millis();
	Serial.print(temperatura);
	Serial.print(" , ");
	Serial.println(Output/10);
	sensors.requestTemperatures();
	rispostaUltimaTemperatura = millis();
 lcd.setCursor(0, 0);
 lcd.print("t:");
 lcd.setCursor(2, 0);
 lcd.print(Input);
 
 lcd.setCursor(8, 0);
 lcd.print("sp:");
 lcd.setCursor(11, 0);
 lcd.print(Setpoint);
 
lcd.setCursor(0, 1);
 lcd.print(Output);
 
}
control();
}

void control() {
if ((millis() <= (lastPIDCalculation + Output)) || (Output == tempoCiclo)) {
	// Power ON
	digitalWrite(SSR, HIGH);
	digitalWrite(led, HIGH);
	}
	else {
	// Power OFF
	digitalWrite(SSR, LOW);
	digitalWrite(led, LOW);
	}
}

osservando l'uscita, al di là dei valori del pid ancora da stimare, ho notato che l'output effettivamente varia tra il minimo ed il massimo impostato, a seconda della variazione della temperatura rilevata. Ho però il problema di come gestire la fase di pilotaggio dei due carichi. Ho attualmente un ssr fotek (SSR-25DA):

ho letto su altri post che un ssr non può essere direttamente utilizzato per pilotare carichi in ac. Mi date qualche dritta per risolvere? grazie"

Un ssr non può essere utilizzato per carichi in DC, vanno bene solo per carichi in AC.

Per il carico a 2500W ATTENZIONE AL REGOLAMENTO!

Ciao,
P.

ringrazio per la precisazione riguardo il regolamento.
Relativamente alla bassa tensione quale sarebbe il modo corretto per alimentare proporzionalmente (on off? proporzionale?) il carico resistivo da 200w a 12v? sono due resistenze ceramiche da 100 w e potrei anche usarne una, oppure metterle in parallelo a seconda della risposta del mio sistema.

per la tensione a 220v, volendo rimanere nelle regole imposte dal forum, oltre magari a capire la teoria alla base del funzionamento, esiste un modulo certificato e sicuro e quindi già realizzato che possa essere accoppiato al mio arduino per pilotare in sicurezza i carichi in questione con il mio programma? (anche in questo caso il carico è puramente resistivo, ma da 2500W - 220V AC).

per entrambe le soluzioni, attualmente ho un termostato tipo STC-1000 che non tiene conto di deriva termica e per me questo comportamento non è tollerabile.
Grazie.