Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« on: November 22, 2012, 03:00:40 am » |
Hi,
i want to read the temps from my central heating system. I don't have the specs of the thermistor's but tables from the central heating manual (see attachment). I can measure the voltages with my multimeter and if i look into the tables it looks ok. But all thermistor reading examples i find require the usage of the Arduino voltage (voltage divider circuit). Is there a way to read the voltages from the thermistors without coupling the central heating and Arduino voltage?
Attachment: Table 1: furnace water temp & underfloor heating water temp Table 2: outside air temp Table 3: hot water storage tank (water temp)
Thanks for help in advance :-)
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #1 on: November 22, 2012, 05:38:10 am » |
Yes, it can be done. First, check that there a common ground connection for all 3 thermistors. If there is, you can use 1 sensor board to measure 3 voltages with respect to that ground, all with the range 0 to +5v. You can make that sensor board using an ADUM6401 digital isolator http://www.analog.com/static/imported-files/data_sheets/ADuM6400_6401_6402_6403_6404.pdf and a 4-channel SPI ADC chip such as http://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf. Conveniently, you can buy an evaluation board for the ADUM6401, which saves you making a PCB yourself. You can wire the ADC on the prototyping area of the board. Not only does the ADUM provide isolation between the ADC and the Arduino, it also provides a 3.3V or 5V isolated power supply to the ADC. Note that there is a minimum load that you must put on the isolated power supply. I normally provide this load using an LED and series resistor, so that I can see that there is power on the isolated side. A lower cost alternative would be to use opto isolators to isolate the ADC from the Arduino, but then you would still have to provide power to the ADC chip somehow.
|
|
|
|
« Last Edit: November 22, 2012, 05:40:39 am by dc42 »
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #2 on: November 22, 2012, 07:57:35 am » |
Ah, didn't know this dc-dc-converters. Yes all thermistors have common ground. I have 4 so i need 2 ADUM6401. The central heating connections are: AF1 = 0 volt ground AF2 = outside air thermistor KF2 = furnace thermistor VF2 = underfloor heating water thermistor BF2 = hot water storage tank thermistor The ADC chip means i read the voltage on the Arduinos digital inputs? Do you have an example circuit diagram to give me a kick-start? For the evaluation board i think you mean this one: http://www.analog.com/en/evaluation/eval-adumqs/eb.htmlBut it's a little bit to difficult to get here in Germany.
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #3 on: November 22, 2012, 09:52:32 am » |
Ah, didn't know this dc-dc-converters.
Yes all thermistors have common ground. I have 4 so i need 2 ADUM6401.
No you don't, you just need a 4-channel ADC (such as the MCP3204 that I suggested) and one ADUM6401. The central heating connections are: AF1 = 0 volt ground AF2 = outside air thermistor KF2 = furnace thermistor VF2 = underfloor heating water thermistor BF2 = hot water storage tank thermistor
Good, you have a common ground connection. The ADC chip means i read the voltage on the Arduinos digital inputs? Do you have an example circuit diagram to give me a kick-start?
I don't have a circuit diagram that I can share, but here is an outline. Connect the MOSI and SCLK pins of the Arduino and one other digital output to the 3 inputs of the ADUM6401. Connect the ADUM6401 output to Arduino MISO. On the isolated side, connect the three ADUM outputs to Din, CLK and CS respectively of the MCP3204. Connect MCP3204 Dout to the input on the isolated side of the ADUM. You will also need a smoothing capacitor on the ADUM power output, and an LC network to feed the Vref pin of the MCP3204. I can't remember how stable the 5V output of the ADUM6401 is. Check the datasheet, and if necessary drive Vref from a precision 4.5V precision voltage such as http://uk.farnell.com/maxim-integrated-products/max6145eur-t/ic-v-ref-prec-3-term-sot23-3/dp/1673172 instead of the LC network. http://de.farnell.com/analog-devices/eval-adumqsebz/bord-eval-icoupler-isolation/dp/1897086?Ntt=EVAL-ADUMQSEBZ
|
|
|
|
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Netherlands
Offline
Tesla Member
Karma: 101
Posts: 9551
In theory there is no difference between theory and practice, however in practice there are many...
|
 |
« Reply #4 on: November 22, 2012, 12:51:08 pm » |
for mapping voltage on temperature multimap can be useful if the table is not linear - http://arduino.cc/playground/Main/MultiMap -
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #5 on: November 28, 2012, 04:20:45 pm » |
Ok, here the circuit.
To i need the smoothing capacitor if i use the MAX6145?
Is the circuit correct?
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #6 on: November 29, 2012, 04:25:24 am » |
Yes, you do need smoothing capacitors, see the ADUM6401 datasheet for the recommendations. I attach a schematic of the arrangement I have used when I need a 3.3V output. For 5V output you need to connect pin 10 to VDD2 instead of GND2, also increase the LED series resistor. The LED provides the recommended minimum load of 10mA. C6 is the decoupling capacitor for the MCP3204 and MAX6145.
EDIT: also you need to connect pin 12 (AGND) of the MCP3204 to the isolated supply ground side.
|
|
|
|
« Last Edit: November 29, 2012, 11:04:27 am by dc42 »
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #7 on: November 29, 2012, 10:43:24 am » |
Sorry but now I'm totally confused on the iso side. Even with the MAX6145 i need the LC network? Where to place the MAX6145?
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #8 on: November 29, 2012, 11:07:38 am » |
You may get away without the LC network, it's hard to say without trying it, it depends on how sensitive the MCP3204 is to power supply noise, and how precise and stable you need the voltage readings to be.
The MAX6145 should take is input from the filtered supply.
|
|
|
|
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #9 on: November 29, 2012, 04:50:51 pm » |
Ok, next try  (attachment) And it doesn't matter which ADuM logic output i connect to which pin on the MCP? Your Arduino pin naming is confusing me - SCLK = Pin 52 SCK? And should i take the ADUM6401ARWZ-ND or the ADUM6401CRWZ-ND?
|
|
|
|
« Last Edit: November 29, 2012, 05:46:32 pm by MrGlasspoole »
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #10 on: November 29, 2012, 06:32:59 pm » |
A few observations:
- You don't need D1 or C3 - Pin 14 of the MCP3204 should go to the filtered supply (+ve side of C2), not the unfiltered supply - C2 in my design was 22uF, not 220uF - You also need 10uF or 22uF in parallel with 100nF between pins 16 and 9 of the ADUM6401 (the evaluation board is laid out for 22uF and already has the 100nF) - Pin 12 of IC1 should be connected to pin 7, and separately connected to the common side of the voltages to be measured - If you use the evaluation board, it is laid out for a 68uF capacitor at C5, and C4 is already on the board. - I suggest you include 10K resistors in series with the MCP3204 analog inputs, to give some protection against voltage transients
The 3 channels passing signals to the isolated side of the ADUM6401 are interchangeable.
You have a choice of how you interface the Arduino Mega to the device:
- For maximum speed, use hardware SPI. In this case, the SCLK pin of the Mega must be routed to SCK of the MCP3204, MOSI must be routed to Din, and Dout must be routed to MISO. You can route any other output pin on the mega to CS on the MCP3204. Maximum SPI speed is 1MHz if you use the A version of the ADUM6401, and as high as the Mega will go (8MHz) if you use the C version. However, if you want to share the SPI subsystem with other devices, then you need to connect a tri-state gate between the ADUM6401 channel D output and MISO (I use a 74LV1G125 for this - it is an SMD device).
- Alternatively, use any 4 pins you like on the Mega and use software SPI. The achievable data rate will be lower, although you can probably approach 1MHz if you use direct port access.
I hope this helps
|
|
|
|
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #11 on: November 29, 2012, 11:01:57 pm » |
Ok, i now first order parts that i can start to build something. But i can't find the 74LV1G125. Not at farnell, not at digikey and in no German shop... I think it's more future prove to use the 74LV1G125 cause i want to log the data to a SD card have the network shield and also want to build some radio control for a water-pump (enocean if possible). Does the wire from the heating system thermistors to the MCP3204 not affect the output of the thermistors (wire resistance)? Or the 10K resistors? Not that the heating system turns into a air conditioning systems  Maybe its a big thing for an Arduino beginner. But like cabinetmakers say: "start with something you like and something you have fun with. Don't select your project by easy or difficult". I think it's learning by doing. And if the help here is so great like yours, than we can build a machine to take over the world *lol
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #12 on: November 30, 2012, 03:43:47 am » |
Put 74LVC1G125W5-7 into the Farnell search box, that's the exact part number and it finds it. I attach a schematic of how I connect it. I use a 6-pin SOT23 breakout board from Sparkfun or Futurelec, which I solder on to the eval board using a 2-pin header. Or you could wire it dead-big style. The 10K pullup resistors in the schematic keep the signals clean while the Arduino is powering up.
The MCP3204 has a very high input resistance, so it doesn't affect the voltage you read from the thermistors, neither do the 10K resistors affect it. If there is any noise on the signals being measured, the you might want to put a capacitor (e.g. 1uF ceramic) between each of the analog input pins and AGND, so that it and the 10K resistor act as a low-pass filter.
|
|
|
|
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 92
|
 |
« Reply #13 on: December 01, 2012, 06:23:16 pm » |
Ok, next one  Now i need to read allot about the SPI stuff and why it's now hardware with the 74LVC1G125W5. It means i need a 74LVC1G125W5 for every device now that uses SPI (SDcard, Ethernet...)?
|
|
|
|
|
Logged
|
|
|
|
|
United Kingdom
Online
Faraday Member
Karma: 146
Posts: 4894
|
 |
« Reply #14 on: December 02, 2012, 03:44:59 am » |
It means i need a 74LVC1G125W5 for every device now that uses SPI (SDcard, Ethernet...)?
No, devices that use true SPI protocol always have 3-state outputs on the data out pin. But the ADUM6401 is a generic device not specifically intended for SPI, and unfortunately it doesn't have 3-state outputs.
|
|
|
|
|
Logged
|
Formal verification of safety-critical software, software development, and electronic design and prototyping. http://www.eschertech.com
|
|
|
|
|