1 Digit Rotary Up/Down Counter
This device was born from the work I did on my Tic-Tac-Toe level following feedback from my friends who were helping me test. One of the big complaints they had was that the rotary selectors (literally just a motor connected directly to a directional 3 way switch) were tricky to get stopped in the desired location. It was also possible to have a situation where nothing was selected.
I should say at this point that I don’t know where I got the idea for this from. I don’t recall seeing it elsewhere, but it may have been sitting in my subconcious, but ultimately I sat down and tried to think of solutions to the problem… I tried emitter based counters (what a nightmare that was, rejected because they are a pain in the ass to setup) and numerous other ideas (rejected largely because they didn’t give the desired results) until I settled on this one.
The general principle is that if you want to select from say 4 different choices, you have two four pointed rotors set directly in front of each other. On the front one (the up rotor), you put a switch on each point that corresponds to ‘Choice 1′, ‘Choice 2′ etc. (remembering to set the activation radius fairly small). Then, on the back on you put a single magnet so that it runs directly behind the magnets on the front. On each rotor you also need an ‘escapement’ mechanism… that is a small sub-assembly that when activated will allow a single point to pass (how easy this is to achieve depends on the speed of the motor and the number of points).
You should end up with an arrangement similar to this:-
This illustration shows a device with 12 choices. The escapement mechanism is a simple glass block driven by a piston with a very short period. You will probably want to drive this with an emitter/switch pair similar to that shown below, allowing you to trim the time the ‘escapement gate’ is open.
The switches themselves are set to directional (inverted). The emitters should emit a corresponding key block into the space below them. The life of the block will probably be something like 0.1-0.5 seconds (depending on the rotor drive speed) and the emitters should be driven by 1 shot switches. The red (for up) should be connected to the front escapement piston and the blue (for down) should be connected to the rear escapement piston.
And thats about all there is to the mechanics. So how does it actually ‘count’?
Well, as I’ve stated above, the front rotor has one switch for each option. The back rotor has a single magnet. Given the mechanism is tuned to allow each rotor to move by one point at a time, the key is in how you connect the switches. And this is how it’s done.
Point : 1 2 3 4 Front : 01 04 03 02 Point : 1 2 3 4 Back : **
This example uses the four point rotors. Start by counting points from the top, going clockwise (or the same direction of travel as the rotors). The four switches on the front rotor then correspond to the choice numbers given. Now, when the front rotor moves on one you end with this:-
Point : 4 1 2 3 Front : 02 01 04 03 Point : 1 2 3 4 Back : **
Now, the switche for choice 2 is in front of the magnet and hey presto, the next choice is selected. To count down, the rear rotor is released by one point. Now, the magnet moves and it ends up sitting behind the switch for choice 1.This brings us back to the starting position with choice 1 selected (although now, both rotors will have point 4 at the top).
Point : 4 1 2 3 Front : 02 01 04 03 Point : 4 1 2 3 Back : **
So, if the rear roto doesn’t move, with each successive release of the front rotor we count up and if the front rotor doesn’t move, with each successive release of the rear rotor we count down.
You can drive the emitters of the control block using any switch, so long as it’s set to 1 shot. If you want a nice elegant 3 way switch, then you can use my Direction Decoder as the driver, just hook up the emitters to their corresponding switch colours (it was this device that the decoder was built to operate in the first place).
And that wraps up a nice simple single digit up/down counter.