Shop OBEX P1 Docs P2 Docs Learn Events
Simple Clock Mechanics with One Step Motor — Parallax Forums

Simple Clock Mechanics with One Step Motor

Christof Eb.Christof Eb. Posts: 1,214
edited 2024-12-14 15:39 in General Discussion

Hi,
as I did not find this idea in the net :
Here is a super simple mechanism for a clock with hands for minutes and hours and only one step motor but no gears. - It needs to run backward to adjust the hours. The ring for the hours is carried by it's outer diameter to get some friction. The centre bore has lots of play. And it has a knob to be moved by the minutes-hand. A drag pointer.

Have Fun Christof

Comments

  • MicksterMickster Posts: 2,698

    I guess the hours really drag :D

    I'll see myself out :|

    Craig

  • jmgjmg Posts: 15,175
    edited 2024-12-15 19:06

    I like the basic idea.
    It would need some means to confirm the locations in case it was bumped, and a hour hand that jumped a whole hour might be hard to read.
    If the code nudged the hour hand every 15 mins it would be easier to read at a glance, plus that would be fun to watch.

    Compact reflective opto sensors like ITR1204SR10A are cheap.

    Addit: Thinking some more, maybe if it did > 360' sweep every time it nudges the hour hand, it then does not care where it might have been.
    For setting, it could do Hr Up/Dn and Min Up/Dn with timeouts, and after setting, it would do a hour-update sweep. (as setting mins would disturb)

    Or, maybe just 2 buttons can do, if first one is DIRN and both pressed is speed-up of chosen direction.
    Users could then sweep the hour hand to where they needed, then set the minute hand.

  • Christof Eb.Christof Eb. Posts: 1,214
    edited 2024-12-15 09:02

    Hi,
    It turns out, that you do not really need that sensor. Below a picture of my other design. It winds up that little weight indicating the hours and has to rewind every 12 hours. It works very stable with automatic setting via dcf77 radio receiver for many years now.

  • MicksterMickster Posts: 2,698

    @jmg said:
    I like the basic idea.
    It would need some means to confirm the locations in case it was bumped, and a hour hand that jumped a whole hour might be hard to read.
    If the code nudged the hour hand every 15 mins it would be easier to read at a glance, plus that would be fun to watch.

    Compact reflective opto sensors like ITR1204SR10A are cheap.

    If the minute hand pushes the hour hand in both directions (unable to pass over), the minute hand could do cw sweep and then a ccw sweep to ensure correct position of the hour hand before taking-up its minute location. That would be cool to "watch" :)

  • jmgjmg Posts: 15,175

    @Mickster said:
    If the minute hand pushes the hour hand in both directions (unable to pass over), the minute hand could do cw sweep and then a ccw sweep to ensure correct position of the hour hand before taking-up its minute location. That would be cool to "watch" :)

    True, that sounds more energy efficient too, as it only drags the hour hand 'as needed'.
    To make it more interesting and save energy, it could do the CCW fix every 2nd or 4th nudge. That's only needed if the clock is disturbed, so it does not have to be every move.
    I was imagining doing the hour update more frequently to make it more truly analog-glance - maybe every 12 or 15 or 20 mins ?
    The hour hand+wheel would need to be balanced.

  • Meanwhile I have built the clock.
    I used a step motor that has 31 Ohms winding resistance and added a 47Ohms resistor per winding to drive it directly from 3V3 port pins. I used a ESP32S NodeMcu controller to have NTP time over WLAN. The port current is just enough to overcome friction. Current is switched off after the movement and a short wait. Half steps are used at a frequency of 100Hz.
    Every 10 minutes the hours hand is pushed forward. Then the minutes hand goes backward to the new minutes position.
    There is one challenge: Because of the width of the knob plus width of the minutes hand, the hours hand is pushed back at for example 2:10. The hours land before 2 o'clock, which is confusing. To avoid this, it is better to drag the hours a little bit further and do the overtaking (ccw movement) a bit later.
    Have fun Christof

  • RS_JimRS_Jim Posts: 1,768

    @cristof
    how about a utube for the curious among us?
    Jim

  • @"Christof Eb." said:
    I used a step motor that has 31 Ohms winding resistance and added a 47Ohms resistor per winding to drive it directly from 3V3 port pins. I used a ESP32S NodeMcu controller to have NTP time over WLAN. The port current is just enough to overcome friction. Current is switched off after the movement and a short wait. Half steps are used at a frequency of 100Hz.

    Are you protecting the I/O pins with diodes, since you're driving an inductive load?

  • Christof Eb.Christof Eb. Posts: 1,214
    edited 2024-12-19 17:38

    @SavageCircuits said:

    @"Christof Eb." said:
    I used a step motor that has 31 Ohms winding resistance and added a 47Ohms resistor per winding to drive it directly from 3V3 port pins. I used a ESP32S NodeMcu controller to have NTP time over WLAN. The port current is just enough to overcome friction. Current is switched off after the movement and a short wait. Half steps are used at a frequency of 100Hz.

    Are you protecting the I/O pins with diodes, since you're driving an inductive load?

    Actually all pins are switched to low for off. I think that the current can circle. I am relying on the builtin clamp diodes. 😬

  • @"Christof Eb." said:
    Actually all pins are switched to low for off. I think that the current can circle. I am relying on the builtin clamp diodes. 😬

    Very ambitious! Good luck! :#

  • @SavageCircuits said:

    @"Christof Eb." said:
    Actually all pins are switched to low for off. I think that the current can circle. I am relying on the builtin clamp diodes. 😬

    Very ambitious! Good luck! :#

    The other clock, which I showed in #4, works with an Arduino atmel the same way for several years now. And this Esp32 has done it now for days. It does not even disturb WLAN. So I am confident.
    Accidently I once discovered, that you can supply a P1 via a port clamp diode without problems though I tend to avoid this....

  • @"Christof Eb." said:
    The other clock, which I showed in #4, works with an Arduino atmel the same way for several years now. And this Esp32 has done it now for days. It does not even disturb WLAN. So I am confident.
    Accidently I once discovered, that you can supply a P1 via a port clamp diode without problems though I tend to avoid this....

    I suppose these days with more students and hobbyists using these controllers, they've made the I/O more robust. There was a time when that would result in damaged pins over time, if not resetting of the MCU. As an engineer, I always err on the side of caution. But then, I am the "old guard". I guess these days it's common to push not only the envelope, but the status quo.

    It is a clever, efficient design. Nice work. o:)

  • Hm,
    your comments brought me to try to find some numbers about ESD protection which I could use to check if I am overloading these pins. There is the information in the ESP32 data sheet that the ESD protection covers

    ESD(Electro-Static
    DischargeSensitivity)
    HBM(HumanBodyMode)1 ±2000V JS-001
    CDM(ChargeDeviceMode)2 ±500V JS-002

    As far as I understand for JS-001 they load a C of 100pF to 2000V and connect the pin over 1k5 resistor. Which leads to a estimated maximum of 1.3A. Total energy 2e-4 J. As far as I understand the test is not done often.

    My step motor has a coil inductance of 71mH which should hold stored energy of about 5.6e-5 J at 0.04A.
    In both cases most of the energy seems to get dissipated by the resistors.

    So both current and energy available are well below the test, which seems to correspond with the fact, that it does not fail immediately. I have no idea if there is a way to calculate endurance life from this data?

    I think that only a very small percentage of microcontrollers are used by hobbyists. So I doubt, that better protection is done because of them. I assume robustness is very nice for handling in industry as well, so they invented this JS-001 specification. And I also think, if so many other features are integrated into a ESP32, then it also makes sense to integrate some protection which customers would have to add otherwise externally.

Sign In or Register to comment.