/ Step_Switch_Pico_Demo_Arduino / Step_Switch_Pico_Demo_Arduino.ino
Step_Switch_Pico_Demo_Arduino.ino
 1  // SPDX-FileCopyrightText: 2022 John Park for Adafruit Industries
 2  // SPDX-License-Identifier: MIT
 3  // Step Switch Party for Pico
 4  
 5  // extra library used:
 6  // Bounce2 -- https://github.com/thomasfredericks/Bounce2
 7  
 8  #include <Wire.h>
 9  #include <Bounce2.h>
10  
11  
12  const int num_buttons = 4;
13  const int led_pins[num_buttons] = {2, 3, 4, 5};
14  const int button_pins[num_buttons] = {6, 7, 8, 9}; 
15  Bounce buttons[num_buttons];
16  bool led_vals[num_buttons];
17  
18  
19  void setup() {
20    Serial.begin(9600);
21    delay(1000);
22    Serial.println("Step Switch Pico Party");
23  
24    for (uint8_t i=0; i< num_buttons; i++){
25      buttons[i].attach( button_pins[i], INPUT_PULLUP);
26    }
27  
28    for (uint8_t i=0; i< num_buttons; i++){
29        pinMode(led_pins[i], OUTPUT);
30        digitalWrite(led_pins[i], HIGH);
31        led_vals[i] = HIGH;
32    }
33  }
34  
35  
36  void loop() {
37    for (uint8_t i=0; i< num_buttons; i++){
38      buttons[i].update();
39      if( buttons[i].fell()) {
40        // do something here, such as send MIDI, change a NeoPixel animation, etc.
41        Serial.println(i);
42        led_vals[i] = !led_vals[i];
43        digitalWrite(led_pins[i], led_vals[i]);
44      }
45    }
46    
47  }