1 const int NUMBER_OF_MARACAS = 2;
2 const int MARACAS_PINS[] = {6, 7};
3 const int MARACAS_DELAY = 5000;
5 const int NUMBER_OF_DRUMS= 4;
6 const int DRUM_PINS[] = {8, 9, 10, 11};
7 const int DRUM_DELAY = 2500;
9 int maracas_states[] = {-1,-1};
10 int maracas_delays[] = {0, 0};
12 int drum_delays[] = {0, 0, 0, 0};
15 for (int i = 0; i < NUMBER_OF_MARACAS; i++) {
16 pinMode(MARACAS_PINS[i], INPUT);
18 for (int i = 0; i < NUMBER_OF_DRUMS; i++) {
19 pinMode(DRUM_PINS[i], INPUT);
32 for (int i = 0; i < NUMBER_OF_MARACAS; i++) {
33 int newState = digitalRead(MARACAS_PINS[i]);
34 if (newState != maracas_states[i] && maracas_delays[i] < 1) {
35 Serial.print("maracas,");
38 maracas_states[i] = newState;
39 maracas_delays[i] = MARACAS_DELAY;
45 for (int i = 0; i < NUMBER_OF_DRUMS; i++) {
46 if (digitalRead(DRUM_PINS[i]) == HIGH && drum_delays[i] < 1) {
47 Serial.print("drum,");
50 drum_delays[i] = DRUM_DELAY;
55 void update_delays() {
56 for (int i = 0; i < NUMBER_OF_MARACAS; i++) {
57 if (maracas_delays[i] > 0) {
58 maracas_delays[i] -= 1;
61 for (int i = 0; i < NUMBER_OF_DRUMS; i++) {
62 if (drum_delays[i] > 0) {