can't get millis delay to work


first, you've helped me , dozens of others understand "blink w/o delay". have employed number of times struggle each time. delay easy use, want action continue set period of time write delay(time in ms). easy.  "blink w/o delay" not easy implement (at least me).

in first instance write servo using millis timing method have used in past. not work. have missed something.

what want indicated 3 other servo processes. code follows:

code: [select]
#include <servo.h>
#include <ping.h>

ping ping = ping(8,74,19);
servo myservo;  // create servo object control servo

long blinktimer2;
int pos = (0);    // variable store servo position
int outputpin = 12;
int outputpin2 = 13;
int outputpin3 = 11;


void setup()

{
serial.begin(9600);  
myservo.attach(9);  // attaches servo on pin 9 servo object
pinmode(outputpin, output);
pinmode(outputpin2, output);
pinmode(outputpin3, output);
}

void loop()

{
 ping.fire();
 serial.print("microseconds: ");
 serial.print(ping.microseconds());
 serial.print(" | inches ");
 serial.print(ping.inches());
 //serial.print(" | centemeters: ");
 //serial.print(ping.centemeters());
 serial.println();
 
 
  {                                  
   myservo.write(0);  
   serial.print(0);
   serial.println(" ");
   digitalwrite(outputpin2, high);
   blinktimer2 = millis() + 1500;
   digitalwrite(outputpin2, low);
   blinktimer2 = millis() + 35;                      
  }
 
   {                                
    myservo.write(90);              
    serial.print(90);
    serial.println(" ");
    digitalwrite(outputpin3, high);
    delay(1000);
    digitalwrite(outputpin3, low);
    delay(35);                        
   }

    {                                
     myservo.write(180);              
     serial.print(180);
     serial.println(" ");
     digitalwrite(outputpin, high);
     delay(1000);
     digitalwrite(outputpin, low);
     delay(35);
     }
 
 
      {                                
       myservo.write(90);              
       serial.print(90);
       serial.println(" ");
       digitalwrite(outputpin3, high);
       delay(1000);
       digitalwrite(outputpin3, low);
       delay(35);                        
      }
 
 
 
}



code: [select]
  {                                  
   myservo.write(0);  
   serial.print(0);
   serial.println(" ");
   digitalwrite(outputpin2, high);
   blinktimer2 = millis() + 1500;
   digitalwrite(outputpin2, low);
   blinktimer2 = millis() + 35;                      
  }


first question. curly braces ({}) for?

second question. set blinktimer2 value, turn off output pin turned on, , set blinktimer2 new value. yet, never use blinktimer2 anywhere else. trying do?

third question. understand how millis used in blink without delay example? don't mean in mean-spirited way, seems not.

to have happen later, have 2 choices. can set timer, , wait (doing absolutely nothing else) until timer goes off. when goes off, time whatever waiting for.

on other hand, check watch periodically, see if time whatever.

the delay function (and blink example) use first approach. millis function, , additional code (as illustrated in blink without delay example) use second approach.

as example, phone rings. it's girlfriend. wants pick @ 7:00 tonight, go movie. it's 3:30 now. need leave @ 6:30 pick up.

you determine requires call delay of 3 hours, , sit in chair doing nothing until it's time go pick up.

on other hand, homework. @ end of each page, check watch. time go? if not, keep studying. if so, close books , go.

you done homework. is time go? no. mow grass. every time turn around, check watch.

one way, nothing else done. other way, plenty of other stuff done.

what have done in code posted determine when time leave on date. then, left on date. then, determined when time go home. then, went home, without ever getting see girlfriend or movie.

(if you're married, substitute wife (or mistress) girlfriend, everywhere. unless trouble.)


Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > can't get millis delay to work


arduino

Comments