//arduino pro mini にて
byte sw[]= {8,9,10,11};//最初の8ピンのみセレクト機能
byte sel=0;
int data[6];
byte mode=0;
word sw_cnt;
byte s_push;
byte sw_old[3];
void setup() {
for(byte i=0; i<4; i++)pinMode(sw[i], INPUT_PULLUP); //SW 8ピン
Serial.begin(9600);
}
void loop() {
//sw処理
if(digitalRead(sw[0])) {
if(sw_cnt>3 &&sw_cnt<100)s_push=1;
sw_cnt=0;
} else if(sw_cnt<60000)sw_cnt++;
for(byte i=1; i<4; i++) { byte tmp=digitalRead(sw[i]); if(tmp==LOW &&sw_old[i-1])s_push=i+1; sw_old[i-1]=tmp; } if(sw_cnt==100) {//長押しなら mode=!mode; if(mode==0)Serial.print("SELECT group:"); else Serial.print("PLAY group:"); Serial.println(sel+1); }
if(mode==0 &&s_push==1){
sel=(sel+1)%6;//項目変更
Serial.print("Group:");
Serial.println(sel+1);
}else if(mode==1 &&s_push) {
byte prog_num=sel*4+s_push;
//ここで実行したいプログラムを入れる
Serial.print("PROG:");
Serial.println(prog_num);
} s_push=0; delay(10);
}