Stopwatch
This instructable can be used to teach one how to make a simple stopwatch with an Arduino Uno Starter kit and some jump wires. You can find the link to the kit here (https://store.arduino.cc/usa/fundamentals-bundle) or you can buy each item individually from Amazon or a nearby store.
Here is the problem: Many people, particularly workers and students, keep schedules to plan out their day. However, they often lose track of these schedules, sometimes because they lose it or because they keep it on an electronic device and get distracted when they check it. One major cause is that they simply become engrossed in the activity they are doing, whether it is productive or not, and cannot stick to the schedule they have planned as time flies by.
Our stopwatch enables to help the user better their time management skills without utilizing a distractive interface (like a phone or computer). Our timer is called Evoke, a “visual timer” that helps people stay on track. Evoke is aimed at fulfilling the needs of people who have busy schedules and a personal space in which they work, particularly students and workers in desk jobs.
Supplies
Supplies used include:
- 3D filament
- Maker Bot 3D printer
- Maker Bot Software (you can download that for free online)
- Arduino Software (you can download that for free online)
- Jump Wires
- Arduino Uno Starter Kit:
- Arduino Uno
- Breadboard
-Potentiometer
- LCD Screen (16*2)
- 220K resistor
Step 1: Wiring the Board
The Arduino Uno provides a base for us to code, but we also need our breadboard to connect everything. Our LCD (is our main channel. To get it working, we also need jumper wires, a potentiometer, and resistors, in order to connect the LCD, breadboard and the Arduino together. We also have a casing, that was created with the help of a 3D printer.
The image above shows how the wiring is carried out. Please follow this diagram. Also, be aware of the fact that the Arduino boards are very hard to debug, so u always have to make sure your wires are in the right place. Make sure your Arduino is connected correctly to LCD's pins:
- LCD RS pin to a digital pin
- 12LCD Enable pin to a digital pin
- 11LCD D4 pin to a digital pin
- 5LCD D5 pin to a digital pin
- 4LCD D6 pin to a digital pin
- 3LCD D7 pin to digital pin 2
Make sure your GND and 5V is connected to the + and the - of the LCD. If this isn't done properly the LCD won't turn on. Furthermore, make sure ur wires are correct especially with the LCD's read/write pin and the V0 pin. The V0 pin enables the coder to clear the board, while the read/write pin enables the coder to write down the code. If the read and write pin aren't connected properly no pixelated boxes would appear on the screen.
Step 2: Printing
You can make your own case for the timer but here were the cases my partner I created so that you can use. You can either use the whole case file or print the case body twice in order to make it easier for your printer.
Step 3: Code
You can always recreate your own code but here is the code that my partner and I used. You can look this link for reference as we utilized his sample code and his projects but did a couple of changes to it (like the 3D Case): https://www.arduino.cc/en/Tutorial/HelloWorld?from...
Be aware to declare the Light Crystal Library at the beginning:
#include <LightCrystal.h>
Also intialize the varaibles and the pins in this code segement:
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Feel free to change the message that will be written. You can use tis portion of the code to do so:
void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!");}
to maybe
void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("I am a pancake");}
Feel Free to change the iteration of the time:
void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis() / 1000);}
to
void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis() / 60000);}
***this is changed to mintes
Downloads
Step 4: Putting It All Together!
Here is the most exciting part piecing your project together! Now first connect the two halves of the case together (if u halved the case). Next, gently put the Arduino in the case and cover half of the case, with a lid so that the LCD shows. Now upload the code and see if it's working.
If the code isn't working. Try rewiring our breadboard. In most cases, if the breadboard and the Arduino aren't wired properly then it doesn't work.
This is the final look:
Here are other pictures/videos we took along the way.
Step 5 EXTRA
We hope you really enjoyed recreating this project! Here is a small logo you can attach on the case! Stay Productive!