Hi Craig,

> The MOSFET in the diagram is being used for PWM fan control. It
> interrupts the neutral fan wire.
>

Oh wow, that totally slipped past me when I looked at it last. That won't work because the Arduino's power supply is isolated (and that's a very good thing). "GND" in your circuit is an isolated GND; there's no path through the MOSFET back to the neutral AC line. The motor just won't run at all.

It also won't work if you connect Q1 pin 3 to the AC neutral instead of GND, again because the Arduino supply is isolated. The MOSFET will behave as if its gate is floating. The motor will get half the AC cycle when the MOSFET's body diode is forward-biased, and [undefined behavior] the other half cycle. And you'd potentially have 120VAC coupled back into your Arduino circuit thanks to the gate capacitance in the MOSFET.

Another thing that won't work is to simply move the MOSFET between the bridge rectifier and the motor, again because of the lack of reference. It would also be equally bad to tie your DC GND to either DC side of the motor. If the DC circuit isn't completely isolated, it's going to be 120V away from earth ground 60 times every second (i.e. the whole thing will be "live").

So your best bet, if you want to have the fan powered as it presently is by the popper and not a separate 19-VDC supply, is to use a TRIAC with an isolated driver (photocoupler). The TRIAC itself is connected to the AC lines, and only the LED inside the photocoupler is connected to your DC circuit.

A triac such as this one:
https://www.digikey.com/short/zczrp0
and a photocoupler such as this one:
https://www.digikey.com/short/zczr4t

The photocoupler's datasheet has a typical application diagram on page 7 (PDF page 8), showing how the coupler and the external triac are wired to an AC load and a DC control circuit. The diagram shows a BJT used to drive the coupler's LED, but your Uno can drive it directly with the appropriately-sized resistor (it's just like driving a discrete LED). The resistors and capacitor on the load side are forming a low-pass filter for the TRIAC's gate, and could be omitted (resistors become wires, capacitors become open circuit).

Controlling the heater with PWM would be useful.

Could this technique work? "Bresenham algorithm" with SSR?
https://electronics.stackexchange.com/questions/304148/is-there-a-way-to-use-pwm-to-control-ac-mains-powered-heater

The accepted answer on that question isn't a bad suggestion, but note that its PWM period is 255 AC cycles, or a little over four seconds. I honestly think this is overkill, because...(read on)...

A simple on/off with the SSR is also fine to get me started. The instructables code example cuts power when the temperature probe says it is too high. That should be fine. When it is low enough, it turns on again.

AFAIK, industrial process controls that monitor temperature commonly take readings no more often than 1 Hz, because in most cases a system simply doesn't heat up or cool off that fast. I'd bet if you monitor and turn heat on/off only as fast as once per second, that'll be more than enough for good repeatability, no fancy-named algorithms required!

Of course, since you're using an Arduino, you could also do some datalogging, and empirically determine the difference in temperature profiles from a 1-Hz on/off thermostat versus a PWM approach. I for one, in addition to welcoming our new Arduino-controlled coffee-bean-roaster overlords, would be interested to see if the difference is appreciable.

Cheers,
-Brian

_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: TriEmbed@triembed.org
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: 
mailto:unsubscribe-triem...@bitser.net?subject=unsubscribe

Reply via email to