thoughts of a buoyant rod
Saturday, December 29 2012
Gretchen went to the Golden Notebook bookstore in Woodstock today to do a shift that was essentially volunteer. She loves working there so much she would do it for free. Shelving and organizing books appeals to her OCD, and she also enjoys meeting new people and encountering old friends. It turns out that it's a good place for spotting local celebrities such as Kate Pierson. The bookstore ended up closing early due to a snow that proved heavier than predicted. A wine-and-vegan-nut-cheese tasting party we were to attend this evening in High Falls was canceled.
Now that I have an Arduino slave communicating fuel level readings to the Solar Controller (instead of a proprietary ultrasonic rangefinder), it's clear that part of the problem with the arrangement is the length of the I2C line. I2C is only designed to work over a range of a meter or so, but I've got it hooked up with a 12 foot long cable. Early on, I'd discovered that this was a fairly unreliable length of cable, so I'd made it so the 12 foot long branch of the I2C bus was electrically isolated (using a Quad Bilateral Switch) from the rest of the Solar Controller's bus except when it needs to take a fuel reading. Still, the Solar Controller frequently gets hung during I2C communications with the fuel-reading slave, and, due to the imperfect implementation of I2C in the Arduino libraries, the only way out of this state is a reboot triggered by the watchdog timer. (This is not the only glitchy behavior that the watchdog timer compensates for.) The problem is that these glitches were also causing the fuel-reading slave to hang, and I hadn't implemented a watchdog timer on that. Getting that to work necessitated graduating from an Atmega8 to an Atmega168.
I also found myself thinking about how best to measure fuel levels now that the two techniques I've tried (ultrasonic and infrared rangefinding) have proved imperfect. Ideally I'd measure the mass of the oil, but I can't use a pressure sensor under the tank; things like extension cords and cans of spray paint tend to get stored upon the tank, and their coming and going would introduce too much chaos. But then an idea occurred to me: what if I ran a buoyant rod into the fuel and measured how much pressure it applied vertically? Sparkfun sells pressure-sensitive pads that might work in this application. For a buoyant rod, I could maybe use a sealed length of PVC pipe, perhaps held in place by a loosely-fitted larger piece of PVC pipe.
For linking purposes this article's URL is:feedback
previous | next