Double HIGH (with pause) and hold HIGH on output pin using Chrono library


hi everyone.

i'm trying make program (using chrono library) following:

1. when "input" high start counting (start chrono) , set "pin" high
2. when 200ms has passed set "pin" low
3. when 300ms has passed set "pin" high , hold in high long "input" high
4. if "input" low, set "pin" low

with code i've written "pin" high when "input" high.
and can't use "start()" command library, i've used restart (when use "mychrono.start();" error message while compiling " 'class chrono' has no member named 'start' "
any advice?

code: [select]
#include <chrono.h>


chrono mychrono;


int pin = 2;
int input = a2;


void setup() {
 
  pinmode (pin, output);
  pinmode (input, input);

}



void loop() {
  if (digitalread(input) == high) {

    digitalwrite(pin, high);

    mychrono.start();

    if (mychrono.haspassed(200)) {
      digitalwrite(pin, low);
      mychrono.restart();
    }

    if (mychrono.haspassed(300)) {
      digitalwrite(pin, high);
      mychrono.stop();
    }


  }


  else if (digitalread(input) == low) {
    digitalwrite(pin, low);
  }

}

code: [select]
void loop() {
  if (digitalread(input) == high) {

    digitalwrite(pin, high);

    mychrono.start();

the loop() function repeats thousands of times second input high time switch closed, assuming have wired go high when pressed , held low when not pressed.  if start method existed , worked, want or want start timer when input becomes high ?

personally use millis() timing , state machine control timing , actions , not use library.


Arduino Forum > Using Arduino > Programming Questions > Double HIGH (with pause) and hold HIGH on output pin using Chrono library


arduino

Comments

Popular posts from this blog

Error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode - Raspberry Pi Forums

class MPU6050 has no member named begin

missing filename after '-o'