Is this slow response time normal?
Moderators: adafruit_support_bill, adafruit

Is this slow response time normal?

by ubestbsteppin on Thu Nov 08, 2012 7:20 pm

I'm new to arduino's and am curious if the response time I'm seeing between a button press and LED illumination or normal. Here is the part of my code that I'm talking about:

Code: Select all | TOGGLE FULL SIZE
void  loop()
{
    DateTime now = RTC.now();
  setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year()); // set time & date
  Alarm.delay(1000);
  Alarm.delay(1000);
  btn2val = digitalRead(btn2);
  if (btn2val == LOW) {
  do1();
  }
  btn1val = digitalRead(btn1);
  if (btn1val == LOW) {
    Serial.println("Button 1 pressed");
    do2();
  }
  btn3val = digitalRead(btn3);
  if (btn3val == LOW) {
    do3();
  }
}


Each of the functions illuminate an LED and write to an LCD. Like this:

Code: Select all | TOGGLE FULL SIZE
void do2()
{
 digitalWrite(rgbledPin1, HIGH);   
 digitalWrite(rgbledPin2, HIGH);
lcd.clear();
lcd.print("Positive");
   delay(3000);
 lcd.clear();
 lcd.print("Ready for input");
 
}


The issue is that I have to hold down the button for about 1 second before the function will run. I was thinking that maybe the loop just doesn't run fast enough to detect the button press unless it is held down. Is that correct?
ubestbsteppin
 
Posts: 23
Joined: Fri Aug 05, 2011 6:16 pm

Re: Is this slow response time normal?

by adafruit_support_bill on Fri Nov 09, 2012 6:01 am

It looks like you have a lot of delays in your code. These will slow down the loop and your button-press detection.
User avatar
adafruit_support_bill
 
Posts: 29014
Joined: Sat Feb 07, 2009 9:11 am