This is the desktop binary clock which [Tim the Floating Wombat] recently finished building. He calls it the Obfuscating Chronoscope since it’s a bit more difficult to read than your traditional analog or digital timepieces. But the simple design looks neat and it’s a great way to learn about board layout and microcontroller code.
He started by solving a few questions about the display technique. He wanted to use as few LEDs as possible. He settled on just four, and to prevent unnecessary confusion, decided to make sure each type of display (seconds, minutes, hours) would have at least one LED on at a time. Hours are easy enough to display, but with just four bits how can minutes be shown? He uses a 5-minute resolution, always rounding up to the next division of five. This way the first bit will be illuminated on the hour.
A PIC 24F16KA102 microcontroller keeps time using its built-in RTC and a clock crystal. It puts itself into deep sleep mode after displaying the time. The black knob at the bottom is a push-button which resets the chip, waking it up just long enough show the time once again.
[Brad] was asked by his Sister to design a motion-based alarm that would help her catch her son sneaking out of the house at night. Obviously this didn’t need to be a long-term installation so he decided to throw something together that is only active at night and can be battery-powered. What he came up with is a light-sensitive motion sensor that uses very little power.
He knew that an Arduino would be overkill, and decided to try his hand at using the Arduino to develop code for an ATtiny85. It has an external interrupt pin connected to the output of the PIR module, which triggers action when motion is detected. The first thing it does is to check the photoresistor via the ADC. If light levels are low enough, the buzzer will be sounded. [Brad] measured the current consumption of his circuit and was not happy to find it draws about 2.5 mA at idle. He spent some time teaching himself about the sleep functions of the AVR chips and was able reduce that to about 500-600 uA when in sleep mode. Now all he has to do is find a nice place behind the house to mount the alarm and there’ll be no more sneaking around at night.
If you’re trying to keep a tight leash on your own kids you could always make them punch the time clock.
[Rajendra Bhatt] wrote in to share the latest in a series of PIC tutorials, which covers the microcontroller’s Sleep mode – a very useful tool for limiting current consumption in battery-powered applications.
He discusses how to put the PIC in sleep mode, as well as some common mistakes to watch out for, such as accidentally allowing I/O pins to sink or source current while sleeping. [Rajendra] also walks through the various ways a PIC can be brought out of sleep mode, focusing the majority of his tutorial to the mcu’s watchdog timer.
Using a PIC16F628A, he constructs a test circuit which allows him to demonstrate the power savings gained by using sleep mode rather than the microcontroller’s built-in delay function. The circuit simply blinks an LED every 4.3 seconds, using the watchdog timer for the first 2.3 seconds, and a delay() call for the rest of the time.
The power savings are quite substantial, similar to the results we saw using AVR microcontrollers a few weeks ago. [Rajendra] found that using the sleep function limited current consumption to about 4.5% of the current used when calling the mcu’s delay function – a huge savings.
Battery life is often overlooked when building projects, especially for beginners. This tutorial takes you through the setup of power saving modes for the Arduino. Utilizing the watchdog and sleep functions, they put the chip into a hibernation mode between cycles. An optimum configuration could take your battery life from 4 days to about 3 years. For a lot of you, this is old news. But for the rest, this is really good stuff. You can download a sample application from the site that mimics the singing of a nightingale when the sun goes down.