#include <ezButton.h>
const int BTN_PINS[3] = {13, 12, 11};
const int LED_PINS[8] = {10, 9, 8, 7, 6, 5, 4, 3};
//const int b1 = 13;
//const int b2 = 12;
//const int b3 = 11;
//bool buttonState1;
//bool buttonState2;
//bool buttonState3;
int increment;
int btn1Status = 0;
ezButton button1(BTN_PINS[0], 0); // create ezButton object that attach to pin 6;
ezButton button2(BTN_PINS[1], 0); // create ezButton object that attach to pin 7;
ezButton button3(BTN_PINS[2], 0); // create ezButton object that attach to pin 8;
void setup() {
Serial.begin(9600);
button1.setDebounceTime(20); // set debounce time to 50 milliseconds
button2.setDebounceTime(50); // set debounce time to 50 milliseconds
button3.setDebounceTime(50); // set debounce time to 50 milliseconds
button1.setCountMode(COUNT_FALLING);
//pinMode(b1, INPUT_PULLUP);
//pinMode(b2, INPUT_PULLUP);
//pinMode(b3, INPUT_PULLUP);
// put your setup code here, to run once:
for (int led = 3; led <= 10; led++) {
pinMode(led, OUTPUT);
}
}
void loop() {
button1.loop(); // MUST call the loop() function first
button2.loop(); // MUST call the loop() function first
button3.loop(); // MUST call the loop() function first
//int buttonState1 = !button1.getState();
//int buttonState1 = button1.getState() ;
int buttonState2 = button2.getState();
int buttonState3 = button3.getState();
unsigned long count = button1.getCount();
Serial.println(count);
//Serial.print("button 1 state: ");
//if ( button1.getCount() % 2 == 0) {
//btn1Status = 1;
//} else {
//btn1Status = 0;
//}
//Serial.println(btn1Status);
//Serial.println(buttonState1);
//}
/*
//Serial.print("button 2 state: ");
//Serial.println(btn2State);
//Serial.print("button 3 state: ");
//Serial.println(btn3State);
if(button1.isPressed())
Serial.println("The button 1 is pressed");
if(button1.isReleased())
Serial.println("The button 1 is released");
if(button2.isPressed())
Serial.println("The button 2 is pressed");
if(button2.isReleased())
Serial.println("The button 2 is released");
if(button3.isPressed())
Serial.println("The button 3 is pressed");
if(button3.isReleased())
Serial.println("The button 3 is released");
*/
//buttonState1 = not(digitalRead(b1));
//buttonState2 = not(digitalRead(b2));
//buttonState3 = not(digitalRead(b3));
// put your main code here, to run repeatedly:
/*
if (buttonState1 == 0 && buttonState2 == 0 && buttonState3 == 0) {
Serial.println("OFF");
}
else if (buttonState1 == 0 && buttonState2 == 0 && buttonState3 == 1) {
pattern1();
}
else if (buttonState1 == 0 && buttonState2 == 1 && buttonState3 == 0) {
pattern2();
}
else if (buttonState1 == 0 && buttonState2 == 1 && buttonState3 == 1) {
pattern3();
}
else if (buttonState1 == 1 && buttonState2 == 0 && buttonState3 == 0) {
pattern4();
}
else if (buttonState1 == 1 && buttonState2 == 0 && buttonState3 == 1) {
pattern5();
}
else if (buttonState1 == 1 && buttonState2 == 1 && buttonState3 == 0) {
pattern6();
}
else if (buttonState1 == 1 && buttonState2 == 1 && buttonState3 == 1) {
pattern7();
}
*/
//pattern7();
//Serial.println(buttonState1);
//Serial.println(buttonState2);
//Serial.println(buttonState3);
//Serial.println("##########");
//delay(30);
//delay (1000);
}
// --><--
void pattern1() {
for (int i = 0; i <= 3; i++) {
digitalWrite(LED_PINS[i], HIGH);
digitalWrite(LED_PINS[7-i], HIGH);
delay(200);
digitalWrite(LED_PINS[i], LOW);
digitalWrite(LED_PINS[7-i], LOW);
}
}
// <--, <--
void pattern2() {
for (int i = 3; i >= 0; i--) {
digitalWrite(LED_PINS[i], HIGH);
digitalWrite(LED_PINS[i+4], HIGH);
delay(200);
}
for (int i = 3; i >= 0; i--) {
digitalWrite(LED_PINS[i], LOW);
digitalWrite(LED_PINS[i+4], LOW);
delay(200);
}
}
//even blink
void pattern3() {
for (int i = 0; i <= 7; i = i+ 2) {
digitalWrite(LED_PINS[i], HIGH);
}
delay(200);
for (int i = 0; i <= 7; i = i+ 2) {
digitalWrite(LED_PINS[i], LOW);
}
delay(200);
}
// alternate blink
void pattern4() {
digitalWrite(LED_PINS[0], HIGH);
digitalWrite(LED_PINS[2], HIGH);
digitalWrite(LED_PINS[4], HIGH);
digitalWrite(LED_PINS[6], HIGH);
delay(250);
digitalWrite(LED_PINS[0], LOW);
digitalWrite(LED_PINS[2], LOW);
digitalWrite(LED_PINS[4], LOW);
digitalWrite(LED_PINS[6], LOW);
delay(250);
digitalWrite(LED_PINS[1], HIGH);
digitalWrite(LED_PINS[3], HIGH);
digitalWrite(LED_PINS[5], HIGH);
digitalWrite(LED_PINS[7], HIGH);
delay(250);
digitalWrite(LED_PINS[1], LOW);
digitalWrite(LED_PINS[3], LOW);
digitalWrite(LED_PINS[5], LOW);
digitalWrite(LED_PINS[7], LOW);
delay(250);
}
// odd -->, <--
void pattern5() {
for (int i = 1; i <= 7; i = i + 2) {
digitalWrite(LED_PINS[i], HIGH);
delay(200);
digitalWrite(LED_PINS[i], LOW);
}
for (int i = 7; i >= 1; i = i - 2) {
digitalWrite(LED_PINS[i], HIGH);
delay(200);
digitalWrite(LED_PINS[i], LOW);
}
}
// -->
void pattern6() {
for (int i = 0; i <= 7; i++) {
digitalWrite(LED_PINS[i], HIGH);
delay(200);
digitalWrite(LED_PINS[i], LOW);
}
}
// blink
void pattern7() {
for (int i = 0; i <= 7; i++) {
digitalWrite(LED_PINS[i], HIGH);
}
delay(250);
for (int i = 0; i <= 7; i++) {
digitalWrite(LED_PINS[i], LOW);
}
delay(250);
}