retrolefty wrote:
The P&ID output signal should form it's own slow frequency PWM output using just digitalWrite commands to work with these kinds of SSR relays. The P&ID library you use should explain how it will handle developing it's own PWM output signal.

he he, lefty, I think you mean PID, not P&ID, which is a Process & Instrumentation Diagram. PID, is an acronym for Proportional, Integral Derivative.

But yes, the Arduino PWM function will be way too fast for most readily available SSR's, in that the PWM period is far too short.

Using digital write is a way around the problem.
For PID I use from the Playground, TimerOne or TimerThree, depending on the board, and use the PWM function provided by that.
It works very well indeed.

nukegara_blue:
Remember to understand how you wish your PID to work in terms of whether it's operating in heating or cooling mode.
You effectively change this in your PID by swapping your setpoint and present value input terms to alter the sign of the PID internal error term. Otherwise if you have it incorrect, you will have a positive feed situation, eg, get hotter and hotter.

It might be that for your project, you may only need the P or at most, the P and I terms to have it controlling the temperature as well as you can. By this I mean, just try initially setting the P term with the I and D terms set to zero.
Depending on the PID control strategy you employ, P will be either a 'gain' or a 'bandwidth' term.

Usually a PID code block will express an output as a value, either as an integer in a range, eg. 0 - 16383 or as a percentage, eg. 0 - 100%
Remember that when setpoint equals present value, the output will remain at that fix value, it will only deviate as the present value moves away from setpoint.

Paul