Couch to 5K Timer
This project is a timer for the couch to 5K running plan.
Details of the plan can be found at: https://downloads.bbc.co.uk/scotland/makeyourmove/c25k_printable_plan.pdf
Supplies
Arduino UNO
Arduino UNO stackable prototyping shield*
Arduino UNO LCD shield with buttons
Piezo sounder
*Note: The shield that I show with the piezo sounder attached to is a data logging shield, the data logging components are not used in this project it is simply the case that this is the shield my piezo sounder is soldered on to.
Solder Sounder to Prototype Board
This is the only soldering necessary for this project.
Solder the Sounder to the board in a position of your choice then solder on the 2 connecting wires.
The positive connecting wire goes to pin 3 of the Arduino and the negative connecting wire goes to one of the ground connections.
Note that I have included a jumper on my board to allow me to disconnect the sounder when I reuse the shield on other projects.
Stack the Shields
Once the piezo sounder has been soldered to the prototype board assembly can begin.
Assembly is simply a case of stacking the boards like a cake, Arduino UNO on the bottom, prototype shield with sounder in the middle and the LCD shield on top.
Note that pin 10 of the LCD shield has been removed, this pin is used for the LCD backlight but has been implemented incorrectly on some shields additionally the data logging shield uses this pin as chip select.
LCD shield errata: https://forum.arduino.cc/index.php?topic=96747.0
The Code
I did my original code development using the online simulator Wokwi: https://wokwi.com/
Once the timer code was working, I completed development, adding in the interface elements, using the Arduino IDE.
For those interested in modifications the weekly timings are all stored in separate arrays, the format is <warm up><run><walk>...<cooldown> with the code treating the array odd numbers as runs and the evens as walks.
Downloads
Programming
For the programming I used the Arduino IDE. It is simply a case of starting the IDE, loading the program file, connecting the Arduino to your computer using a USB cable and uploading the program.
Operation
At turn on the unit will display the C25K title and Week 1, the first run of the regimen.
Pressing the up and down keys allows you to cycle through the nine weeks of the program.
Pressing the select key will start the timer, this will be indicated by a long low frequency beep.
When you hear the high frequency beep you run, then when you hear the low frequency beeps you walk.
Stop is indicated by a long low frequency beep.
The LCD displays the task at hand: Warm-up, Run, Walk, Cooldown, Stop.
Note that switch code operates on the release of the pressed switch not the initial push down, this quirk is a result of my using switch code initially designed for use in a chorded keyboard project.