So when I finished with my hardware post previously I didn’t get the unit to work properly. The relays were working correctly but the temperature measurement wasn’t working correctly. I got weird values from the thermocouple conditioner and whether I heated up the temperature probe or cooled it down, it didn’t make a difference in the RAW measured value that I was getting in. So I thought that maybe I blew my thermocouple conditioner. That is when I removed it from the board and accidentally broke one of the legs, causing me to have to order another two for testing.
From the testing, I found that the thermocouple conditioner on the breakout board was working with the Arduino Nano but not with the Arduino UNO with the shield. I then went ahead and soldered wires onto the connection pads of the shield to further test the circuit:
I then found that the thermocouple conditioner was working with the Arduino UNO without the shield and with the Arduino Nano. So I then concluded that the problem had to be a broken track or something else that is wrong on the shield.
I then went on to test the shield itself and found that the track that goes from the output of the thermocouple conditioner to the analogue input of the Arduino was broken. I then fixed it and started testing the circuit again but then I started getting another issue.
The back light of the display started acting up, i.e. the back light came on and off, came on and off. I tried to resolve this and figured that it was the cable from the shield to the display board but it wasn’t. I then went ahead and started testing the rest of the board. The problem turned out to be a dry solder joint on the shield. When I corrected this everything was working again.
From testing the thermocouple conditioner with the breakout board I found that the temperature measurement will have to be calibrated. The datasheet specifies that the thermocouple conditioner will yield 10 mV per 1 Deg C of temperature applied. I have referenced my analog input with the Aref pin to 3 V. Since the thermocouple conditioner can’t give an output voltage higher than 2V below the supply voltage (the supply voltage is 5 V) so the maximum output won’t go above 3V. By referencing Aref to 3 V it means that my resolution will be better.
3 V will be the maximum 1023 RAW input value. The range goes from 0 – 1023 meaning the entire range is 1024. This means that I need to divide my RAW value with 3.4133 (1024 (max. raw val.) / 300 (max. temp measurable) = 3.4133) to get the measured temperature value. After determining this I tested the measurement in a bowl of ice and the measured value and the raw value was correct at zero degrees. I then tested the measurement in my kettle with boiling water and the measurement yielded a measurement of only 70 Deg C. I then realized that I will have to apply a calibration procedure to get the measurement to measure correct over the entire range.
I have started with creating an algorithm to be able to do this but haven’t had a chance to put it into code. In another post I will explain how I’d imagine the algorithm to work. I have also acquired the needed pcb spacers and installed them this past Friday. The completed hardware unit is looking good and I’m very happy with the result.
Now just to finish the coding and to get the system to work. Looking forward to completing the product and drawing a close to a year of my spare time spent 🙂 . If there any any questions just drop them in the comment section.