Git Product home page Git Product logo

toothbrush-timer's Introduction

Very Low Power Kids Toothbrush Timer

drawing

This Arduino sketch that implements a funny "little fish" kids toothbrush timer. A detailed documentation of this project can be found under www.microfarad.de/toothbrush-timer.

Unless stated otherwise within the source file headers, please feel free to use and distribute this code under the GNU General Public License v3.0.

Theory of Operation

The device features 9 LEDs arranged in a "little fish" pattern. When turned on, the eyes of the fish will start to blink once per second. More and more LEDs begin to blink as time passes. One of several random animation sequences is activated as soon as the recommended two minute tooth brushing duration elapses, then the system will power itself off.

The device implements a soft power on circuit using a tactile switch and two FET transistors. Briefly pressing the power button will power up the system and initiate the timer sequence. Pressing the power button during approximately 2 seconds while the
device is on will skip the timer sequence and directly activate the LED animation sequence prior to powering down the system.

The device is designed to consume a very low current and is able to run on a single CR2025 or similar 3V Lithium cell for thousands of cycles. The current consumption is around 10μA during the Power-Down sleep phase and around 1.2mA when all the LEDs are on. The device consumes no current when the power is off.

In order to reduce the bill of material, all 9 LEDs share one common dropper resistor. Turning on multiple LEDs simultaneously is not recommended as it will result in some of the LEDs glowing brighter than others. A multiplexing routine is used for sequentially turning on one LED at a time and doing this fast enough to create the illusion that they are simultaneously lit due the the persistence of the human vision.

This sketch has been implemented and tested on an ATmega328P based Arduino Pro Mini compatible board running on 3.3V/8MHz.

It is recommended to activate the watchdog support on the Arduino bootloader by defining the WATCHDOG_MODS macro. This will reduce the bootloader's power-up delay, thus invalidating the need to hold the power button for around 2 seconds for the system to turn on.

Arduino’s onbard 3.3V linear regulator as well as the power LED need to be unsoldered as they would otherwise significantly increase the overall power consumption.

Prerequisites

Circuit Diagram

You can find the circuit diagram for this device under the follwoing link:

https://github.com/microfarad-de/toothbrush-timer/raw/master/doc/toothbrush-timer-schematic.pdf

toothbrush-timer's People

Contributors

microfarad-de avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

ishenkoyv

toothbrush-timer's Issues

Is it possible that the P and N MOSFET are mixed up (in schematic description)?

Hi there,

first of all: Thanks for sharing this project! :)

Is there a possibility that the p and the n MOSFET are mixed up in the schematic and description?

Briefly pressing SW1 would connect the gate of the MOSFET Q1 to the power supply ground through D1, this will cause the N-channel MOSFT Q1 to turn on and connect the positive battery terminal to the VCC rail.

I thought P-MOSFETs need a low gate voltage to turn on (not N)?

...Maybe I don't fully understand your circuit, but I wasn't able to simulate the expected behavior with the circuit as shown - after changing the P and N MOSFETs it worked...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.