|11-07-13, 10:14 AM||#11|
Join Date: Mar 2009
Location: Portland, OR
Thanked 723 Times in 534 Posts
* * *
Well, yes. With analog sensors, you are sending minute and varying voltage levels to the ADCs to do their job, so the leads to the sensor become antennas, and the ADCs can't tell the difference between siginal and noise. you can do some good with caps and also with shielding, and also with wire routing, and also with minimizing the length of the leads.
With 1-wire, the ADC is on the same chip as the sensor, so the above situation is very much reduced because the analog siginal is immediately converted to digital, and since you are sending digitally encoded data, minor variations in voltages make no difference to the value that is sent to the logger.
Additionally, all data logging must contend with some degree of noise in the readings. The most common way of dealing with this is to do some averaging over a certain number of data samples. The averaging approach will depend on the severity of the noise and also the characteristics of the data. So you want just enough averaging so that the data will emerge from the background of noise.
It is for these reasons that I much prefer 1-wire... lower noise, a better shot at accuracy.
The datalogger I use is not free from noise, but it is very low. It could be improved by providing a process called "binning". This would mean that the different data sample streams would be put in a memory location, and subsequent samples of that stream would be added to that number. This would repeat for a given number of cycles (like maybe 10) and the final sum would be saved as the data sample representing that particular period. Then, in post processing, the final data would be divided (in this example by 10). The entire binning & dividing process could be handled by the processor if the data stream was not too intense. Otherwise, the summing part of the process is very easy for the processor to handle.
Sounds like you are dealing with transient spikes which have a much different characteristic than the thermal data you wish to measure. Spikes have a very short rise time and can be easily detected. The valid thermal data does not have this kind of characteristic... so you could write a software routine that could detect short-rise-time data and insert in its place the average of the data immediately prior to the event.
I'm not an HVAC technician. In fact, I'm barely even a hacker...
Last edited by AC_Hacker; 11-07-13 at 12:07 PM..
|arduino, logger, temperature|