Optimizing Current Consumption in Battery-Powered Devices
When creating battery-powered devices, managing current consumption is a crucial aspect of the design. This circuit presents an efficient method for driving a 7-segment display using a microcontroller, specifically tailored for such battery-operated applications. What’s remarkable is the reduction in component count, ensuring economical use of resources. Typically, in conventional setups displaying a single digit, each segment requires its own current-limiting resistor, allowing continuous operation. For instance, if the current consumption per segment is 5 mA, displaying the number ‘8’ demands a total current of 35 mA. When dealing with multiple digits, they are usually multiplexed sequentially, enabling one digit to be active at a time. Even in this scenario, the maximum total current draw per digit remains at 35 mA.
Efficient Seven-Segment Display Multiplexing
This circuit introduces an innovative approach by utilizing only one series current-limiting resistor for each seven-segment display, reducing the total current consumption to 5 mA per displayed digit. The key lies in segment-level multiplexing, a technique implemented in the microcontroller’s software (in this example, an ATtiny24). In the software, each digit is represented by a seven-bit string. Each position in the string corresponds to a segment, with ‘0’ indicating ‘off’ and ‘1’ indicating ‘on’. For instance, the digit ‘6’ might be represented as ‘0111111’, where all segments except the first are illuminated. The software sequentially examines the string elements, turning the corresponding segments on or off. Each segment is refreshed every 2 ms, resulting in a flicker-free display updated at approximately 70 Hz.
Application: Digital Die Design
To exemplify this technique, the author has developed a digital die (refer to the circuit diagram). While input pin PB2 is held low by the user pressing button S1, a counter cycles through digits 1 to 6 at a rate of 1 kHz. Releasing S1 displays the counter’s current value on the seven-segment display. The circuit, comprising minimal components, can be easily assembled on a prototyping board or an ELEX-1 (UPBS-1) experimental printed circuit board. The ATtiny24 microcontroller, pre-programmed and available from Elektor, operates on a 3 V power supply provided by a CR2032 battery, smoothed by capacitor C1.
The microcontroller’s output ports can handle 5 mA currents and connect directly to the corresponding inputs of the seven-segment display module. R1 serves as a current-limiting resistor for the entire display, as only one segment is active at any given time. Care must be taken when choosing a display to ensure it contains only one LED in each segment, as a 3 V supply voltage might not be sufficient otherwise.
Power Conservation Features
In an effort to minimize power consumption, button S1 serves an additional purpose: holding it for over two seconds causes a minus sign to flash on the display briefly before the microcontroller enters sleep mode, consuming less than 1 µA. Another press of S1 reactivates the microcontroller. If the user forgets to put the microcontroller to sleep, it automatically enters this mode two minutes after the last die roll, eliminating the need for an extra switch to interrupt the power supply.