Arduino freezing problems (Peltier controller)

Hello everyone,

I'm having big issues with my project.
I want to control the temperature of a chamber using 4 Peltiers (TEC modules). I'm trying to implement a very basic ON/OFF control with a MOSFET, but the thing doesn't work.

Circuit, very simple :

  • 4 Peltiers in serie (8.5 A / 14.5 V max)
  • A logic-level MOSFET as a switch (55V / 36 A max)
  • A power supply for the Peltiers (36V / 400 W)
  • A schottcky diode to prevent any backward current
  • A pull down resistor on the gate to be sure that the MOSFET is OFF even when arduino is not powered
  • 10k resistor in serie with mosfet's gate (not represented on schematic)

-> Because the 4 Peltiers are in serie, each one of them will see 9 V (36/4) at his bornes.
-> 400W/36V = 11 Amps, it's over the 8.5 recommended for best efficiency for the Peltiers, but it will not destroy them.

My problem : I fist power the Arduino, and the main loop serialprint the temperatures continuously on my computer. As soon as I plug the Peltier's power supply to the wall, the Arduino freeze after 2 secondes. I can see it not responding because the serialprint stops and some other buttons that i'm using to control a screen also don't respond. Although, during this freeze time, the power supply keeps feeding the Peltier, and when I plug the power supply off, the Arduino unfreeze immediatly and continue to prints the temperature (which increased in betwween).

So, how can this happen ? Is some noisy current flowing backward to the arduino and make it freeze ?

If it can help, i'd like to explain another problem that occured few weeks ago while experimenting. My project is a basically a centrifuge, and its chamber has to be thermo-regulated. The Arduino also PWM a motor-driver, and I'm displaying the real time speed of the rotor on a 7 segment. Few weeks ago, with the same circuit described above (but with another schottky, which was underrated) I somehow managed to ON/OFF the Peltiers without freezing my Arduino. My probleme at the time, was that as soon as I was trying to run the rotor, my real-time speed feedback started to act erraticaly and was displaying random value (thus, something was interfering with my interruption on the TX pin , which calculates the speed). Also, the PWM was not stabilized, as i could see the rotor accelerate and decelerate erratically sometimes (but not all the time).

--> My idea was that something was messing with my timers, and I tried all possible combinations : to use pins that use different timers for my rotor's PWM and for my MOSFET ON/OFF control for Peltier ; to use different PWM frequency, to separate the grounds to avoid noise... none of theses worked.

Today, even this simple MOSFET control doesn't work, I've been on it for few weeks, and I'm desperately asking for help.
Many thanks in advance.

References :

MOSFET : IRLU2905PBF (Datasheet : http://lib.chipdip.ru/204/DOC000204934.pdf)
SCHOTTKY : VS-15TQ060PBF (Datasheet : http://lib.chipdip.ru/196/DOC000196739.pdf)

--> My idea was that something was messing with my timers, and I tried all possible combinations : to use pins that use different timers for my rotor's PWM and for my MOSFET ON/OFF control for Peltier ; to use different PWM frequency, to separate the grounds to avoid noise... none of theses worked.

Due to relatively high power load switching of the Peltiers, there could be considerable ground noise and RF interference and there could also be EMI interference from the motor load.

Suggestions:

  • Try using separate power sources for the Arduino and peltier/motor driver circuits.
  • Try using opto-isolators to completely isolate the peltier and motor driver circuits.
  • Try using a snubber circuit on the motor load.
  • To reduce RFI, try increasing the distance between the 2 circuits or use an EMI/RFI protected enclosure for the Arduino board.

Hi,

WHERE is "GROUND"?? May be the question.

On any high-power system like this you must use careful common-ground-point connections.

I suggest that that point may be the power supply negative terminal.

So, to that point, with separate (large for high-current circuits) wires you would connect:

  • Power supply negative terminal
  • Power FET "ground" SOURCE terminals
  • Arduino Ground pins (ALL of them)
  • Any signal circuits/devices

What other devices do you have (ALL of them)?? How are they wired?

You need to keep signal wires away from the high-power circuits.

You may have to completely isolate the 36V supply, Power FET and load with an optical isolator.

More details or a diagram of your system would help the helpers here.

  • Try using separate power sources for the Arduino and peltier/motor driver circuits.

Arduino is USB-supplied ; Rotor has his own power supply, different from Peltier's.
But i will try to opto-isolate.

@ terryking228
All devices already share the same ground point.
Here are the arduino's connections : (this schematic doesn't represent the Mosfet and Peltiers, but you can look the diagram in my first post)

https://drive.google.com/file/d/0B7pWEwjo0aZDcEpuMFBKWXV2YVk/edit?usp=sharing
The whole system in picture :

https://drive.google.com/file/d/0B7pWEwjo0aZDTFBVMjJ3SHV2UEU/edit?usp=sharing

Hi,
Wow,

The whole system in picture :

That looks like a LOT of antennas near each other.

And the POWER stuff like FET on the same breadboard as the switches. Looks like trouble.

Suggest you get a metal plate as a base, and rewire all this, with Power supply, Loads, FET in one section, all the low-power things in a separate area. Suggest a bolt into the metal base next to the power supply negative with wires from the FET Ground/Source and the Arduino grounds to that common point.
OH: the Computer with the USB: You may want to connect it's case ground to the common ground point! Think about where the BUILDING ground comes into all this. You do not want multiple ground paths.

The mechanical design of something like this is as important as the electrical design, and they go together.

Get the power part working with a simple test sketch, THEN start adding the inputs, display, etc.

I presume you are turning all peltiers on and off at the same time.

Do you get the same problems when only turning one of the peltiers on and off.

If not, you could consider delaying / sequencing the way in which you switch all four peltiers on and off, e.g leave 100ms between turning each one on or off.

Or perhaps try using high frequency PWM to fade in and out the power to the peltiers, but make sure your PWM rate is fast e.g 32khz or higher

Hi, the Diode across the peltier device, it should be a diode, not a zener diode, the orientation is okay.

I am not sure of the speed of the zener to conduct any back emf.

Check that you have decent sized wire for the peltier wiring, if it is the same as the hookup wire then you will certainly have problems.

Also please post your pictures and diagrams as attachments, see Additional Options.
The google cloudy thingy makes it hard to zoom etc, where as an attachment, it loads to my downloads and I can zoom etc instantly using a graphic viewer.
[soapbox]Sorry but haven't come across a cloudy thingy that really works like my hard drive.
The company I work for has changed to couldy thingy, and is about to boot the accountant in the goolies that got us to do it, slower than snail mail, and pain to get into. [/soapbox]

Tom....... :slight_smile: