Skip to content

Instantly share code, notes, and snippets.

@rahuldottech
Last active August 18, 2022 09:12
Show Gist options
  • Save rahuldottech/839cb13140f24debae8f72343115de4b to your computer and use it in GitHub Desktop.
Save rahuldottech/839cb13140f24debae8f72343115de4b to your computer and use it in GitHub Desktop.
[Arduino] buttonWait - wait for button press before further execution.
buttonWait v0.1 by rahuldottech
---------------------------------
(pause a script till a button is, y'know, *pressed*...)
This code is in the public domain.
Proper schematic at https://arduino.stackexchange.com/a/56805/50258
--
Circuit Diagram:
[pin]----|--------------[button]
| |
[10k resistor] |
| |
[ground] [vcc]
--
Usage:
buttonWait(<pin_number>);
/* the function */
void buttonWait(int buttonPin){
int buttonState = 0;
while(1){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
return;
}
}
}
void loop() {
// put your main code here, to run repeatedly:
buttonWait(2); // wait for button press on pin 2
// do something
// ...
}
/* the function */
void buttonWait(int buttonPin){
int buttonState = 0;
while(1){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
return;
}
}
}
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT); // initialize digital pin LED_BUILTIN as an output.
}
void loop() {
// put your main code here, to run repeatedly:
buttonWait(2); // wait for button press on pin 2
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
delay(1000); //wait for a second
buttonWait(2); // wait for another button press on pin 2
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
delay(1000); //wait for a second
}
@mexteele
Copy link

What I'm trying to achieve is a sequential process that advances with each pressing of the same button.

@rahuldottech
Copy link
Author

Hey, I'm so sorry for the delayed response. I took a cursory glance, and your code looks okay to me, I don't know why that would be happening.

Did you manage to figure it out?

@mexteele
Copy link

mexteele commented Aug 4, 2021

Hey, yes I figured out! Thank you

@oggysaud245
Copy link

how did you solve it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment