Show Posts
Pages: [1] 2 3 ... 7
1  Using Arduino / Sensors / Re: Peltier temp control PWM method - sensor analog reading value on: November 17, 2011, 11:03:42 am
I read the original requirement as 8A so one of those should be fine (~1W dissipation).  My quick search shows it to be a little bit cheaper than the IRLB8743 so back to the OP: where are you located and what are your cost constraints?  Would something like the STP60N3LH5 be easier/cheaper for you to source?

Back to your sensor question (since this is the Sensors forum  smiley-cool), you mentioned wanting at least +/- 0.5 deg C accuracy but the TMP36 appears to only be +/- 2 deg C.  Is that going to fit your needs? The DS18B20 robtillaart mentioned earlier does spec +/- 0.5 deg C accuracy.
2  Using Arduino / Sensors / Re: Peltier temp control PWM method - sensor analog reading value on: November 17, 2011, 02:42:15 am
OK - can't tell where you are located or what price you need.  I last bought the IRLB8743 through Avnet Express ($0.55 ea).  Also available from Mouser ($1.41).
3  Using Arduino / Sensors / Re: Peltier temp control PWM method - sensor analog reading value on: November 16, 2011, 11:20:42 pm
The IRL520 is a logic level FET but it's Rds(on) is way too high.  The power dissipated by the FET would be over 17W at 8 amps - hard to keep that cool.  The IRFZ44 is not a logic level FET as it's "on" resistance is spec'd at Vgs = 10V.  Both of these appear to be pretty old devices.  I'd look for something newer.  For example, the IRLB8743 has a max Rds(on) of only 4.2 mOhms at Vgs=4.5V.  FET power dissipation would be 0.288W at 8 amps - no heatsink needed.  There are less expensive parts with acceptable specs if cost is a concern.

Wiring is: Arduino PWM pin to series current limiting resistor, resistor to FET gate; FET source to GND (in common with the Arduino GND); TEC- to FET drain; and TEC+ to 12V.

Note: The 68.5W spec for your TEC refers to it's heat pumping capability, generally at 0 degrees delta-T.  It could also burn 96W (8A*12V from your specs) while pumping that heat.  Your hot-side heatsinking would have to get rid of the sum of those two.  The actual numbers may be different depending on your application; would also need to see the curves from the TEC spec.
4  Using Arduino / Sensors / Re: Peltier temp control PWM method - sensor analog reading value on: November 16, 2011, 06:17:57 pm
Simple PWM control of a TEC:  Use a logic level N-channel MOSFET as a low-side switch (ie, between the TEC and GND).  A FET with low Rds(on) will minimize losses and reduce/eliminate the need for a heatsink.  I haven't tried using the Arduino PID library (wrote my own code before this was available) but it will likely save you some effort in closing the loop.
5  Using Arduino / Sensors / Re: Peltier temp control PWM method - sensor analog reading value on: November 16, 2011, 12:59:56 pm
1. Which is the better method? (opinion)

- PWM the heatsink cooling fan, which is easy, but how effective.

- PWM the Peltier voltage - I have previously been advised against this, but I see others using it, providing the voltage is not cycled on/off.
Definitely control power to the Peltier, not the fan.  Full power to the Peltier with insufficient cooling sounds like a good way to damage the Peltier.  I've had good results with PWM control using a DS18B20 for temperature feedback (running continuously for several years now).  If you are using a '328 (or '168) based Arduino, Timer 0 runs PWM on pins 5 & 6 at just under 1 KHz (the others are about 490 Hz) so I'd recommend using Timer 0 (or you can change the frequency of another timer).
6  Using Arduino / Sensors / Re: SHT1x on: November 11, 2011, 11:55:54 am
The Sensirion library (v2.0) in the Arduino Playground (http://arduino.cc/playground/Main/InterfacingWithHardware#envhum) supports CRC checking.  You could use the NonBlocking example included with the library to debug your connection to the sensor.
7  Using Arduino / LEDs and Multiplexing / Re: Usage of (and Determining Resistors for) LED 4-digit 7-segment Display? on: October 16, 2011, 01:21:48 pm
Jeremy,

I haven't posted my library yet (soon!) but I can send you a copy now.  I originally wrote the code with AVR Studio for a specific project; my Arduino version is fully functional but still hard coded to use port D pins (D0 to D7) for communication with the STLED316S.  I'll publish it once I've removed that restriction.  In the mean time, if you can tell me which pins you used to connect to the chip, I can easily send you a version for you to use now.  Removing the pin restrictions should only affect private library functions so no impact to your code.
8  Using Arduino / Sensors / Re: Multiple Serial Humidity sensors - SHT71 on: October 02, 2011, 10:33:26 pm
The SHT7x (and SHT1x) parts do not use I2C communication.  The newer SHT21 does but has a fixed I2C address (it is also intended for 3.3V operation).  I have not tried this but it might be possible to save pins by connecting multiple SHT1x/7x devices to a single data line while dedicating individual clock lines to each part.
9  Using Arduino / LEDs and Multiplexing / Re: Usage of (and Determining Resistors for) LED 4-digit 7-segment Display? on: September 23, 2011, 01:52:50 pm
I don't see a connection to the GND pin of the display driver - there is still a rats nest shown.  You can move vias to open up a clearance for the ground plane to make the connection.  And/or, you can put a GND fill on the top layer and add one or more GND vias between the two layers.
10  Using Arduino / LEDs and Multiplexing / Re: Usage of (and Determining Resistors for) LED 4-digit 7-segment Display? on: September 22, 2011, 11:01:04 pm
One pulldown resistor is fine for the two unused inputs.  Also - you don't need the pullup on IRQ since you aren't using the keyscan functionality and are ignoring that signal.

Your traces will be covered by soldermask so you don't need to worry about bridging to them.  Solder bridges between pads are another story - you'll probably get some depending on your soldering skill and the steadiness of your hands but they aren't too hard to clear (solderwick and flux are your friend).  I avoid coffee on soldering days!

I see no value in avoiding vias in a double sided board.  That doesn't mean go hog wild - just don't create ugly routes to avoid them.  I would move the routes from between the SMT pads but that is matter of habit for board manufacturability reasons.  When you are only building a few, it probably won't matter.  If you have decided against ground fill, at least fatten up the Vcc and GND traces and make them as short as you can.  It's good to put the bypass cap close to the driver chip with short routes between the two.

Figure 8 has the 10, 20, and 40 mA cases highlighted in boxes.  That may help you make sense of it.
Peak = do not exceed even for brief periods.
DC = do not exceed steady state.
In either case, give it some margin.  The driver chip already multiplexes the digits so 40 mA (360 ohms Rset) should be safe.  4 digits plus discrete LEDs plus key scan time means each LED is on less than 20% of the time.
11  Using Arduino / LEDs and Multiplexing / Re: Usage of (and Determining Resistors for) LED 4-digit 7-segment Display? on: September 22, 2011, 10:03:29 pm
I would tie the unused inputs (KEY1 & KEY2) to GND through a 10K pulldown resistor rather than leaving them floating.  Floating inputs are generally a bad idea.  The unused DIGx outputs, however, can be left unconnected.

DIG2-5 are the best choice for a 4 digit display.  (DIG1 has special features intended for discrete LEDs although it can also be used for a 7-seg digit).  I'm sure we could start a pointless philosophical discussion over the correct order to connect the digits (endian wars!) but I'll refrain (for now  smiley-twist)

I can't tell what design rules you used.  Does it pass the DRC check?  I personally would avoid routing signals between the SOIC pads including routes to the pads themselves (I used 12 mil traces with 8 mil spaces & 24 mil traces for Vcc).  If you want to etch the boards yourself, you may need different rules  If you are using a board shop, a double sided board with plated through vias shouldn't be an issue.  My boards do use a flooded ground plane - no soldering issues given a proper soldermask.  That's harder to do with a hand etched board, though.

Figure 8 in the data sheet shows the correct Rset values to use for your desired max LED current.  360 ohms yields 40 mA, 720 ohms yields 20 mA, and 1.4K ohms yields 10 mA.  Remember that this is max current - you can dim the LEDs by writing to the chip registers (in 8 unequal steps).

If you don't already have enough of the Avago displays on hand, you may be forced to change your design.  Other vendors (eg, Kingbright) have the same pin numbering but the layout is different (2 rows of 6 pins instead of Avago's 7 & 5).  I learned this the hard way...
12  Using Arduino / LEDs and Multiplexing / Re: Usage of (and Determining Resistors for) LED 4-digit 7-segment Display? on: September 21, 2011, 01:36:58 am
Take a look at the STLED316S - under $2.50 last I checked.  It's a constant current LED driver (40mA) that can handle a 4 digit 7-seg display plus up to 8 discrete LEDs and can also read up to 16 switches.  The interface is 3 wires plus an optional interrupt for the switches.  The downside is it only comes in an 24 pin SOIC package (no DIP).  I've written a library for it if you are interested.

I suspect that Avago is discontinuing their LED clock module product line.  Their product selector page no longer shows 4-digit displays and parts are hard to find.  I had to switch vendors for my alarm clock shield.
13  Using Arduino / Programming Questions / Re: Is better to use ISR(PCINT2_vect) or attachInterrupt on pins 2, 3 ? on: September 20, 2011, 11:35:49 am
Pins 2, 3, 4 and 5 will generate interrupts
i use
Code:
if ((PIND & MASK_A_1) != (Status & MASK_A_1))//if digital PIN2 has changed
in order to determine witch pin has changed from the last call of ISR

I've used the following approach to count rising edges for 5 pins on Port C:

Code:
int pulseCount[5] = 0;

ISR(PCINT1_vect) {
  static byte oldPins = 0;                       // Saves pin status between interrupts
  byte newPins, setPins;
  newPins = PINC & 0x1F;                         // Get current status of all 5 pins
  setPins = (oldPins ^ newPins) & newPins;       // Bitmask of newly set pins (rising edge)
  for (byte n = 0; n < 5; n++) {                 // For each pin ...
    if (setPins & _BV(n))                        //   if pin is newly set...
      pulseCount[n]++;                           //   increment pulse count
  }
  oldPins = newPins;                             // Update saved pin status
}
14  Using Arduino / Motors, Mechanics, and Power / Re: Thermostat Control For High-Amp Peltier (TEC) on: September 12, 2011, 01:19:01 pm
Quote
You can get better FETs these days than 0.020R, you might have to use a non logic level one though and you will therefore need a driver
Agreed.  I've already found several logic level FETs with Rds(on) in the 5 mOhm range but haven't tried them out yet.  I currently have a fan blowing on the heatsink that is keeping it tolerable.  The FET I'm using has built-in overcurrent, overtemp, etc protection but that may be overkill for my application.

Quote
You need more bulk decoupling on the power supply. How much have you got now?
Good question - thanks for the tip.  I'm probably applying bigger transients than the designers planned on.  Lifting the cover on the supply, it looks like a pair of 1000 uF caps.

Hope the OP is finding all this helpful smiley
15  Using Arduino / Motors, Mechanics, and Power / Re: Thermostat Control For High-Amp Peltier (TEC) on: September 12, 2011, 08:49:08 am
That is what I am doing.  The FET gets pretty warm (12A & Rds(on) of 0.020 ohms) with a small heatsink.  Switching 26A will be more challenging.  I also get a bit of audible noise (whine) from my power supply in a certain low PWM range.  Since my application rarely gets below 50% PWM, I haven't pursued a solution (yet).

For a dehumidifier, be sure to use sealed TECs as the condensation will kill a TEC due to corrosion.  Assuming you want closed loop control of the cold side temperature, you'll also need a moisture resistant temperature probe.  My first attempt using a purchased silicone sealed thermistor was a failure; the silicone didn't stick to the teflon wire insulation so moisture eventually got to the thermistor and changed it's resistance.  Several websites sell water resistant probes built around the DS18B20.  I had already made my own before finding those.

Good luck!
Pages: [1] 2 3 ... 7