Go Down

Topic: Stopwatch arduino (Read 726 times) previous topic - next topic

scott-tweeddale

Hi everyone

I'm trying to make a stopwatch in arduino using a MAX7219 driver chip and a 7segment display. I'm having trouble with the code and have managed to get so far using my own skills (i'm a total begginer) and by copying other codes that are kicking around. I can get one of the digits on a 7 segment display to count up the way, but i'm struggling to get it to act like a stopwatch. I'm not looking for someone to do this for me but perhaps to steer me in the right direction with the arduino code.

here is the code i have so far
#include "LedControl.h"
/*
Now we need a LedControl to work with.
***** These pin numbers will probably not work with your hardware *****
pin 12 is connected to the DataIn
pin 11 is connected to the CLK
pin 10 is connected to LOAD
We have only a single MAX72XX.
*/
LedControl lc=LedControl (int 12, int 11, int 10, int 1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=250;

void setup() {
 /*
  The MAX72XX is in power-saving mode on startup,
  we have to do a wakeup call
  */
 lc.shutdown(0,false);
 /* Set the brightness to a medium values */
 lc.setIntensity(0,8);
 /* and clear the display */
 lc.clearDisplay(0);
}


/*
This method will display the characters for the
word "Arduino" one after the other on digit 0.
*/
void writeArduinoOn7Segment() {
 lc.setChar(0,0,'a',false);
 delay(delaytime);
 lc.setRow(0,0,0x05);
 delay(delaytime);
 lc.setChar(0,0,'d',false);
 delay(delaytime);
 lc.setRow(0,0,0x1c);
 delay(delaytime);
 lc.setRow(0,0,B00010000);
 delay(delaytime);
 lc.setRow(0,0,0x15);
 delay(delaytime);
 lc.setRow(0,0,0x1D);
 delay(delaytime);
 lc.clearDisplay(0);
 delay(delaytime);
}

/*
 This method will scroll all the hexa-decimal
numbers and letters on the display. You will need at least
four 7-Segment digits. otherwise it won't really look that good.
*/
void scrollDigits() {
 for(int i=0;i<13;i++) {
   lc.setDigit(0,3,i,false);
   lc.setDigit(0,2,i+1,false);
   lc.setDigit(0,1,i+2,false);
   lc.setDigit(0,0,i+3,false);
   delay(delaytime);
 }
 lc.clearDisplay(0);
 delay(delaytime);
}

void loop() {
 writeArduinoOn7Segment();
 scrollDigits();
}




thank's for any help

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy