If statment looks like it is being ignored


very novice programmer here.

building setup control halloween prop. have photoelectric sensor feed ground arduino trigger. want sensor set "flag" when tripped. remove flag after set amount of time.

i stripped down program far can while retaining problem. last if statement intentionally false test, sensorflag should never go "0". because of arduino should not able turn relay off once on (set "1"). statement in code can turn flag off far can tell

how code runs: when block beam relay turns on. when remove block relay turns off. removed last if statement code , relay turns on , not shut off. indicates me last if statement responsible turning off relay. how can statement being false? 

code: [select]

int sensorflag = 0;

void setup() {

  pinmode(1, input_pullup);    // sensor pin 1, must supply ground trigger
  pinmode(5, output);          // runes relay
  pinmode(13, output);         // led indicator tied sensor 1
 
}
void loop() {
  int sensor1 = digitalread(1);
   
  if (sensor1 == low )  {       // when sensor triggered set sensor flag "1"
    sensorflag = 1;               
  }
  if (sensorflag == 0) {        // when sensor flag = 0 turn off relay , led
    digitalwrite(13, low);     
    digitalwrite(5, high);     
  }
  if (sensorflag == 1) {        // when sensor flag = 1 turn on relay , led
    digitalwrite(13, high);   
    digitalwrite(5, low); 
  }
  if (10 > 100); {              // statment false, why sensor flag going 0?
    sensorflag = 0;
  }
}

code: [select]

if (10 > 100); {              // statment false, why sensor flag going 0?
    sensorflag = 0;
  }


see semicolon there?  terminates if statement.  says, if 10 > 100 nothing.  next line sets sensorflag 0 not conditional.  it's not in if block.  happens every pass through loop no matter what. 


Arduino Forum > Using Arduino > Programming Questions > If statment looks like it is being ignored


arduino

Comments