I am working on a project where I would like to control the position of a servo without a normal input, e.g potentiometer. The servo would be constantly powered on the red wire as required, and then I would have 2 input pins. Ideally, if one is positive the servo goes to 90 degrees, if the other is positive to -90, and if both are off to 0. I am aware of the 555 timer IC to generate the PWM, but don't know how the frequency?speed? of the PWM can be controlled without a resistor. Any suggestions on if/how this is possible would be greatly appreciated, and sorry for any wrong terminology etc, I'm not super experienced in electronics.
2 Answers
Yes, you can do this, but it's not 100% straightforward since you want (presumably momentary N.O. switches) to both increase and decrease the resistance. Here is one way, there may be better ways:
simulate this circuit – Schematic created using CircuitLab
I have wired Y0 to Y3 so pressing both switches at once returns the servo to the null position. It could be wired to one of the other Y pins depending on what you want to be dominant.
You can substitute fixed resistors for the pot+resistor combinations when you know the value you want.
The 555 circuit is one of the standard hobby servo controller circuits. It produces a 1-2ms pulse with about a 50Hz repetition rate.
The 74HC4051 connects one of the 8 mux 'Y' pins to the Z pin depending on the state of the three 'S' pins.
You could also simply use an Arduino or another kind of MCU.
speed up-to 50 pulses per second (not critical)
pulse-width 1 to 2 milliseconds.
Build a 50Hz oscillator with a 1.5 second pulse width connect use your positive or negative voltage to skew the on-time of the oscillator, eg by appying iot to one of the timing nodes of the oscillator through a resistor.
maybe something like this:
simulate this circuit – Schematic created using CircuitLab
R5 sets one extreme R1 the other R2 sets the mid point. R3 sets the pulse rate