Signal Input/Output

Official libraries

  • ArduinoMotorCarrier: Allows to use the Arduino Motor Carrier
  • Audio: Allows playing audio files from an SD card. For Arduino DUE only.
  • AudioZero: Allows playing audio files from an SD card. For Arduino Zero and MKR1000 only.
  • MKRMotorCarrier: Allows to use the MKR Motor Carrier

Contributed by the community

  • AceButton: An adjustable, compact, event-driven button library that handles debouncing and dispatches events to a user-defined event handler.
  • ACS712: ACS712 library for Arduino.
  • AD524X: Arduino Library for AD524X
  • AD57X4R: Provides an SPI based interface to the AD5724R, AD5734R, and the AD5754R Quad 12-/14-/16-Bit Unipolar/Bipolar Voltage Output DACs.
  • AD7390 DAC library: Arduino library for the AD7390 digital to analog converter (DAC)
  • AD985X: Arduino library for AD9850 and AD9851 function generators. Supports both hardware SPI as software SPI.
  • Adafruit ADS1X15: Arduino library for ADS1015/1115 ADCs.
  • Adafruit AM radio library: Arduino library for AM radio on samd21 microcontroller
  • Adafruit AW9523: Arduino library for the AW9523 GPIO expanders in the Adafruit shop
  • Adafruit BD3491FS: Arduino library for the BD3491FS Sound Processor in the Adafruit shop
  • Adafruit BusIO: This is a library for abstracting away UART, I2C and SPI interfacing
  • Adafruit composite video Library: Arduino library for composite video on samd21 microcontroller
  • Adafruit Keypad: Diode-multiplexed keypad support for Arduino
  • Adafruit MCP23008 library: Arduino Library for the MCP23008 (and '9) I2C I/O expander
  • Adafruit MCP23017 Arduino Library: Library for the MCP23017 I2C Port Expander
  • Adafruit MCP3008: MCP3008 8-Channel 10-Bit ADC
  • Adafruit MCP4725: MCP4725 12-bit I2C DAC
  • Adafruit Zero DMA Library: DMA helper/wrapped for ATSAMD21 such as Arduino Zero & Feather M0
  • Adafruit Zero FFT Library: FFT library for Arduino Zero / Adafruit Feather M0 (SAMD21 processor).
  • Adafruit Zero I2S Library: I2S audio playback library for the Arduino Zero / Adafruit M0 (SAMD21 processor) and M4 (SAMD51) boards
  • Adafruit Zero PDM Library: PDM Microphone Input library for Arduino Zero / Adafruit Feather M0 (SAMD21 processor).
  • AdagioPro: Controls Adagio RGB Poollights over RS-485
  • Adaino: An Analog Data Acquisition library for Arduino and IoT.
  • ADC_SAmpler: Enable analog sequencer with timer on SAM3x DUE
  • ADC_SEQR: Enable analog sequencer on SAM3x DUE
  • ADS1110: ADS1110 Driver (16-BIT ADC with Onboard Reference, PGA and I2C Interface)
  • ADS1115_WE: A library for the ADS1115 ADC
  • ADS1118 library: Arduino library for TI ADS1118 (16-Bit Analog-to-Digital Converter with Internal Reference and Temperature Sensor).
  • ADS1219: ADS1219 24 bit ADC
  • AmigaMouseJoyEmu: Library to emulate Amiga Mouse or joystick
  • Analog-Digital Multiplexers: Arduino library for controlling analog/digital multiplexers (A/D mux).
  • analogComp: Set and manage the integrated analog comparator
  • AnalogIO-Arduino: This library allows to read a value from an analog input like an potentiometer, or from a digital input like an encoder. Moreover, allows to write it on digital output, exactly on PWM pin.
  • AnalogMultiButton: An Arduino library to capture button presses on multiple buttons through a single analog pin.
  • AnalogPin: Arduino Library for AnalogPin
  • AnalogTouch: AnalogTouch library for Arduino
  • Anyleaf: Driver for the AnyLeaf pH and RTD sensors.
  • ArduinoLearningKitStarter: Library for the ArduinoLearningKitStarter (ALKS) board by RoboticsBrno with definition of pins and initialization of peripheries.
  • ArduMax AD5241 Driver: Driver for Analog Devices AD5241/2 and AD5280/2 digital potentiometers.
  • ArduMax MCP41xxx Driver: Driver for Microchip MCP41xxx/42xxx digital potentiometers and MCP43xxx/44xxx digital rheostats.
  • AsyncAnalog: Arduino Library for async reading of an analog pin
  • Audio - Adafruit Fork: Adafruit SAMD51 port of Teensy Audio Library - Flexible, High Quality Audio Processing
  • AudioShieldDTMF: MCP4921 Audio Shield DTMF Example
  • AutoAnalogAudio: Automated analog reads and analog output (streaming) using Arduino DAC(or PWM), ADC, DMA and Timers
  • AutoPID: Automatic PID controller
  • avdweb_AnalogReadFast: Fast analogRead 10/12 bit ADC for the Arduino Zero and Uno
  • AxisJoystick: The Library implements a set of methods for working with an axis joystick controller.
  • Bits and Droids flight sim library: Use serial communication to control flight sim.
  • BlinkCode Library: Asynchronous BlinkCode library for indicating flash fault codes.
  • Bounce2: Debouncing library for Arduino and Wiring.
  • Button: Button is a tiny library to make reading buttons very simple.
  • Button-Arduino: This library allows to manage a button.
  • ButtonKing: Arduino libary for improving the usage of a singe input button.
  • ButtonSuite: A set of classes for using a momentary buttons as momentary buttons, latching buttons, counters, and enumerators.
  • CaptureTimer: Arduino Input Capture Library
  • Computherm RF Library: Arduino library for Computherm Q8RF thermostat.
  • Controlino: A library for using direct or multiplexed input controls easily.
  • CurrentTransformerWithCallbacks: Coil, Current Transformer (CT) based AC current measurements using fast ADC sampling of waveform
  • CuteBuzzerSounds: Simple and Cute Robot Sounds
  • DAC7611: A library that makes interfacing the DAC7611p a breeze.
  • DaisyDuino: Arduino library for the Daisy audio platform.
  • DDS: Generate sinusoids on AVR-based Arduinos at varying frequencies. Requires an analog low-pass filter.
  • DebounceEvent: Simple push button and toggle switch debounce library that reports number of clicks and length
  • DFRobot_ESP_EC_BY_GREENPONIK: Update from DFROBOT library for ESP32 compatibility
  • DFRobot_ESP_PH_WITH_ADC_BY_GREENPONIK: Update from DFROBOT library for ESP32+ADC compatibility
  • Dimmer class for ATmega32U4: Easy use of 10/12 bit PWM outputs on ATmega32U4 for dimmer applications.
  • Dimmer class for SAMD21: Easy use of PWM outputs on SAMD21 for dimmer applications.
  • DmtrPots: Potentiometer library for Arduino / Teensy.
  • DUE_schmitt: Enable SAM3x DUE IO Schmitt trigguer
  • EasyButton: Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
  • EasyButtonAtInt01: Small and easy to use Arduino library for using push buttons at INT0/pin2 and / or any PinChangeInterrupt pin.<br/>Functions for long and double press detection are included.<br/><br/>Just connect buttons between ground and any pin of your Arduino - that's it<br/><br/><b>No call</b> of begin() or polling function like update() required. No blocking debouncing delay.<br/>
  • EasyBuzzer: EasyBuzzer Library
  • eBtn: A library to handle Buttons based on events.
  • EButton: A compact, simple-to-use, reliable and powerful event-driven button library, with proper debouncing and fine grained event structure.
  • Embedded Type-C PID: PID controller (Type-C) with a flexible API and errors handling.
  • EnableInterrupt: Assign an interrupt to any supported pin on all Arduinos, plus ATtiny 84/85 and ATmega 644/1284.
  • Encoder: Counts quadrature pulses from rotary & linear position encoders.
  • EnergyMeter: Arduino library to get data from energy meters in order to monitor them.
  • ESP32 AnalogWrite: ESP32 Polyfill for analogWrite functions
  • ESP32AnalogRead: Load the ESP32 ADC calibration data and use it to read from the ADC.
  • ESP8266Audio: Audio file and I2S sound playing routines.
  • ESPiLight: pilight 433.92 MHz protocols library for Arduino
  • EspSoftwareSerial: Implementation of the Arduino software serial for ESP8266/ESP32.
  • ezButton: Button library for Arduino
  • ezOutput: Output library for Arduino
  • FadeLed: Makes fading LEDs easy
  • FastGPIO: Faster general-purpose I/O
  • FastPID: A PID controlled implemented using fixed-point arithmetic.
  • FastShiftIn: Arduino library for (AVR) optimized shiftIn - e.g. for 74HC165
  • FastShiftOut: Arduino library for (AVR) optimized shiftOut - e.g. 74HC595
  • FlightSimOutputs: Library for easy handling of digital outputs on Midwest737Simulations.com Multi Output card.
  • FlightSimSwitches: Library for easy handling of Switches and Buttons in X-Plane with PJRC's Teensy
  • Formulinha: Formulinha Robot Library
  • FreqCount: FreqCount measures the frequency of a signal by counting the number of pulses during a fixed time.
  • FreqMeasure: FreqMeasure measures the elapsed time during each cycle of an input frequency.
  • FrequencyDetector: Measure the main frequency of analog captured signal connected to an Arduino and check for noise and mute.<br/>
  • FTDebouncer: An efficient, low footprint, fast pin debouncing library for Arduino
  • GAMMA: Arduino Library for the GAMMA function
  • Gemelon Pushbutton: Arduino library to debounce a pushbutton.
  • GFButton: Library to manage buttons
  • GroveDriverPack: GroveDriverPack
  • HalfStepper: <br/>An Arduino library to enable half-stepping and single/dual phasing for step motors.
  • HT16K33: Arduino Library for HT16K33
  • HV518: Arduino library to control Microchip HV518
  • HX711: Arduino library for HX711 loadcell amplifier
  • Hysteresis: Hysteresis library
  • i2c_adc_ads7828: Arduino library for the Texas Instruments ADS7828 12-bit, 8-channel I2C A/D converter.
  • I2cDiscreteIoExpander: Arduino library for the Texas Instruments PCF8575C 16-bit I2C I/O expander.
  • I2CKeyPad: Arduino libray for 4x4 KeyPad connected to a PCF8574
  • iBit_Arduino: A control library for iBit Board.
  • iKB1_Arduino: A control library for IKB-1 Extension I/O Board.
  • Indio: Library for the Industruino IND.I/O product
  • Infrared: An object oriented library for sending, receiving, generating, and decoding IR signals on the Arduino.
  • InputDebounce: Simple polling input debounce Arduino library.
  • IRLremote: Lightweight Infrared library for Arduino
  • IRMP: Receive and send infrared signals.<br/>
  • IRRemoteControl: A lightweight library for send/receive infra-red signal.
  • IRsmallDecoder: Allows the reception and decoding of infrared signals from remote controls.
  • Itty Bitty: <br/>With the fastest possible Arduino-compatible GPIO and register manipulation...<br/>It's the biggest of hits when you need to bang bits!
  • JC_Button: Arduino library to debounce button switches, detect presses, releases, and long presses.
  • jm_CPPM: A CPPM Library for Arduino.
  • K1200: Library for the Velleman K1200 watch.
  • KeyDetector: A library for detecting state change on analog and digital pins.
  • Krypton: A library that makes use of Krypton ion thruster controller.
  • LED Dithering: Adjustable LED brightness on every IO pin with software-controlled blinking
  • LedBlinky: Allows an Arduino/Genuino board to control the builtin led and external leds.
  • Leeman Geophysical Learning Shield: Tools for the Leeman Geophysical LLC Learning Shield.
  • Lifely Agrumino Lemon: A library for Agrumino Lemon Device
  • LitSwitch: A special library for an LED/momentary switch hardware combination.<br />
  • Lixie: Allows for easy writing to Lixie Digit displays!
  • Lixie II: Library for controlling Lixie II displays!
  • LogansGreatButton: An all in one, easy to use, powerful, self contained button library so you can focus on your other code! Includes Debouncing, Avoids Delays, multiclicks and allows you to decide what happens at the beginning and end of Short, Long, Hold and Shifts so you can create a intuative and responsive experience.
  • LTC1392 library: Arduino library for the LTC1392 Micropower Temperature, Power Supply and Differential Voltage Monitor
  • M10ADC: ADC library for PulseRain M10 board.
  • M10CODEC: CODEC library for the Si3000 CODEC on PulseRain M10 board.
  • M10DTMF: DTMF library for PulseRain M10 board.
  • M10ESP8266: library for ESP8266 shield.
  • M10Examples: Examples for PulseRain M10 board.
  • M10I2C: I2C library for PulseRain M10 board.
  • M10JTAG: JTAG UART library for PulseRain M10 board.
  • M10LCD: Library for LCD Interface
  • M10PS2: Library for PS2 Interface
  • M10PWM: PWM library for PulseRain M10 board.
  • M10SD: microSD library for PulseRain M10 board.
  • M10SerialAUX: Auxiliary Serial port library for PulseRain M10 board.
  • M10SevenSeg: Library for Seven Segment Display
  • M10SRAM: SRAM (Microchip 23LC1024) library for PulseRain M10 board.
  • MCP23017: MCP23017 I2C Port expander library.
  • MCP23017_RT: Arduino library for I2C MCP23017 16 channel port expander 16 IO-lines
  • MCP23017_WE: A library for the MCP23017 portexpander
  • MCP3202: Used to interface the 12 bit ADC MCP3202 by Microchip.
  • MCP3221: MCP3221 Driver (12-bit ADC with hardware I2C Interface)
  • MCP3X21: MCP3021 & MCP3221 Arduino library
  • MCP48xx DAC Library: A library to control the MCP48xx family of SPI digital to analog converters (DACs).
  • MD_AButton: Library for multiple switches on one analog input.
  • MD_KeySwitch: Library for digital switches.
  • MD_SN76489: Library for SN76489 sound generator.
  • MD_UISwitch: Library for Uinversal User Interface Switches.
  • MD_YM2413: Library for Yamaha YM2413 sound synthesizer.
  • MicroTone: low-flash high-performance pulse train library with attiny13
  • miniDAC: Library for Arduino miniDAC module by Tamojit Saha and Sandeepan Sengupta.
  • MjGrove: MjGrove
  • MobaLedLib: <h3>Arduino library for driving up to 768 LEDs, signals, sound modules or other actuators via one signal line on a model railway.</h3>
  • ModernPIDControlSS: Modern PID Control Architecture and CPLMFC Tuning
  • MorePins: Makes use of shift registers to create more pins, as many as needed, using only 3 Arduino Pins
  • MorseDuino: Arduino library for generation morse code and displaying it on LEDs
  • MOVI Voice Dialog Shield: This is the Arduino library for the MOVI(tm) Voice Dialog Shield.
  • MovingAverage: Arduino Library for averaging fixed-point numbers
  • MovingAverageAngle: Arduino & Mbed Library for averaging angles 0-360°
  • MovingAverageFloat: Arduino Library for averaging float numbers
  • MSGEQ7: Library for Musicvisualization with MSGEQ7
  • MultiButton: Reliable detection of single, double and long clicks.
  • MusicBuzzer: A Collection of musics for buzzer
  • MusicWithoutDelay: A library to play multiple musical notes at the same time without Delay.
  • Nintendo: Connect all your favourite Nintendo Controllers to your Arduino.
  • Notched Shaft Encoder: Monitor the postion and clickable button status from a Notched Shaft Encoder
  • ObjectButton: An Arduino library for detecting button actions.
  • OneButton: Arduino library for improving the usage of a singe input button.
  • OptoDebounce: 100Hz opto debouncer.
  • P1AM: P1AM-100 CPU library
  • PCA9505_06 Library: Library for the 40bit PCA9505/06 I2C Port Expander
  • PCA9536: PCA9536 Driver (4-Channel GPIO I2C Expander)
  • PCA9634 library: A library for the PCA9634 8-bit Fm+ I2C-bus LED driver.
  • PCA9635: Arduino library for PCA9635 I2C LED driver
  • PCA9685_RT: Arduino library for I2C PCA9685 16 channel PWM
  • PCF8574: Arduino library for PCF8574 - 8 channel I2C IO expander
  • PCF8575: Arduino library for PCF8575 - 16 channel I2C IO expander
  • PCF8591: PCF8591 library for Arduino. Supports multiple I2C WireN bus.
  • PCF8591 library: Arduino, ESP8266 and esp32 library for PCF8591.
  • PciManager: This library helps you manage Pin Change Interrupts: subscribe and receive change events.
  • PCM: Playback of short audio samples.
  • PID: PID controller
  • PID_v2: PID controller
  • Pin: An easy to use Arduino library for fast and simultaneous operations on Arduino I/O pins.
  • PinChangeInterrupt: A simple & compact PinChangeInterrupt library for Arduino.
  • PinExtender Library: Library for Pin Extention
  • PIO8255: Arduino library for using intel 8255 CMOSes.
  • Plaquette: An object-oriented library for creative physical computing.
  • Plex64: A library for the Plex64 analog input multiplexer shield.
  • Polymorphic Buttons: A simple library to make multifunction buttons.
  • PPMEncoder: A library to encode/generate a PPM signal for controlling RC Cars, etc...
  • PS2Keyboard: Use a PS/2 Keyboard for input
  • PulsePattern: Library to generate repeating pulse patterns. (AVR only)
  • PulsePosition: Send and receive multiple high resolution PPM encoded signal streams.
  • PulseRainUARTConsole: Arduino Library for UART Console
  • Pushbutton: Pushbutton library for Arduino
  • PushButton Event Modelling Library: PushButton events modelling library
  • QDEC: High-efficiency, state-machine based quadrature decoder.
  • QuickPID: A fast fixed/floating point PID controller with AutoTune and 8 tuning rules to choose from.
  • r89m Buttons: A library that makes working with buttons simple.
  • r89m CapacitiveButton: Handle CapacitiveButtons, powered by the CapacitiveSensor library
  • r89m MPR121Button: Handle MPR121Buttons, powered by Adafruit's MPR121 library
  • r89m PushButton: Handle PushButtons, debounced using the Bounce2 library.
  • RadioengeLoraWAN: Implementation of RadioengeLoraWAN AT-COMMANDS..
  • RBD_Button: Read and debounce buttons and switches.
  • RCLSwitch: Compact version of RC Switch
  • ResponsiveAnalogRead: Arduino library for eliminating noise in analogRead inputs without decreasing responsiveness
  • RGB: This library for Arduino allows you to control RGB led.
  • RGB_LED: A library that manage 4 legs rgb leds colour and light duration.
  • Romans Audio FastDigitalPin Library: Arduino lib for fast digital reads and writes.
  • RotaryEncoder: Use a rotary encoder with quadrature pulses as an input device.
  • SAMD21 Audio Player: Simple audio player for SAMD21-based Arduinos
  • SAMD21 turbo PWM: Fast-PWM library for SAMD21G-based Arduinos
  • Sensor: A simple Arduino Sensor/map wrapper
  • SensorToButton: An algorithm to convert analog Data into a Button.<br />
  • SeqButton: Sequential Button Arduino Library
  • ServoInput: Read positional data from servo motors and drivers.
  • ShiftRegister-PWM-Library: Makes shift register pins PWM capable.
  • Simple Repository IO: A simple IO controller
  • SimpleExpressions: Make you Robots cute and noisy
  • slight_ButtonInput: Event based button input.
  • slight_RotaryEncoder: Event based rotary ecnoder input.
  • SmartButton Library: Asynchronous SmartButton library for handling various button events.
  • SmoothADC: Get ADC to return averaged values.
  • SN76489: sn76489 arduino library.
  • Sodaq_PcInt: An Arduino library to deal with PCINT (Pin Change Interrupts)
  • SoftPWM: A software library to produce a 50 percent duty cycle PWM signal on arbitrary pins.<br />
  • SoundPlayer: Allows Arduino Boards to play 8-bit sounds recorded at 40kHz sampling frequency.
  • SparkFun AD5330: Libraries for the AD5330 8-bit DAC
  • SparkFun ADS1015 Arduino Library: Library for the ADS1015 ADC to I2C converter used on the SparkFun Qwiic 12-bit ADC and Flex Glove Controller.
  • SparkFun MiniGen: SparkFun MiniGen library allows the user to generate sine, square, or triangle waves at up to 3MHz, and approximately 1Vp-p.
  • SparkFun TLC5940: Library for the TLC5940 IC.
  • SparkFun VKey Arduino Library: Arduino Library for interfacing the SparkFun VKey Voltage Keypad.
  • SPI-DAC7611: A library that interfaces with the DAC7611 using the standard SPI library.
  • Step_CYC10_I2C: Library for the I2C Soft Controller on Step CYC10 FPGA board
  • Step_CYC10_Seven_Seg_Display: Library for the 7-segment display on Step CYC10 FPGA board
  • Switch: Arduino library for deglitching and debouncing switches and buttons.
  • SX1509 IO Expander: Arduino library and hardware files for the SX1509 IO Expander Breakout board.
  • Talkie: Speech library for Arduino.
  • Teensy_3X_Multipurpose_Board: Library to interface with Teensy 3.X breakout board (PCB gerber and Eagle project files included!)
  • Throttle: Just like Debounce but faster
  • TinyWireM: I2C library for Trinket and Gemma, adapted from BroHogan's code on Arduino Playground
  • Tlc5940: Use the Texas Instruments TLC5940 16-channel LED Driver
  • TN_SwitchState: A library to manage switch state transitions.
  • Tone: A software digital square wave tone generation library.<br />
  • toneAC: Replacement to the standard tone library with many advantages
  • ToneLibrary: This is an Arduino Library to produce a tone on any Arduino pin.
  • Tsunami: Library for interfacing with the Tsunami's hardware peripherals.
  • TVout: A library for generating PAL or NTSC video output with an AVR.
  • vbus-arduino: Allows arduino to read data from some vbus compatible controllers.
  • Volume: Gives tone functionality with 8 bit volume control with no extra parts
  • Volume 3: Gives tone functionality with 10-bit volume control with no extra parts!
  • Volume2: Gives tone() functionality with multiple waveforms and 8-bit volume control - with no extra parts!
  • WeatherMeters: Weather Meters library
  • weight: Library of weight conversion functions
  • wm8978-esp32: An esp32 library for the wm8978 dac.
  • WTV020SD16P: Arduino library for the WTV020-SD-16P sound module
  • XLR8ADC: Arduino library to take advantage of XLR8 ADC performance.
  • XLR8SPI: Library to use SPI interfaces through SPI XBs.
  • Yet Another Arduino PcInt Library: A library to support Pin Change Interruptions (PCINT) on AVR Arduinos
  • YK04_Module: Library for working with a remote control sensors based on the YK04 driver.
  • ZMotor2 Library: Library for a board called Motor2
  • ZMotor3Library: Library for a board called Motor3