Go Down

Topic: [newbie] timer countdown...basics (Read 2131 times) previous topic - next topic


Hi, im tring to do a miltiple timer... its has to do an action after some intervals...
there is also a button read involved and i have no idea on how to do something like:
if millis() == 14000
print 14 secconds...

any examples out there?


Code: [Select]
if (millis() % 1000 == 0) {
 Serial.println(" seconds");

This will print time since startup, in seconds (at least I think so. snippet NOT TESTED).


Sep 17, 2010, 03:33 am Last Edit: Sep 17, 2010, 03:33 am by PaulS Reason: 1
In AlphaBeta's example the two calls to millis() may return different values. If that's OK, use his code.

If not, create a local variable:
Code: [Select]
unsigned long now = millis();
Then, use the local variable, now, in place of both calls to millis.
Code: [Select]
if (now % 1000 == 0) {
 Serial.println(" seconds");

The art of getting good answers lies in asking good questions.

Big Oil

If you didn't know already, the % in their code is called modulus.  It's the remainder from division.  5 % 3 would equal 2.  7 % 3 equals 1.  The modulus is how much is left over.  
You could use if (now==14000) to print it just one time.


Actually... when I think about it, I think using % 1000 == 0 is a bad idea because then you need to run that code EXACTLY when the millis return 1000 2000 3000 ...
if ( (now % 1000) < 50 ) {/*second has passed*/ }
This is more likely to work, but then again, you might get more than one printout. You could store a previousSecond variable to check that you only print a second once.


thanks for your replies, this seems to bit a bit more harder than i first tought
so im considering on trying this: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1217881285

i dont need a high precision, but since the last time i played with electronics the most complex thing i learned was about the 555 this a totally different concept

my idea is to have an array or something of 3 times and 3 steps for a servo, so after pressing start those actions should occur

Go Up