Well, in my earlier adventures of programming Arduino, I wanted to make an alarm clock. I could have made a good one by taking a tutorial, but I've always liked learning with little to no outside help. A young Arduino student, without a tutorial, got cracking.
So, with my strange learning style, (or unhealthy levels of project stubbornness) I decided to start. My design idea was simple: make a very small alarm clock without a display or real time clock. I even wanted to use a Digispark for even smaller size but eventually after code problems and the Spark's limitations I ended up using the Nano.
Anyway, the struggle began. Without using a real time clock (it's technically just a timer now), I would need to make massive delays variables. Note to everyone, I will scream it to the world: Know your data types. I caused myself loads of problems when I maxed out an int probably many times over trying to store huge second time delays.
Anyway, after maybe 3-4 months of programming and designing on and off, I finally got it going somewhere. As you can see, learning without a guide is time consuming, but most likely more memorable. After many, many breadboard attempts, I got a working model going. I Decided to power it on a drone battery, with a simple power bypass to run the Nano on 3.7V. Here's some picture of the circuit I eventually made (yeah it ain't pretty).
Honestly, I didn't need the 10K resistors, I could have just made the code set to have built in resistors turned on, but I didn't really care.
Without a display (would have burned way to much power and lot of wiring) I would need a system of communication. Anyways, here's how it works. Press the increment button to select how many hours you want to wait for until turning on the buzzer for wake up. The code will automatically run for the amount of led flashes (indicating the number of hours) if you don't press the increment button to increase it. When it's time to wake up, the Nano pulses the buzzer. I put a snooze feature into it as well.
The secret part about this project is that it also doubles as a stop watch. Press one button to start the timer, press another to stop, and then it "read" the value in a very steampunk, redundant way. Flash the number of seconds, then a short buzzer tone to indicate decimal point, then continue. Not very efficient at all but fun little add on.
Honestly, it could have been way better, code and hardware choices both. Really this is just a product of what happens when no tutorials and developing skills clash together to create something redundantly beautiful.
Hope you guys like it and tell me what you think!
Comments
Please log in or sign up to comment.