no Lulu replacement
Friday, September 29 2006
With the Arduino-based solar sufficiency controller, all decisions about when heat sufficiency has been attained and when it is no longer present are to be made digitally, based on digitized thermistor data. Those thermistors are all either from digital meat thermometers or cheap outdoor temperature readers. Since they're no longer attached to their original digital readouts, I have to figure out the function that converts their raw digitized signals into actual temperatures. I actually have to figure out two such functions, since one set of thermistors has a mid-range resistance of about 56,000 ohms, while the other has a mid-range resistance of about 220,000 ohms. Yesterday I was thinking that the function seemed to be somewhat non-linear, but today when I graphed the functions (Excel is good for this) they proved to be very nearly linear, with perhaps a slight sag in the line at mid-range for both. It bears mentioning that I hadn't actually expected the function to be linear at all. This is because the thermistor is being used as half of a resistance-based voltage divider with the other half held constant. I didn't rub my brain over Ohm's Law enough to figure out what effect this would have on linearity, but my George W. Bush-style gut reaction was that it would make things non-linear. Based on the evidence, though, I think I may have been wrong. The upshot of this was that it would make the conversion of my raw data into actual temperatures relatively painless. In the end, I decided to convert the raw data into Fahrenheit decidegrees (tenths of a degree) so I could have the benefits of that level of granularity within the confines of integer-only math. Normally such granularity is unnecessary, but when I'm heating the basement slab the temperature changes are so tiny and gradual that I want all the precision I can get, even if it's not accurate. The one thing that kept me scratching my head and experimenting with fudge factors throughout the course of this work was a screwup where I had the two algorithms swapped for the respective types of thermistors. Those functions, by the way, are these:
For 220kohm thermistors:
temperature in decidegrees Fahrenheit = 1910-((raw_data * 2207)/1000) ;
For 56kohm thermistors:
temperature in decidegrees Fahrenheit = 1840-((raw_data * 1934)/1000) ;
(Notice the trick I used to multiply by .2207 and .1934 within the restraints of integer math.)
This afternoon Gretchen and I drove over to the Dutchess County Animal Shelter in Hyde Park, across the fjord of the Hudson. This is the very shelter where we'd picked up Eleanor the Dog a little over three years ago. Today we went there to see about perhaps adopting an overweight cat named Roseanne who looked a lot like Lulu (who has not returned and we have given up for lost). We brought both dogs with us and stopped along the way for Indian Food at Agra Tandoor south of Rhinebeck, where we'd had mediocre experiences in the past. The food was great today and we were the only customers.
The Dutchess County Animal Shelter is an overworked, overcrowded, understaffed place. It stinks of cat excreta and many of the cats are never given a chance to leave their cages. It should be required viewing for anyone considering getting an animal from a breeder. Roseanne was in a big cage in the front, hidden mostly away in a cat cage. We could see her head, which was normal size, but when brought out her body proved a gargantuan monstrosity. Still, she seemed loveable and affectionate and I was sure we could eventually get her to lose that weight. Furthermore, her face looked exactly like Lulu's, complete with that "I could kick your ass but I'm too world-weary just now" expression. Our plan to adopt her, though, was thwarted when at the last minute Roseanne tested positive for a case of ringworm that was assumed to be completely cured. We ended up driving home without a Lulu replacement.
For linking purposes this article's URL is:feedback
previous | next