# Trying to build my first circuit

Discussion in 'General Electronics Discussion' started by Cavaler, Nov 13, 2013.

1. ### Cavaler

2
0
Nov 13, 2013
This will be my first circuit. I know nothing about building circuits and I am willing to program if necessary (I actually like programming)

I am attempting to make an H-Pattern shifter for a video game I play.
R & 1-6 all are microswitches that will be pressed by a bar.

Example:
http://s1179.photobucket.com/user/JohnMurphy98/media/Switch-2.png.html

POSITIVE PULSES GO TO THE POSITIVE NODE REPRESENTED AS [ + ]
When you tap the first microswitch, it will set a value in a chip to 1.
When you tap the third microswitch, it will add the difference (2) to the chip.
When you tap the fourth microswitch, it will add the difference (1) to the chip.

NEGATIVE PULSES GO TO THE NEGATIVE NODE REPRESENTED AS [ - ]
When the chip value is set to 1, it will subtract 1 from the chip (making it 0)
When the chip is at 3 and set to 1, it will subtract 2 from the chip (making it 1)
When the chip is at 4 and set to 3, it will subtract 1 from the chip (making it 2)

I think you get where I'm going with this. You press a microswitch with a set value greater than the one you are already using and a positive integer is added to the value stored in the microchip,

You press a microswitch with a set value less than the one you are using it will subtract from the microchip.

THE TIME BETWEEN THE PULSES CAN BE AS FAST AS A CIRCUIT BOARD WILL REGISTER THEM.

THE POWER OF THE PULSE CAN BE REASONABLE. I'M NOT RUNNING AN HOUSE ON THE CIRCUIT BOARD, I'M SIMULATING A BUTTON PRESS ON ANOTHER CIRCUIT BOARD.

ONLY ONE MICROSWITCH CAN BE USED AT ANY TIME

Last edited: Nov 13, 2013
2. ### BobK

7,682
1,688
Jan 5, 2010
If you have 6 switches, one for each position, what is the point of adding or subtracting? Each switch determines which position the shifter is in, without needing any knowledge of where it was previously.

Bob

3. ### Cavaler

2
0
Nov 13, 2013
Well, let me draw it out for you.
http://s1179.photobucket.com/user/JohnMurphy98/media/Example.png.html

It will be connected to an Xbox controller.. The two buttons it will be wired to will only know 2 values: 0 (depressed) 1 (pressed)

Each microswitch will put out a value, 1. Where that goes however is the big problem and how to determine it.... I have no idea.

Shifting down will result in a pulse on the negative node (connected to the X button on an Xbox controller for downshifting)
Shifting up will result in a pulse on the positive node (connected to the B button on an Xbox controller for upshifting)

Skipping a gear however will require it to pulse more than once on either node.

Last edited: Nov 15, 2013
4. ### BobK

7,682
1,688
Jan 5, 2010
Okay, now I understand. The output has to be a + or - signal. And if I go from 1st to 3rd it would output two + pulses, for example.

The problem I see with this is that the current state has to be kept in two different places. One inside the X-box controller and one in your add on. If these ever get out of sync, there is a problem. It seems to me that you would need some signal from the controller, at least a reset that would set your state to same state as the controller is in.

For me, this would be a microcontroller project and is quite easy. If this is your first project, I think it would be best to use something like an Arduino, which has the microcontoller board already built and a beginner friendly programming language / environment.

I think it could be done discrete logic, using an up/down counter and a set of latches and a magnitude comparator (logic, not analog). Each button press would set the latches to a specific value. On each clock pulse, if the comparator shows the latches to be larger than the counter, a + pulse would be output and the counter incremented. If it compares smaller a - pulse would be output and the counter decremented. If they compare equal, nothing happens. This is pretty complex for a first project.

Others might have a simpler solution. I would be interetest in hearing them.

Bob

Last edited: Nov 15, 2013