Go Down

Topic: Stopwatch arduino (Read 664 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