The special feature of this analog wall clock is that it uses a standard model servo to tell the time. The display principle is the same as for an ordinary wall clock, but with two important differences. A standard model servo is unable to cover a travel of 360°, so we’ll need to adapt the clock face to this situation. What’s more, it’s not possible to show the hours and minutes at the same time using just a single servo – so the clock will show the hours during the first part of each minute, and then the minutes for the rest of the current minute.
The circuit is arranged around a PIC18LF1320 microcontroller with a 32.768 kHz clock crystal to generate the ‘seconds’. The controller core and the peripherals are clocked by the internal RC oscillator running at 8 MHz Test point TP1 delivers one pulse per second. Two push-buttons are used to adjust the time, one for setting the minutes and the other for setting the hours. These buttons are also used to select the mechanical adjustment mode for the clock, as we shall see later. The LED connected to the microcontroller flashes once per second while the servo is indicating the hours, but is out while the minutes are being displayed. The hand indicates the minutes during the first 50 seconds of each minute and shows the hours during the remaining 10 s.
Two potentiometers allow us to adapt the clock’s operation to the mechanical travel of the servo used. A third potentiometer is used to compensate for any drift in the clock crystal. This adjustment makes it possible to compensate for an error of ±100 ppm, corresponding to a drift of over 4 mins per month. Jumper JP1 is to be fitted if the servo turns anti-clockwise while the clock is being set. Transistor T1 is used to turn off the servo power between two movements. Even when it’s not rotating, a standard servo consumes around 15 mA or so, which is too much for a battery-powered clock.
The circuit is powered by three 1.5 V cells. Depending on the size of the servo used, it may be better to replace the batteries by a small plugtop adaptor supplying 5 V. You can also use three NiMH rechargeable cells, well known to model enthusiasts. The microcontroller’s ‘brown out’ facility, set at 2.7 V, will avoid deep discharging the batteries by maintaining the microcontroller in reset if the threshold is reached.
This little circuit can easily be built on 0.1-inch pitch perforated board. The potentiometers should be wired in such a way that they are at a maximum voltage at the clockwise end. Do not fit jumper JP1 and set the three potentiometers to mid travel. Connect up the servo and the supply. The servo goes briefly to neutral (mid travel) then turns anticlockwise to the 0 o’c position. If the servo turns the other way (towards 12 o’c), fit jumper JP1 and reboots the microcontroller. That should sort everything out. Now it’s time to make the face for the clock. You will be able to draw inspiration from the “universal” face available to download . This 120° face can in principle be used with any type of servo that has a travel between 120° and 180°. To adjust the servo travel, proceed as follows.
Set the clock running while pressing one of the setting buttons and wait for the servo to turn in the direction of 0 o’c. Adjust P1 so that the hand is on the 0 o’c mark on the face. Now press one of the buttons to set the servo to the other end of its travel, and adjust P2 so that the hand is on the 12 o’c mark on the face. Repeat this operation until the adjustment is perfect at both ends. Turn the clock off, then back on again, and check that the hand moves to exactly opposite the 0 o’c mark. Setting the time is easy.
Press the ‘set hours’ button one or more times to set the hours. Keeping the button pressed makes the hours advance fast. Setting the minutes is done in the same way, only pressing the ‘set of minutes’ button. If after about a fortnight you notice the clock is gaining or losing time, adjust potentiometer P3. If the clock loses, turn P3 slightly clockwise; if the clock gains, turn P3 slightly the other way. After an adjustment, you must wait at least 12 days before touching the adjustment again. The adjustment lets you compensate for several minutes a month, so you’ll need to adjust P3 very carefully. What’s more, it’s important to note that P3 does not affect the frequency supplied by test point TP1. www.elektor.com/090023