- Code: Select all
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
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?

