Skip to main content
fix typo - ledOnAfterTimeTheshold->ledOnAfterTimeThreshold
Source Link
imjosh
  • 518
  • 2
  • 5

Try this:

unsigned long pressureOnTime; //millis() time when pressure switch is first turned on

const unsigned long ledOnAfterTimeThreshold = 300000; //5 minutes * 60 sec * 1000 mSec
int pressureThreshold = 1; //minimum analog reading from pressure sensor considered to be "on"

const int fsrAnalogePin = 0; 
const int ledPin = 11; 

int ledState = LOW;
int pressureState = LOW;

void setup() {
    Serial.begin(9600);
}

void loop() {
    checkPressureSwitch();  

    //do other stuff here
}


void checkPressureSwitch() {
    if( analogRead(fsrAnalogePin) >=  pressureThreshold ) 
    {
        handlePressureOn();
    }
    else 
    {
        handlePressureOff();
    }

    digitalWrite(ledPin, ledState);
}

void handlePressureOn() {
    if ( pressureState == LOW )
    {
        //pressure switch was off, but is now on
        pressureOnTime = millis();
        pressureState = HIGH;
    }
    
    else if ( millis() - pressureOnTime >= ledOnAfterTimeThesholdledOnAfterTimeThreshold ) 
    {
        ledState = HIGH;
    }
}

void handlePressureOff() {
    ledState = LOW;
    pressureState = LOW;
}

Try this:

unsigned long pressureOnTime; //millis() time when pressure switch is first turned on

const unsigned long ledOnAfterTimeThreshold = 300000; //5 minutes * 60 sec * 1000 mSec
int pressureThreshold = 1; //minimum analog reading from pressure sensor considered to be "on"

const int fsrAnalogePin = 0; 
const int ledPin = 11; 

int ledState = LOW;
int pressureState = LOW;

void setup() {
    Serial.begin(9600);
}

void loop() {
    checkPressureSwitch();  

    //do other stuff here
}


void checkPressureSwitch() {
    if( analogRead(fsrAnalogePin) >=  pressureThreshold ) 
    {
        handlePressureOn();
    }
    else 
    {
        handlePressureOff();
    }

    digitalWrite(ledPin, ledState);
}

void handlePressureOn() {
    if ( pressureState == LOW )
    {
        //pressure switch was off, but is now on
        pressureOnTime = millis();
        pressureState = HIGH;
    }
    
    else if ( millis() - pressureOnTime >= ledOnAfterTimeTheshold ) 
    {
        ledState = HIGH;
    }
}

void handlePressureOff() {
    ledState = LOW;
    pressureState = LOW;
}

Try this:

unsigned long pressureOnTime; //millis() time when pressure switch is first turned on

const unsigned long ledOnAfterTimeThreshold = 300000; //5 minutes * 60 sec * 1000 mSec
int pressureThreshold = 1; //minimum analog reading from pressure sensor considered to be "on"

const int fsrAnalogePin = 0; 
const int ledPin = 11; 

int ledState = LOW;
int pressureState = LOW;

void setup() {
    Serial.begin(9600);
}

void loop() {
    checkPressureSwitch();  

    //do other stuff here
}


void checkPressureSwitch() {
    if( analogRead(fsrAnalogePin) >=  pressureThreshold ) 
    {
        handlePressureOn();
    }
    else 
    {
        handlePressureOff();
    }

    digitalWrite(ledPin, ledState);
}

void handlePressureOn() {
    if ( pressureState == LOW )
    {
        //pressure switch was off, but is now on
        pressureOnTime = millis();
        pressureState = HIGH;
    }
    
    else if ( millis() - pressureOnTime >= ledOnAfterTimeThreshold ) 
    {
        ledState = HIGH;
    }
}

void handlePressureOff() {
    ledState = LOW;
    pressureState = LOW;
}
Source Link
imjosh
  • 518
  • 2
  • 5

Try this:

unsigned long pressureOnTime; //millis() time when pressure switch is first turned on

const unsigned long ledOnAfterTimeThreshold = 300000; //5 minutes * 60 sec * 1000 mSec
int pressureThreshold = 1; //minimum analog reading from pressure sensor considered to be "on"

const int fsrAnalogePin = 0; 
const int ledPin = 11; 

int ledState = LOW;
int pressureState = LOW;

void setup() {
    Serial.begin(9600);
}

void loop() {
    checkPressureSwitch();  

    //do other stuff here
}


void checkPressureSwitch() {
    if( analogRead(fsrAnalogePin) >=  pressureThreshold ) 
    {
        handlePressureOn();
    }
    else 
    {
        handlePressureOff();
    }

    digitalWrite(ledPin, ledState);
}

void handlePressureOn() {
    if ( pressureState == LOW )
    {
        //pressure switch was off, but is now on
        pressureOnTime = millis();
        pressureState = HIGH;
    }
    
    else if ( millis() - pressureOnTime >= ledOnAfterTimeTheshold ) 
    {
        ledState = HIGH;
    }
}

void handlePressureOff() {
    ledState = LOW;
    pressureState = LOW;
}