Hi everyone,
I'm working on a servo motor control circuit using a 555 timer. I have the following circuit (attach the schematic if possible). When I remove the button connected to the 68k resistor, the servo moves to 180° but does not return to 0°.
What I want to achieve:
When I press the button once, the servo should move to 180°.
It should stay in that position for 1-2 seconds.
Then, it should automatically return to 0° without pressing the button again.
I cannot use an Arduino, so I need a fully analog solution.
How can I achieve this using a 555 timer or additional components? Should I use a monostable, bistable, or another approach?
Any suggestions would be greatly appreciated.
Thanks in advance!
Attachments
WhatsApp Görsel 2025-03-12 saat 23.22.42_0abeb77b.jpg
With no button pressed the 555 doesn't work, there's no timing resistor - you need to add a resistor between pins 7 and 6 to set the return point. However, it won't hold for 2 seconds (only while you hold the key down), you would need an extra 555, and extra complications to make it timed.
Presumably this is a school project?, hence not using a micro-controller which is the far more obvious and simpler solution.
With no button pressed the 555 doesn't work, there's no timing resistor - you need to add a resistor between pins 7 and 6 to set the return point. However, it won't hold for 2 seconds (only while you hold the key down), you would need an extra 555, and extra complications to make it timed.
Presumably this is a school project?, hence not using a micro-controller which is the far more obvious and simpler solution.
You could use a dual 555, press of button triggers one to set a D flip flop, and
triggers the second 2 sec 555. It in turn after 2 sec resets the flip flop.
Then use another 555 (ugh) to get the servo 2 mS waveform to position the
servo.
Partsy to say the least. A single ATTINY85 8 pin micro, which is a collection of analog
and logic, like a 555 is as well.
If the prof wants to you to use old school why not vacuum tubes, or magamps.....
or relay logic or.....dont ask him that....
You could use the tiny, and pot it after coding so it cant be seen........hide it in a brown paper bag.....
@OP, so logically you have to generate 2 time sequences, the 2 sec on/off sequence,
and the 2 mS servo control sequence with 2 pulse width settings for the 0 and 180
angle control.
The former 555 timer(s) would do.
The latter a counter and decoding on the output to get the pulse width......
So you have to decide on resolution/degree accuracy counter must have, hence
its bit width and than calc its clock rate. Then decide on decoding to "shape"
the counter output period into correct pulse widths, 2 needed.
Thats the basics......You can use discrete 74HC logic or a CPLD to implement.....
So I see two references for angle. Do you agree to down view clockwise -90 to +90 as 0 to 180 ?
If so then left to right delay 1~2s and right to left , ok ?
state #)
0) idle
1) press button (leading edge , sampled state or release?) causes 1 ms high then low ,
2) 1000 ms low (minimum, 2000 ms max.) delay
3) 2 ms high (return servo) then low.
4) then back to state 0) (idle)
How about no 555 using an CR pulse out of an inverter to enable a 1kHz Osc/1024 counter IC then another CR delay to inverter ? or 3 RC one shots ? or .... fill in the blank_____________