Buttons are an easy and tactile way to interface with your project, but why would you want to deal with debouncing, polling, and wiring up pull-up resistors? The SparkFun Qwiic Button Breakout simplifies all of those nasty worries away into an easy to use I2C device! Utilizing our Qwiic Connect System, using the button is as simple as connecting a cable and loading up some pre-written code! This breakout allows you to choose which color 12mm illuminated button you want to solder onto your breakout to match your project!
If you need multiple buttons for your project, fear not! Each button has a configurable I2C address, so you can daisy-chain multiple buttons over Qwiic and still address each one individually. We’ve got an example in our [Arduino library](https://github.com/sparkfun/SparkFun_Qwiic_Button_Arduino_Library) that provides a super-easy way to configure your Qwiic Button to whatever I2C address you desire. You can download the library through the Arduino library manager by searching ‘SparkFun Qwiic Button’ or you can get the GitHub repo as a .zip file and install the library from there.
In addition to handling blinking and debouncing, the Qwiic Button has configurable interrupts which can be configured to activate upon a button press or click. We’ve also taken the liberty of implementing a [FIFO queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type)) onboard the Qwiic Button where it keeps an internal record of when the button was pressed. This means that code on your microcontroller need not waste valuable processing time checking the status of the button but instead can run a small function whenever the button is pressed or clicked! For more information on interrupts check out [our guide here](https://learn.sparkfun.com/tutorials/processor-interrupts-with-arduino/all)!
*The SparkFun [Qwiic](https://www.sparkfun.com/qwiic) Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.*