// Button 1 scrolls through all patterns.
// Button 2 directly starts pattern X.
// Button 3 directly starts pattern XY.
// I'm undecided on implementing a button 4 for reverse scrolling.
// Only one pattern will run at a time of course.
#include <mechButton.h>
#define MAX_INDEX 3 // The amount of patterns.
mechButton scrollBtn(2);
mechButton startBtn(3);
mechButton altStartBtn(4);
enum states { waiting, running, altRunning };
states ourState;
int index;
void setup(void) {
Serial.begin(115200);
scrollBtn.setCallback(scrollClk);
startBtn.setCallback(startClk);
altStartBtn.setCallback(altStartClk);
index = 1;
ourState = waiting;
Serial.print("index : ");
Serial.println(index);
}
void scrollClk(void) {
if (!scrollBtn.getState()) {
index++;
if (index>MAX_INDEX) {
index = 1;
}
Serial.print("Scroll click with index : ");
Serial.println(index);
}
}
void startClk(void) {
if (!startBtn.getState()) {
Serial.println("startBtn click");
}
}
void altStartClk(void) {
if (!altStartBtn.getState()) {
Serial.println("altStartBtn click");
}
}
void loop(void) {
idle();
switch(ourState) {
case waiting : break;
case running :
break;
case altRunning :
break;
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r