So...like almost every other parent in the first world, I struggle to keep my son (8) off all the screens. Since I'm lazy and don't like to argue, I created a countdown timer to monitor how much time he gets. I have this one to count down allocated time for the week, but it'd be super easy to change it to a daily limit.
This instructable will help you set up a similar clock for your kid - or yourself. It includes a large seven-segment display, an arcade button to start/pause the count, and a reset button. It uses an arduino.
Seeing as how I'm a librarian and all, I should tell you that you can do this tutorial using the tools and equipment we have at the Johnson County Library MakerSpace in Overland Park, KS. Also, if I can do this, you can, too. Trust me on this one.
Step 1: Materials and Components
Materials and components you'll need:
- Arduino Uno or other board of your choice
- 1 arcade button (Adafruit) Please read Step 2 and consider saving yourself a couple steps.
- 1 LED sequin (Adafruit)
- 1 1.2" seven-segment display and backpack (Adafruit)
- 1 mini breadboard (or a small perf board will work)
- 1 10K resistor
- 1 buzzer (Radio Shack)
- 1 momentary button
- miscellaneous jumper wires
- soldering iron with solder
- wire cutters
- laser cutter OR 3d printer (for enclosure)
- digital calipers
Check out your local library to see if any of these tools are free to use (or come to the Johnson County Library MakerSpace - they're all here!)
PS - I totally forgot to take a picture of all the things before I dug in and started soldering:(
Step 2: Prepping Components
I hate to send you on to other tutorials, but I gotta.
The 7-segment display requires a teensy bit of prep - basically poking wires into holes and soldering in place. To get it right, follow these instructions: https://learn.adafruit.com/adafruit-led-backpack/c...I cheated a little since I wanted to use some female to male wiring and so I soldered a big connector blob from the IO to the + pins on the front.
I also purchased an arcade button that doesn't have an LED inside it already. (Now they sell some with the LED already in there, because of COURSE they do.) So I went through this little tutorial to get that set up: https://learn.adafruit.com/trinket-react-counter/m... Or feel free to try this one instead: https://www.thingiverse.com/thing:823588 Or just buy a different button. Personally, I'd go with this option.
Solder some jumper cables to your buzzer and momentary switch if necessary.
Step 3: Circuit Diagram
Here's where you start plugging stuff in.
- 7-seg display to Arduino (female to male jumpers)
- SCL to SCL (not marked, see graphic)
- SDA to SDA (also not marked, see graphic)
- GND to GND
- +5V to 5V on
- V_IO to 5V on display (I put a blob on the front, see previous step)
- place 10K resistor
- on one side, connect jumper to Arduino GND
- on other side, connect to
- GND from button/light (combined)
- PIN 2 on Arduino
- place another jumper on a rail to GND on Arduino
- place Grounds for buzzer and reset switch on same rail
- Reset Button
- GND should be in mini breadboard
- + to RESET on Arduino
- GND should be in mini breadboard
- + to PIN 9 on Arduino
- GND should be in mini breadboard with PIN 2 and resistor
- + to 3.3V on Arduino
- LED wire to PIN 13 on Arduino
Step 4: The Code
I have to admit, I didn't write this. I added some things (the buzzer, the game over end), but a volunteer at our library Jason Andersen, wrote the meat of it.
Step 5: Make an Enclosure
I went about this two ways. First I created an enclosure using Tinkercad to 3D print. But I didn't like the design or the wait time (7 HOURS??!). So then I used http://www.makercase.com/ and got a laser cutting file in a jiffy. I added the holes for the different components and then cut. Use the included files or make your own. Just don't forget holes for:
- 7-segment display
- power cord
- arcade button
- reset button
Once you have a design, print or cut it according to your available tool.
Step 6: Assembly
Stuff all your stuff into whatever box you made. Maybe tape some down.
Plug it in.