In part 1 I introduced the concept of sous vide and why you should be interested in it. Part 2 covered a basic and low cost way to get your feet wet with sous vide. Today, part 3 will detail the more advanced stand alone controller I designed.
Showing posts with label software. Show all posts
Showing posts with label software. Show all posts
May 12, 2013
April 29, 2013
Thermostat Software
----
EDIT: I don't profess to be a programmer, even though I can make my way through a few different languages. The code I present here works fine, but it's not very pretty or efficient. I think it's still useful from an educational standpoint and has a few ideas in there that are worth looking at and it's easy to get up and running. But I will soon be ditching this software in favor for some written by Wyatt Winters for his Rubustat (though I'll try to find a way to re-implement the checking of outdoor temperature to determine heating/cooling).
----
In this post I explained that I tasked my Raspberry Pi with controlling the furnace and air conditioner in my house. Here I describe the software that went into it.
The requirements I wanted were simple enough:
EDIT: I don't profess to be a programmer, even though I can make my way through a few different languages. The code I present here works fine, but it's not very pretty or efficient. I think it's still useful from an educational standpoint and has a few ideas in there that are worth looking at and it's easy to get up and running. But I will soon be ditching this software in favor for some written by Wyatt Winters for his Rubustat (though I'll try to find a way to re-implement the checking of outdoor temperature to determine heating/cooling).
----
The requirements I wanted were simple enough:
- Behave similarly to a commercial thermostat
- Schedule temperature set points
- Automatic switching between heating and cooling based on outdoor temperature
February 10, 2013
Efficiently Reading Quadrature With Interrupts
Once you start wanting to control the position of a motor through feedback control, you will likely end up using a rotary encoder as the feedback device. Encoders can be broadly categorized as:
- Absolute position
- Incremental position
Absolute position encoders will tell you what the angular position is all the time, even between power cycles. Most use "grey code" (a modified form of binary) with several "tracks" (bits) to read position.
Incremental position encoders will tell you what the angular position is, but only relative to where it was when you started paying attention (usually on power-up). Two common types of incremental outputs are:
- Incremental (clever name)
- Quadrature
Incremental is rather useless for position control because it doesn't give you any information about what direction you are turning, just that you are turning. Quadrature encoders give you direction as well as incremental position. This article deals with efficiently reading quadrature output on an Arduino by utilizing external interrupts and some AVR bare-bones code.
Subscribe to:
Posts (Atom)