Interfacing with Hardware

These topics cover the hardware and software setup required to connect an Arduino device with a variety of electronic parts, chips and devices. A related topic not covered under this section is the shield, boards that plug directly into an Arduino's pin layout. Information on the creation and use of specific shields belongs in that section. Information on shields in general and their creation belongs here.

See here for a table of shields and the Arduino pins they use.

Arduino has limits on how much current can be sourced or sunk by its I/O pins. When interfacing with hardware you need to be careful not to exceed these limits. For details see ArduinoPinCurrentLimitations. In general, do not exceed 20 mA per pin. In particular, do NOT directly connect LEDs to Arduino outputs! Always use a series resistor (220 ohms is a good value).


Navigation

Output

Input

User interface

Communication

General


Output

Examples and information for specific output devices and peripherals: How to connect and wire up devices and code to drive them.

See also the pages devoted to the Dallas One-Wire MicroLan, I2C and ethernet. They enable you connect additional output (etc.) devices across networks controlled by the Arduino. The trouble of controlling a network is repaid if you need to connect many outputs (and/ or inputs), or if your actuators / sensors are not close to your Arduino.

Arduino as ISP (In-System Programmer)

Visual

  • Camera Control - Controlling Cameras

  • LED Lights and Displays

    • Single LEDs of one color
      • Blinkenlight experiments Features many different ways to implement knight rider effects, persistence of vision and other amazing stuff.
      • Fade an LED with a knob - An example that lets you twist a knob to control the brightness of an LED.
      • FancyLED: Another simple hardware abstraction library that enables blinking "N" times at custom rates, toggling, has a "fuse" example that allows for blinking to start after some lead time...
      • Knight Rider extensions - an extension to the learning loops example. Several single LEDs used together to create satisfying visual displays.
      • LED: Simple hardware abstraction library. Either use this to simplify(?) working with songle LEDs, or study it as a good example of what you can do by creating a library.
      • I/O LED: Manage an LED as an emitting AND receiving device!
      • SoftTimer is a time sharing solution, what has a built in asynchronous blinker. It can blink LEDs with configured pattern, while does not block other processes.

    • Single LEDs, multi-color
      • Object Oriented RGB LED abstraction layer Simple setup and control of common RGB LEDs. Works with common cathode and common anode devices and with both PWM and non-PWM digital pins.

      • Arduino mood light with a 3W RGB LED.

      • High Power RGB LED Shield drives High Power LEDs from 100mA - 700mA. The shield provides three independent channels and provides 12-bit / channel PWM dimming and Analog dimming. Acceptable input voltages range from 6 – 42V. If more than three channels are required , up to 64 Shields can be stacked to control up to 192 Channels. The shield is controlled through I2C and only requires 2 Arduino pins (SCL, SDA) and GND.

      • HPLEDShield1 A four channels (RGBA) High Power LED driver in a shield. Control up to 28x1Watt LEDs with a single shield.

      • ShiftBrite: a module with three LEDs. (High brightness red, green, blue.) Library for the module. Module uses a simple clocked serial interface to accept a 10-bit brightness value for each LED's color.

      • BiColorLED: a simple library for driving bi-color LEDs, including support for mixing the two colors.

    • Multiplexed single LEDs, each a single color (See also "LED Segmented Displays" sections. Here we have multiplexing done "the hard way", but leaving you with the greatest ctreative control.)

      • Arduino-LED-Matrix-Display A multyplexed 8X11 LED Matrix Display (you can display stuff and scroll text on it, display text in any language

      • Heart Matrix A wearable 7x10 LED Matrix Display with an Arduino Library to easily handle text and animations.

      • 3x3 LED Cube Diecimila Shield (Inexpensive version of a fun idea... 27 LEDs, some resistors, some transistors... and a lot of craftsmanship with your soldering!)

      • TinyBrite: An easy to use software driver for MegaBrite, ShiftBrite and other RGB LEDs (any chip that uses the A6281 LED drivers). TinyBrite is lightweight and simple, and doesn't require SPI so you can use it with ATTiny-based Arduino-compatible devices, like the Digispark.

      • Schematic for driving multiple leds from one Arduino pin.

      • lightuino: Arduino 328 software and shield compatible board drives 70 LEDs through 70 individual channels (i.e. constant drive, not matrix strobing) using the M5451 constant current chip. FOSS source code available at http://code.google.com/p/arduino-m5451-current-driver/. Also contains instruction on how to wire up the M5451 chip to Arduino yourself. Buy

      • Direct driving of an 8x8 LED matrix with no ICs or other components involved.

      • TLC5940 - constant-current LED driver with 16 channels of 12 bit PWM output. Chips can be daisy-chained for >16 PWM channels. Library code and examples available.

      • TLC5940 Library for Arduino Due - This library doesn't have as many features as Alex Leone's above, but it works with the Arduino Due.

      • LED Matrix Multi-Displays - Controlling multiple 32x8 LED matrix display boards with simple printf like functions. Supporting accented fonts, Left, Center, Right justification, Blinking, Intensity control. Can combine multiple displays boards into single text line (up to 8 display boards, 256x8) or separate them into multiline.

    • Multiplexed single LEDs, each multi-color (See also "LED Segmented Displays" sections. Here we have multiplexing done "the hard way", but leaving you with the greatest ctreative control.)
    • Using the Sparkfun DS1307 Real Time Clock to tell time with your arduino - http://bildr.org/2011/03/ds1307-arduino/

    • Seven segment displays (See also the "LED Multiplexing" sections. Here we have displays supplied with character generating control circuitry, minimizing the work you have to do.)
      • SevenSeg Highly flexible library for using Arduino to drive a seven segment display directly at the output pins of an Arduino or through transistors. Key words: Arbitrary number of digits, decimal points, colon, apostrophe, common anode, common cathode, brightness control (adjustable duty cycle), display text, use interrupt timers.
      • SevenSegmentLibrary Allows you to use an arduino as a 4-digit seven segment display controller. Works with any pin configuration as well as common cathode and common anode seven segment displays.
      • Seg7 library for control of 7 segment displays
      • Multiplex7Seg is a small Arduino library allowing you to multiplex 1, 2, 3 or 4 digits using any one of the pins on your Arduino, that's a 9999 digit display. You also have the ability to enable zero leading blanking for low power requirements. Mail me at bester.juan@gmail.com for additional help on using the library.
      • 7SegCounterMultiplexer is a simple example that demonstrates multiplexing a 7 segment LED display using a 74HC595 shift register. Only a single segment of the display is on at any one time, but they are illuminated in sequence so quickly that the digit is displayed properly to human eyes. This approach prevents you drawing too much power from the shift register, and means you don't need to use any special driver ICs.
      • MAX7219, a fork off the LedControl library which uses hardware SPI and adds some syntax sugar to the process of controlling many displays.
      • MAX7221float is a Arduino library for the MAX7219 and the MAX7221. Library MAX7221spi is for the SPI-interface, and MAX7221shift for any pin. The library has automatic display of floating point numbers and can put the sensor in low power mode.
      • 4 Character 7-segement Display $13+ P&P (8/10). Control with one Arduino digital pin and NewSoftSerial, or SPI.
      • Direct Drive 88:88 4 digit 7 segment display using same method as 8x8 matrix.
      • hc4led - A cheap 4-digit seven segment LED display with SPI. No decimals, though. Sample code here: Hc4led. And here's an easy-to-use Arduino/Wiring library for controlling these displays. The Reaction Time Tester project uses the HC4LED library.
      • TM1637 based display module - Very low cost, 4x7-segment display modules, based on the TM1637 chip.

    • Multi-segment displays- more than 7 LED segments per character (See also "LED Multiplexing" sections. Here we have displays supplied with character generating control circuitry, control circuitry, minimizing the work you have to do.)
      • Controlling an Alphanumeric LED Display - Library on Blogspot
      • Twitter LED Scroller - Twitter API to PHP to Processing to Arduino to 74HC595 to scrolling LED matrix (complete with cool resin case).
      • Sure-Electronics 2416 Display 24x16 LED display. Matrix Display Library (supports multiple displays)
      • 8 x 8 LED grid: Send commands to the display via SPI. the 64 LEDs then remain as you want them until new commands sent.
      • Matrix LED backpack - Code for running the Sparkfun RGB 8x8 matrix LED backpack. Controlled via SPI.
      • Rainbowduino: An Arduino-compatible board that can drive an 8x8 RGB matrix, or 192 discrete LEDs.
      • Colorduino: An interface library for ITead Studio's Colorduino and Arduino RGB LED Matrix driver shield.
      • LedDisplay: Library for HP/Agilent/Avago HCMS-29xx LED dot matrix character displays.
      • Parola for Arduino is a modular scrolling text display using MAX7219/21 LED matrix display controllers. The display is made up of any number of identical modules that are plugged together to create a wider/longer display. The aim was to create a 'lego-like' approach to LED matrix display, using standard 8x8 LED matrices with support from a dedicated library for text scrolling special effects:
        • Left, right or center justification in the display
        • Scrolling, appearance and disappearance effects
        • Control display parameters and animation speed
        • Support for fast hardware SPI interface.

    • Monome 64 clones... 8x8 matrix of LED illuminated switches, turned into a musical/ lightshow instrument with hardware and software.
      • THE Octinct - Arduino based RGB Monome 64 clone.
      • bonome - Arduino based RGB Monome 64 clone with sparkfun button pads.
      • 4 by 4 RGB monome clone - controlling an RGB led / button matrix using the TLC5940.

    • Things that don't (?) fit any of the above categories, or fit in several of them.

  • LCDs

  • Lighting Control

  • OLED
    • Some code samples to control output to a small surface-mount OLED with basic hardware-level graphics functions
    • SMARTGPU Create advanced color touchscreen GUIs very easy with Arduino + SMARTGPU.
    • uOLED Library for the 4D Systems OLED displays. This is a serial communication with the display.
    • U8glib: Monochrome OLEDs with SSD1325, SSD1327, SSD1306, SH1106 or LD7032 controller.
    • Ucglib: True color OLEDs with SSD1351 controller.
    • The Serial_LCD library suite handles the µLCD, µOLED and µVGA screens from 4D Systems. It manages text, graphics, touch, read and write on SD-card, sound, through a single serial interface, either hardware, software or I2C. High-level commands offer GUI, graphics and even a picture frame!

  • Video Output
    • MicroVGA Library for MicroVGA-TEXT devices, allowing Arduino to display on a VGA (LCD/CRT) monitor or a television and read keystrokes from a PS/2 keyboard.
    • TVout Library for NTSC and PAL composite video output. Video output runs in the background via timers, allowing the sketch to concentrate doing its thing.
    • SID-emulator The shield contains an emulator of the audio chip in a Commodore 64. The systems allows you to create original 8-bit video and sounds programmed and controlled via the Arduino board.
    • Bitmap picture display on a graphics shield
    • SMARTGPU Create advanced color touchscreen applications with bitmap pictures.
    • Picaso Library for interfacing with 4D Picaso devices (including the 4D uVGA Picaso MD1)
    • Gameduino Library for the Gameduino, VGA display for video games
    • HDMI Shield Raspberry Pi as a "HDMI shield" for Arduino

  • VFDs Vacuum fluorescent display modules are often used in the same applications where LCD modules are used. VFDs are typically brighter, have more contrast and a greater view angle than LCDs.
    • Ncr4X20Vfd Library, examples and information for driving the NCR 7454 / Futaba M204SD01B VFD module.
    • PrimeVfd Library, examples and information for driving the Futaba NA202MD13AA VFD module.
    • IeeFlip & IeeFlipNoFrills Libraries, examples and information for driving IEE Flip VFD modules.
    • FutabaUsVfd Library, examples and information for driving Futaba US162SD03CB VFD modules and perhaps other Futaba VFD models.
    • M66004Vfd Library, examples and information for driving VFD's using the Mitsubishi/Renesas M66004 VFD controller IC. This includes the display/control panel used in many HP LaserJet printers such as the LaserJet 4.
    • HpDecVfd Library, examples and information for using VFD modules originally intended for the discontinued HP z500 Series Digital Entertainment Center media PCs.
    • SPI_VFD A library for driving modules that support the standard HD44780 command set but use SPI (clocked serial) instead of parallel communication. This library was created to drive the uPD16314 controller, commonly used on Samsung VFD modules.
    • Noritake VFD How to interface Noritake CU-Y series VFD modules to Arduino

  • IR Remote Output

Audio Output

  • Audio playback from SD card
    • SimpleSDAudio library: Play audio files with your Arduino in decent quality from SD card, only very few additional hardware required, easy to use library.

  • µC Hobby Arduino Sound Tutorial
    • Part 1: various strategies to generating sound.
    • Part 2: "hello world", simple tone generation.
    • Part 3: playing a melody.

  • Tone Generation Libraries
    • Arduino Tone Library: A library that can be used to generate tones in the background using timers while your Arduino does other things.
    • toneAC - Advantages over the tone library: Twice as loud, higher quality, much higher frequencies, much smaller compiled code size, volume control, uses timer 1 and less stress on speakers.
    • toneAC2 - Alternate version of toneAC that allows for flexible pin assignment and uses timer 2 instead of timer 1.
    • NewTone - Plug-in replacement for the tone library. Advantages: Uses timer 1, higher quality and exclusive use of port registers which results in faster and smaller code.
    • SoftTimer is a time sharing solution, what has a built in asynchronous TonePlayer. It uses the Arduino's 'tone()' function, but does not block other processes while playing music.

  • Realtime audio processing
    • realtime audio: digitizing sound and audio effects.
    • MicroLS: a simple light show which implements advanced data acquisition and DSP functions.

  • '''Zvonek: Jak si udelat vlastní zvonek.

  • Synthesizers and sound generation

  • Speech/ Voice Synthesis

    • Using the SpeakJet How to connect to and program the SpeakJet- a $26 (8/10) phoneme based processor. One data line from Arduino. Sound effects as well as speech, and DTMF codes.

    • Babblebot | Babblebot Easy to use voice and waveform synthesizer ( SpeakJet variant ). Serial interface with support shield for Arduino.

    • SpeakJet OO library for driving SpeakJet chip. Supports standard+custom dictionaries, speaks integers, words, phrases etc.

  • MIDI

  • Audio Device and Module Control

    • Control an iPod with the Arduino, by Jonas Olson & Robert White.
    • Connect Arduino to the YAMPP III Industrial MP3 player, diagrams by Jens Wunderling.
    • Some code for controlling an Ipod remote through Processing, by Rosie Daniel.
    • VMUSIC Mp3 Module
    • Mediaplayer for Adafruit's Waveshield
    • Si4735 library for controlling a radio chip from SiLabs (also available as a SparkFun shield).
    • Nuvoton ISD1700 library for low-cost, solid-state audio storage and playback

  • PSG - Programable Sound Generators

    • SID-emulator The shield contains an emulator of the audio chip in a Commodore 64. The systems allows you to create original 8-bit sounds programmed and controlled via the Arduino board. You can play your sounds over the MIDI-Interface.
    • Vintage Gameboy and SNES -like sound using Yamaha chips (YM294, YM2149)
    • AY38910 This is a small project that tries to control the Yamaha AY-3-8910 with an Arduino, to generate sounds. The AY-3-8910 is a popular chip used in chiptunes and found on Atari 2600, Spectrum, Amstrad CPC and many retro game consoles.

  • Gakken SX-150

  • Morse code I/O

    • Phi_Morse library plays Morse code on a speaker and recognizes keyed in Morse code. You can call the library with a string and the function morse_out() plays the string on speaker. If you call morse_in() you can key in Morse code and the returned value is keyed in character.

    • Morse EnDecoder - Raron's duplex Morse Machine. Send or receive Morse... as fast as 300wpm Arduino- to- Arduino, if you set up two of his "Endecoders". Entertaining video demonstration, full souce code. Input via momentary switch, microphone or keyboard via serial monitor, output via piezo or serial monitor. One Arduino can be sending and receiving at, in human terms, the same time. If you are delivering the input via keyboard, you just type a phrase, and when you press "enter", the phrase emerges in Morse.

Physical/Mechanical

Electrical / High Power

  • Relays
  • Relays tutorial: Back to stone age... elegantly
  • MicroHTR: A simple heating system using a PID controller
  • Rainmaker irrigation controller. You can control up to five zone of watering, can be programmed for each day of the week. -> link not valid in May 2012.

  • Voltage Boosters
    • A simple regulated DC-DC booster for up to 60V 1/4W. It uses no special ICs, just basic components and two pins from the Arduino.

  • Spark Plugs

Multiplexing Outputs

USB

The UNO and Mega2560 use an ATMega8u2 or ATMega16u2 to provide the USB interface to the Host PC and it is programmed with USB to serial firmware. The firmware on the ATMega8u2/16u2 can be replaced to turn the UNO or Mega2560 into a different USB device such as a Keyboard, Mouse, or MIDI device. This section has links to different USB firmware resources.

The coming Arduino Leonardo has USB support built into the the processor, removing the need for the FTDI or the ATMega8u2/ATMega16u2 to communicate with a host pc and the Arduino 1.0 IDE has partial support (written 22/2/12) for keyboard and mouse interfaces.

The Micro has USB support as a Keyboard and or Mouse. This can be used to play the Les Paul and Robert Moog Google Doodles as an example. To use more USB HID functions like Gamepad or Media keys see HID project above.


Input

Examples and information on specific input devices and peripherals: How to connect and wire up devices and code to get data from them.

See also the pages devoted to the Dallas One-Wire MicroLan, I2C and ethernet. They enable you connect additional input (etc.) devices across networks controlled by the Arduino. The trouble of controlling a network is repaid if you need to connect many inputs (and/ or outputs), or if your actuators / sensors are not close to your Aruduino.

ADC/DAC

Ardustat: Galvanostat/Potentiostat

  • Ardustat: Schematics and code to build an electrochemical characterization devices using an Arduino. Open source successor to Jonny Galvo. Measures charge held by, e.g., a battery.

Audio Input

Automotive Input

  • Library to communicate with the ELM327 OBD2 reader. Can be used to read both standard OBD metrics and raw CAN data.

Bar Codes

  • You can hook up a bar code scanner (which simulates a keyboard) or a keyboard to the Arduino. See bar code scanner

Capacitive Sensing

Degrees Of Freedom, 6DOF, 9DOF, 10DOF, 11DOF

This section is for multiple sensors combined into a "Degrees Of Freedom" sensor or module. For the individual sensors, see the sections: Accelerometer, Gyro, Magnetometer (compass), Pressure Sensors (air, fluid, baromic), GPS.

Distance Sensing

Environmental

Human Interface

Images

Joysticks / Gamepads

New!! improved adapter with Att pin and lock mechanism called wiikend.

Keyboard/Keypads

(See also section on capacitive sensing for keypads which will, for instance, work through a window pane.)

  • Unified Arduino Input Interface: Library that provide unified interface to all input devices. The interface can sense buttons, rotary encoders, keypads, analog buttons, serial keypads or even smartphone as your arduino input. Make local interface on your project and control it the same on remote interfaces on PC, phones or internet.
  • GKOS Keypad - Enter any text directly into Arduino simply with 6 keys.
  • Keypad - Read a matrix keypad. See Keypad Tutorial.
  • OneWireKeypad - Keypad using just one analog pin
  • PS2Keyboard - A small library that deals with PS/2 based keyboards
  • PS2KeyboardExt - An extension to the above library to support more keys and functions
  • PS2KeyboardExt2 - another extension, fast with shift, alt and caps lock and caps_lock light
  • PS2C - A final version of the PS2Keyboard library that gives complete functionality of a ps2 keyboard
  • PS2tester: Arduino sketch to communicate with PS/2 devices (e.g. keyboard). Useful for testing/debugging custom PS/2 devices, for example.
  • I2C Port expander and Keypads - A small library for use keypads with I2C port expander PCF8574
  • I2C Port expander and Decoders - A library that uses a 74C922 keypad decoder on an I2C port expander
  • See also the entry in the communications section, wireless, IR subsection, about using a domestic (e.g.TV) remote to send "keystrokes".

Light sensors... visible, IR, etc. Levels, not images

For communication with infrared, see the IR Remote section.

Location (navigation)

See also the Magnetometer (compass) section for compass sensors.

  • GPS
    See also the Degrees Of Freedom, 6DOF, 9DOF, 10DOF, 11DOF section for a GPS module combined with an accelerometer, gyro, etc.
    • Sample configuration code for GPSBee modules using the U-Blox chipset. Includes setting baud rate, update rate, NMEA message disabling and more!.
    • Sample configuration using ITEAD GPS Shield with Arduino Uno and LCD display,
    • Sample configuration using ITEAD GPS Location Sensing with the Arduino Mega,
    • Arduino code for parsing data from the EM-406 GPS module, by bigengineer.
    • How to connect a Parallax GPS module to the Arduino, and read its $GPRMC string. Tutorial translated from Igor González Martín's original Spanish tutorial. This allows you to get date, heading, latitude and longitude from the GPS module.
    • GPS library for Arduino/Wiring by Maarten Lamers is a library for decoding (NMEA) data from any GPS receiver. It extracts all information types, such as speed, direction, location. Supports $GPRMC and all possible sentence types. Includes example programs and routines for calculating distances and directions over Earth's surface. NOTE: this library does not work on 1K Arduinos: Duemilanova, etc.
    • TinyGPS, a new GPS/NMEA parser by Mikal Hart is a resource stingy library for decoding (NMEA) data from any GPS receiver. It extracts speed, direction, location, course, date, and time, but consumes only about 100 bytes of RAM.
    • Arduino-NMEA, Yet another GPS/NMEA library, this one provides an object oriented interface.
    • Acoustic.GPS A GPS homebrew "GPS" system that uses sound to determine distance to three known points using off the shelf components.

    • GPS Position Radio Mesh library for Arduino GPSNet is an Arduino library and example sketch that provides a radio broadcast mesh network among a number of GPS+RFM22 radio equipped nodes, such that all nodes in the network know the GPS position of all other nodes. Includes a sample PC program to display all node positions on a Google map.

Magnetic

Mechanical

  • Switches and Buttons
    • Unified Arduino Input Interface: Library that provide unified interface to all input devices. The interface can sense buttons, rotary encoders, keypads, analog buttons, serial keypads or even smartphone as your arduino input. Make local interface on your project and control it the same on remote interfaces on PC, phones or internet.
    • Debounce: a library to debounce switches.
    • SoftwareDebounce: a simple software input debounce algorithm.
    • ClickButton - A library to get button clicks. Short and "long" clicks, multiple clicks like double click, triple click etc. Also button holds. Active high or low buttons, software debounced.
    • SoftTimer is a time sharing solution, what has a built in asynchronous software debounder. Has an onPressed, onReleased callbackwith the time it is being pressed.
    • Buttons: a simple library to use hardware debounced buttons, handling one shot and hold.
    • HoldButton: a code that makes a single button able to call different functions depending upon how long it it is held.
    • Button: simple hardware abstraction library
    • Improved Button Improved button library
    • Button (carlynorama) Another button abstraction library. Event based, also allows for being used with shift registers, debounce, holdDelay (like keyboards) etc.
    • AnalogButtons: a library to connect more than 1 switch to a single Analgue pin, using different voltage dividing resisters for each switch. Provides register callback functions or over-riding Button class methods to communicate a button press action. Supports configurable holding down of a Button.
    • AdvButton: Advanced, yet simple to use, library for registering user input with buttons. Provides an event based interface.
    • M66004Vfd: Library includes support for the buttons on the VFD display/control panel salvaged from certain HP LaserJet printers such as the LaserJet 4.
    • HpLaserJetLcd: Library includes support for the buttons on the LCD display/control panel salvaged from certain HP LaserJet printers.

  • Encoders

  • Potentiometers

  • Telephony
    • Rotary Dial: reading pulse-dialed digits from a rotary telephone dial

  • MIDI

Mice

Motion

See also the Magnetometer (compass) section for magnetometer sensors.

Multiplexing Inputs

Signal Filtering

Pressure Sensors (air, fluid, baromic)

See also the Degrees Of Freedom, 6DOF, 9DOF, 10DOF, 11DOF section for a (baromic) pressure sensor combined with an accelerometer, gyro, etc..

RFID devices for input

  • Mifare MFRC522

  • SonMicro's SM130

  • RFID - Sparkfun/ Innovations
    Sparkfun offer several RFID readers suitable for Arduinos. There are useful discussions on the use of them in the Sparkfun pages, and in the forum.

  • RFID - Parallax

  • RFID - General points and other readers
    • RFID door lock Using the SL018 low-cost I2C reader
    • At 1/2011, a useful discussion was unfolding in the forum on how to connect a Wavetrend active reader capable of reading cards at distances in excess of 2m.
    • The USB Phidgets RFID reader you may encounter for sale on eBay is not suitable for Arduino work, as to use it you need a proprietary .DDL

  • DIY RFID reader - using the Arduino plus simple home-wound coil to read FSK tags
    • FSK RFID tags are widely used, yet are unsupported by the popular Parallax kit. A simple solution based on using only the Arduino and a few low cost common components can read FSK RFID tags reliably (and potentially all other 125kHz tags).
  • RDM630 library for reading EM4100-compatible tags with the RDM630-reader.
  • Parsing Manchester code from EM4100 tags
    Library for parsing manchester or biphase encoded data from EM4100 compatible tags. Requires external hardware for RF demodulation.

Post in forum

Slotted Detectors/ Proximity Sensors

See also other references to "proximity" elsewhere on page, including the material in distance sensing. There may be discussion of these devices in the "encoders" section, for intstance. Set up xrefs? SEe, for instance, the material here in "IR Reflectance/Line Sensors" under "Light sensors"

  • Someone please do a write up of the useful slotted and reflective detectors which DO exist, and can be plugged into Arduinos!

Tagging / Labeling

This section a legacy, see the sections RFID and Barcodes

Time

  • Time library for dates and times that can be used with and without external hardware
  • DCF77

  • DS1302
    • DS1302 Information and a basic sketch for the DS1302.
    • DS1302RTC library, companion the Time library.
    • DS1302 RTC (23-wire interface with supercap backup) library
  • DS1306
  • DS1307
  • Use the CMax CMMR-6P WWVB Receiver with Arduino
  • Sleep and Watchdog functions for battery operated equipment Nightingale example
  • Interface to IBM AT RTC bq3287 and compatable with 8bit bi-directional bus code and description
  • Interface to a Maxim-IC DS3231 I2C chip
  • Guide for beginners to using the DS1302 RTC in the nuelectronics.com datalogging shield. Could help other users of the DS1302 also.
  • Library for the DS1340Z RTC with sample sketch to read and write time code. (Low voltage operation supported). For more information please check out the DS1340Z Inmojo Arduino Shield product page.
  • PCF8563 RTC Library with examples.
  • MicroCLK: A stand alone RTC controlled clock with LCD display

  • DS3234
    • The libary creates software interface to communicate with DS3234 RTC.
    • It allows for using any pins as MOSI, MISO, CLK and SS, for communication with the DS3234, thus conflicts with SD and Ethernet libraries are no longer a problem.
    • The libary is based on the example offered by Sparkfun.
    • Library offers reading date and time, setting it, and also as a bonus it allows to read the temperature.

  • PCF8563
  • R4571 (ETM21E-02)
    • R4571 Epson Toyocom R4571 RTC Library and documentation

Touch screen

Voltage, Current, Power (kiloWatt hours)

  • DC

  • Current sensing

  • 120V/240V AC
    • Monitor the power grid - A Blinkenlight experiment to monitor the power grid's frequency deviations / load.
    • How to build an energy monitor / power meter that can measure whole house energy use, using a current transformer to measure current and AC-AC power adapter to measure voltage plus a few resistors and capacitors. Calculates Real Power, Apparent Power, Power Factor, RMS Voltage, RMS Current, frequency and kwh.
    • 12 Input pulse counter
    • AC Phase Control Method for controlling power to AC devices using hardware timers, a triac and a zero crossing detector.

  • KWh Monitoring

  • Energy meter readout
    • Energy consumption monitor project reading out precise solar production and public grid consumption values from recent electrical power meters via serial infrared port and blinking LED, and generating pulses to feed the S0 port of an attached Solarlog 500 recording device with the current home consumption (in german).
    • Electric monitor Simple electric meter for measuring power production/consumption with resettable volt/ampere/kwh/time/temperature counters and a multi-mode LCD interface


User Interface

Graphical or text - based user interface (UI) or human machine interface (HMI) on Arduino: How to ask a user to input information (number, choose from a list, enter text, etc.) on an Arduino using display (LCD, LED matrix etc.) and buttons, keypads or other devices.

Also see Via Mobile Phone for a simple mobile based user interface - No Android programming required and very little Arduino programming.

Text-based user interface

  • Unified Arduino Input Interface: Library that provide unified interface to all input devices. The interface can sense buttons, rotary encoders, keypads, analog buttons, serial keypads or even smartphone as your arduino input. Make local interface on your project and control it the same on remote interfaces on PC, phones or internet.
  • Phi_prompt user interface Library Interactive user interface for your projects. Library functions use an HD44780 character display and one to six push buttons. You can use the library to construct a user interface to ask your user to enter numbers, select from a list, navigate a menu (multi-level), enter text strings, display multi-line and multi-page long texts from main memory and PROGMEM, ideal for introductions and outputting multi-line results. You can also call simple functions such as ok_dialog and yn_dialog to ask user for information. Lists/menus have lots of features, scroll bar, auto-scroll long list items like on an MP3 player, centering on item, flashing cursor or arrow to highlight item, current/total index or 0-9 index etc.
  • MenuSample - an interactive terminal-based menu interface for your projects. Allows multi-level menus, uses PROGMEM space, and lets you control your Arduino interactively. http://sourceforge.net/projects/arduinowifly/files/MenuSample/
  • M2tklib (LiquidCrystal Library): 2-6 buttons or custom defined, debounce, menues and dialog definitions in PROGMEM area, text & number input, toggle/check/combo box, container widgets, scrollbar, online reference and tutorials
  • MENWIZ - MENu WIZard: Simple coding, user defined callbacks and actions. The user can define a splash screen to be activated at startup, a user default screen to be activated after x secs from last menu interaction. The user can easily fire action inside a menu hierarchy. Any sketch variable (integer, byte, boolean, float) can take input from the menu. Menu navigation needs 4 or 6 buttons (up to the user), or the user can provide its own callback routine for custom nav devices. It is built on top of "new" LiquidCrystal library (i2c, 4 wires, 8 wires and other interfaces are supported) and is able to support different lcd sizes (16x2, 20x4, ...).
  • LCD Menu Easy to use Menu-drive user interface. Primarily intended for 16x2 to 24x4 style character displays. This library uses Liquid Crystal to control the LCD, and adds a menuing layer on top so that you can define your menus easily, and receive callbacks from the menu code to execute your code. You can also use some of the built-in code for taking input for Boolean or integer inputs. The primary focus of this library is on an easy-to-use interface for defining your user interface and getting input back.

Graphical user interface

  • Monochromatic dot-matrix display implementations
    • M2tklib (GLCD, U8glib or DOGM128 Library): 2-6 buttons or custom defined, debounce, menues and dialog definitions in PROGMEM area, text & number input, toggle/check/combo box, container widgets, scrollbar, online reference and tutorials
  • Color dot-matrix display implementations

Command line user interface with some graphic features

  • Here's an implementation of a quite basic OS that enables editing and executing small apps on an UNO with a TFT-touch-shield:

http://playground.arduino.cc//Main/4aos

Hardware independent layers

  • Multi-tap input This code accepts any type of keypads such as standard arduino keypads library result and interprets it with a pre-defined multi-tap mapping. It has cap key and space key for 12 key pad and more functions for 16 key pad. The instructions are embedded as comments in the front of the code.

Storage

Various options for storing data from your Arduino board.

Built-In EEPROM / Built-In Flash

  • The EEPROM library give you access to 512 bytes of non-volatile memory (that is, it retains its value when you turn the board off).
  • Mikal Hart's Flash library allows you to easily store strings, arrays, and tables in read-only memory without the hassle and complexity of learning PROGMEM programming.
  • The EEPROMex library extends the standard EEPROM library with: Reading, writing bytes, longs, ints, floats and doubles, single bits, structs, arrays and more.
  • Bitlash lets you define and store new Bitlash functions in EEPROM.
  • EEProm wear leveling - A Blinkenlight experiment that explains EEProm wear leveling.
  • Arduino EEProm wear leveling - A basic library to manage variables with wear leveling.

Dallas 1-Wire

  • There are EEPROMs in the 1-Wire chip family from Dallas Semiconductor. They can connect to the Arduino via a MicroLan, or more directly. The techniques for using MicroLans from an Arduino have already been developed. (And give you access to input and output options, too.)

DataFlash Memory

I2C EEPROM

SD / MMC Card

SIMM RAM

Spi RAM

Ferroelectric RAM (FRAM)

  • Hackscribble Ferro - Library to interface with Fujitsu MB85RS FRAM chips. Add up to 256KB per chip of fast, non-volatile memory through SPI bus.

USB Memory Stick

Smartcards

  • Directly connect SLE4432 / SLE4442 and compatible smartcards to the Arduino via SCLib.


Communication

Information on communication protocols often used to talk with other devices. Please refer to Interfacing with Software for information on linking with various PC based applications. This listing may contain cross-listings with device type listings above.

Overview

  • Guide to Arduino Communications provides an overview of various communication protocols available on the Arduino. Covers SPI, I2C/TWI, USI, UART/USART, USB and others. Good introduction to the various types of communications available.

Serial

SPI

SPI/USI

PWM

uM-FPU V3.1 Floating Point Coprocessor

  • Fpu library for using the uM-FPU V3.1 Floating Point Coprocessor.

uM-FPU64 Floating Point Coprocessor

  • Fpu64 library for using the uM-FPU64 64-bit Floating Point Coprocessor.

2B

  • 2B is a simple protocol used to receive and send messages to Arduino

PS2

GSM/GPRS M2M modules

Phones

HDMI-CEC

  • HDMI CEC Library communication with HDMI CEC capable devices (TV, DVD, Receivers, BR) : power on/power off/input selector.

Ethernet

  • Nimbits - an open source data historian service for Google App Engine shows how to record Temperature data into a Data Point Channel directly from an Ethernet Shield onto Google's infrastructure. Nimbits - free, social and open source data services

  • Australian Robotics blogger explains how to use Web Services (Pachube.com) to upload XML temperature data from Arduino Ethernet Shield and the Thermistor : Web Data Logging With Pachube

  • GumboLabs write-up on how to get the best out of the Ethernet shield. Also explains connecting to a Rails app. Arduino Ethernet Shield and Rails.

  • The "official" Arduino Ethernet Shield uses the w5100 chip from WizNet.

  • Arduino Ethernet Library by gkaindl enabling DHCP, DNS and Bonjour on Arduino

  • ArduServer.com A "getting started" guide. Shows how you can set up an Arduino to serve a web page with two buttons: LEDon, LEDoff. Click a button, and an LED on the Arduino serving the page goes on or off... and shines (or not!) on a light sensor. What the light sensor is seeing reported on the page the Arduino serves. Issues of static vs dynamic IP address covered. DynDns.org solution. Router and firewall issues covered. Full code presented. Done on RBBB ($15), but information needed to move to other presented. Parts of essay depend on fact that a NuElectronics Ethernet shield ($25), an ENC28J60 device, used... but most of tutorial is about issues that would arise if you were using a W5100 chip. How to pass the data from the light sensor to Pachube is addressed, by reference to other materials. When buying an Ethernet interface, if you don't have a ready source of 3.3v, watch out for whether your shield can create it from the system's 5v, if you are on a 5v system. (The NuElectonics shield can, many can't.)

  • ArduServer2 The full code for something similar to the first ArduServer (see above) is tacked on at the bottom of the page the link will bring you to. This version of the Arduserver runs in an Arduino Uno with an "official" Arduino Ethernet shield... one with a W5100 chip. This version includes a Dallas DS18B20 1-Wire digital temperature sensor on the ArduServer, and the temperature is included in the web page served up.

  • ArduSimpSrv Arduino as server, client software provided for Windows PC. Without HTML- makes room in Arduino for other things, but means dedicated client software needed. A Linux version would be very welcome.

  • Here is a blog describing how to connect to an internet chat server using the Arduino and a Lantronix ethernet module.

  • Nuelectronics has developed an Ethernet shield for the Arduino with schematic, open-source ethershield library and webserver demo using Microchip's ENC28J60 SPI ethernet controller. The open-source TCP/IP stack is in the Arduino library format, easy to use and available for downloading.

  • Ethernet Board is a simple Paper-PCB board based on the ENC28J60. It's easy to create and one doesn't need a printed circuit board.

  • Ethernet_ENC28J60 Álvaro Justen is working on a library what is compatible with ENC28J60 modules/shields and have the same API as Arduino's standard Ethernet library, so it is more easy to use than other libraries (as nuelectronics').

  • UIPEthernet (Arduino_uIP): A plugin-replacement of the stock Arduino Ethernet library for ENC28J60 shields and breakout boards. Full support for persistent (streaming) TCP-connections and UDP (Client and Server each), ARP, ICMP, DHCP and DNS. Build around Adam Dunkels uIP Stack. This library is fully implemented and working!

  • Adafruit XPort/Ethernet shield - How to connect a Lantronix XPort to an Arduino, includes schematic & library. Examples of reading POP email, webserver, sending & receiving twitters...

  • Beginners' guide to tweeting with Arduino and Ethernet shield.

  • a Web Server example, made using an Ethernet Shield.

  • the Webduino library, a modular web server for the Arduino Ethernet Shield and AdaFruit shield using the Wiznet module that can be integrated into your sketches. It comes with several examples.

  • TinyWebServer, a small web server for the new Arduino Ethernet shield with microSD. It allows your web server files to be stored on a microSD card, giving your Arduino more memory for your program. You can even update the files directly over HTTP, making it easier to change your HTML interface after the project is finished.

  • RADIUS Client, Classes for creating, sending and receiving RADIUS requests as per RFC 2187 and 2188. For ArduinoMega and Ethernet shield.

  • MQTT Client, provides a client for doing simple publish/subscribe messaging with a server that supports MQTT v3. For the Arduino Ethernet Shield. For more information about MQTT, visit http://mqtt.org.

  • TextFinder library for extracting information (parsing) using Ethernet or Serial data

  • The Bitlash 2.0 release includes BitChi, a web and telnet server that serves dynamic content with Bitlash as the scripting language.

  • Jee Labs' EtherCard is a library for ENC28J60 that is in active development, and solves a lot of the instability problems in other implementations.

  • PachubeLibrary encapsulates the communication with the Pachube server. It simplifies the work to connect the Arduino based device into the Internet of Things.

  • homecontrol4me A Home Automation Project - Control your Wireless Switched Outlets over Ethernet with your Computer or Smartphone (currently German language only).

  • eSmtpSender Send Email via SMTP , detect and manage authentification error.

WiFi

See also the "wire-less" section for other communications channels without wires, e.g. IR.

  • WifiDuino: Quick, simple and cheap Arduino Gui compatible board with build in Wifi Router module. Communication is done via Serial.print() and Serial.read(). http://www.wifiduino.nl

  • La Fonera routers have got a serial ttl interface that you can easily use with Arduino.

  • The small router TP-LINK TL-WR703N could be a cheap way for connect arduino with ethernet/wifi(maybe bluetooth). You can buy this device in some shop at only 21 €, including carrier cost. You must install OpenWRT on the device with some other package and connect with ARduino via usb port. After this you can comunicate with arduino, load new sketches in .hex format,use pendrive and other things.

  • AsyncLabs has the WiShield (Out of Business as of 2011-03-26, shields may still be available) which uses ZeroG Wireless's ZG2100 WiFi device. It comes with a WiShield library which includes the driver source code, a TCP/IP stack and a bunch of sample sketches demonstrating the use of the Arduino as a web server and a web client. More information about using the sketches can be found on the AsyncLabs wiki page.
  • Weburban has a low cost WiFi breakout board which uses a Microchip 80211b/g/n device and connects via a simple, labeled header. It's compatible with WiShield and other Arduino WiFi libraries.
  • SparkFun has the WiFly Shield. It is fairly new but does have 802.11 b/g. They use the SC16IS750 to communicate via SPI to Uart for much faster speeds. Documentation is there for the actual WiFly GSX module and the SC16IS750 but the only real code is from a SparkFun project called the Talking Wireless Server Tutorial. (Actually there's also a mostly-Ethernet library compatible WiFly library.)

  • SparkFun also has WiFly Breakout Boards which use just 4 connections (RX, TX, VBATT, GND) for a full wifi connection through Roving Networks RN-series wifi chips, including RN-131. RN-171 and RN-XV.
    A serial WiFly driver library and Client-Server classes are available through http://arduinology.blogspot.com and http://sourceforge.net/projects/arduinowifly/files/.

  • Watterott makes the RedFly-Shield with WiFi module from Redpine Signals. A library is available at http://www.watterott.net/projects/redfly-shield

  • Roving Networks makes the low-cost WiFly RN-XV module, which plugs into an XBee socket and provides WiFi access via the serial port. 802.11b/g with WEP and WPA/WPA2 support. Supports one UDP or TCP connection at a time.
Sparkfun has the module available here: WiFly RN-XV Wire Antenna.
A 0.3 library is available here: github/WiFlyHQ.

  • FioV3+Wifly+128bit security -- A simple way to control Arduino devices from Android Mobile via wifi/internet with 128bit security against hackers taking control.

Flash / Flex

DMX

  • DMX (Digital MultipleXed) is a protocol used for connecting lighting controllers, dimmers, scrollers, scanners, etc..

CAN-Bus

I2C / TWI

Dallas One-Wire / MicroLan

MIDI


MIDI Library - Simple and fast way to send and receive MIDI messages with the Arduino.

MIDI-out (sending midi data to another device)

  • Bongo-Boy Connect Wii Guitar Hero World Tour drum set to MIDI piano with no modification or external hardware. Now you can really unleash your inner rock star.
  • A 52 parts drumset: Yet Another Arduino Midi Drumhead. An invitation to build your own midi drumhead with an Arduino UNO, a mux shield and one infrared sensor optical hihat. 48 velocity sensitive piezos and 4 chokeable cymbals.
  • Ardrumo: software to convert serial data coming from the Arduino into Mac OS X MIDI drum data (i.e. how to get Arduino talking to GarageBand without buying any extra hardware).
  • S2MIDI - Windows (.NET) program for converting serial data from Arduino into MIDI messages (hosted on Google Code)
  • MIDI Relay - Very similar to S2MIDI - copies all note on / note off and controller messages to the default MIDI port.Useful for quick testing of MIDI applications(MIDI Relay)
  • ttymidi - a GPL-licensed program that allows an Arduino board to interface with Linux ALSA MIDI applications without any additional hardware.
  • MidiSerial - another GPL-licensed program for interfacing MIDI over serial. Multi-platform.
  • Make your Arduino into a MIDI drum controller with Todobot's tutorial
  • The Midi Out tutorial from the fine folks at ITP.
  • A blog on building a midi guitar pick using the Arduino.
  • read six sensors and send their values as Midi CC messages
  • Effects Processor Controller via MIDI
  • MIDI Touchpad hardware and software using PS2 Touchpad as a MIDI Device. Real MIDI, not translated by Desktop app.
  • 16 MIDI Drums 10 switched and 6 velocity sensitive drums -> link not valid in May 2012.
  • MIDI Projects -> link not valid in May 2012.
  • USB MIDI firmware for UNO and Mega2560 Turn your UNO into a USB MIDI device.
  • MIDI File Library Read MIDI Standard Files from an SD card and process them in your sketch through callbacks. MIDI data can either be processed by the Arduino or be send to a synthesiser as a live MIDI stream.

MIDI-in (receiving and interpreting midi data with an Arduino)

KNX / EIB

Wireless... including radio-less "wire-less" channels, e.g. IR

See also: the WiFi section and Via Mobile Phone

(This "wireless" section will soon be split off into an independent page, unless someone disagrees by deleting this sentence).

NRF24L01
Visit MySensors
  • Nordic nRF24L01+
    • Build a mesh-enabled radio network between your sensors using the MySensors NRF24L01 Arduino Library. The MySensors website also contains easy-to-follow build instructions and Arduino examples to help you create your own wireless sensors.
    • Interface Arduino to Nordic nRF24L01 and compatible transceivers. Circuit diagrams, documentation and download instructions here.
    • A simple nRF24L01+ library with streaming support: rf24HQ
    • A wireless communication library for using the small, fast and bi-directional Nordic's Nrf2401 radio transceiver.
    • A simple library for the nRF24L01(+).
    • RF24: Another library for driving the nRF24L01. Uses standard SPI library. Supports up to 6 radios at once. Copious examples.

  • Microchip MRF89XA
    • Library for interfacing the MRF89XAM8A modules. Example code can be found here.

  • Inhaos RF-2400
    • Arduino library to work with Inhaos RF-2400 modules. Source code, circuit diagrams, demo, firmware and client application for RF-2410U dongle can be found here.

  • HT12E
    • HT12E is a 12-bit encoder IC suited for remote control applications. The serial stream generated by this IC can be transmitted via RF or infrared to an Arduino running a specific decoding library available at this source. That is, if you want to control an Arduino board using a HT12E-driven remote control, then this is the right place to go!

  • Infrared

  • PCR-1000
    • A icom PCR-1000 controlled by a Arduino- here

  • Radio Signal Strength Sensor
    • This sensor measures radio signals from 50MHz to 3GHz. FM,TV,GSM,WiFi,Bluetooth here.

  • DCF77: DCF77, a local radio time signal Library and sketch

  • RCSwitch
    • Send and receive 315MHz or 433MHz radio signals to operate popular low cost remote control devices like power outlet switches. Handy for most devices with these chipsets: SC5262, HX2262, PT2262, EV1527, RT1527, FP1527 or HS1527. here.

  • Reading PPM from a hobby RC Receiver
    • PulseIn can be used to measure one or two channels
    • ReadReceiver uses standard RC hobby transmitters and receivers to communicate with the arduino. Can read a nearly unlimited number of channels using PinChangeInt and Timer1 libraries.

  • Generating PPM for a hobby RC Transmitter
    • The ArduinoRC project shows how to interface an Arduino Nano/Uno and a spare RF module to make a custom multi-channel programmable RC transmitter.

  • Wixel
    • The Pololu Wixel is a general-purpose programmable module based on the TI CC2511F32 microcontroller that features a 2.4 GHz radio and USB. Open-source, pre-compiled apps like the Wireless Serial App make it easy to add XBee-like wireless functionality to your project, or you can write your own Wixel apps to take advantage of the Wixel's I/O lines and hardware peripherals.
    • The Wixel Shield for Arduino is an easy and affordable way to add wireless functionality to your Arduino or Arduino clone. With the Wixel shield, you get more than just a general-purpose wireless serial link between your Arduino and a remote computer or embedded system: you can also wirelessly program the Arduino using the standard Arduino computer software and wirelessly debug your sketches with the Arduino serial monitor. For more information, see the Wixel Shield User's Guide

  • VirtualWire
    • Interface Arduino to low cost RF wireless modules to provide high performance transmitters, receivers and transceivers for data. Circuit diagrams and documentation here, download here.

  • X10 Wireless
    • Arduino interface to the CM17A "FireCracker". The CM17A is a "serial" dongle that sends RF signals to X10 receivers which in turn send signals down the house wiring to control lights and appliances. Documentation and code here.

  • X10 Receiver
    • Arduino interface to the PSC05/TW523. The Arduino IDE includes the X10 library that lets you transmit. This example shows how to receive X10 commands. Documentation and code here.

  • X10 Send/Receive Library

  • X10 W800RF32A All-Housecode Receiver Library

  • X10 Transmitter

  • X10 Power Line, RF and IR libraries with extended code support
    • A new and improved set of libraries written June 2010 that supports transmitting and receiving X10 power line, RF, IR and serial messages at the same time using a single Duemilanove board. These libraries and the sample code make commercial X10 computer interfaces and RF/IR transceivers redundant. Click here to visit homepage.

  • X10 Power Line with Temperature and status response
    • an extension upon the library from BroHogan to send RCS temperature back to your X10 network Arduino Code.

  • XBee / ZigBee

Via Mobile Phone

See also: the Bluetooth section and Wifi section.

pfodApp -- now with plotting and free menu Designer and code generator

Control via Android mobile using Bluetooth or wifi - NO Android programming required. Your Arduino code completely specifies what controls are displayed on the user's mobile phone. The user can navigate, execute commands by button presses, choose menu items, select items on lists, input text, input numbers and view raw data feeds from your Arduino project. Very flexible and very simple to code.

A free Android menu designer app is available, pfodDesigner, which allows you to interactively design menus on your Android mobile and then generate the Arduino code that will display the menu and handle the button presses, via pfodApp

www.pfod.com.au has example Arduino projects controlled by a Android mobile using pfodApp. The pfodApp is available from the Google Play Market.

Think HTML replacement, but with a much simpler format and much shorter messages designed for ease of coding in a micro processor. The pfodApp functions as micro-browser and the pfodDevice is the micro-server. A single pfodApp can control multiple devices (one at a time)

Wifi/Internet connections via pfodApp support 128bit security to protect against hackers taking control of your device.

Annikken Andee

Easily connect smartphones to the physical world!

The Annikken Andee allows you to easily monitor and control electrical devices and gadgets wirelessly via Bluetooth.

Just code the user interface in Arduino! No Android programming needed!

We've simplified the entire process with our special hardware and resource library so that even a beginner can easily learn and master the basics in less than an hour to create amazing things!

How does Annikken Andee work?

Step 1: Wire your connections! Plug the Annikken Andee into Arduino, and connect the electrical components that you want to control.

Step 2: Code in Arduino! Need a button, a display box, or a slider control? No problem! Just add a few lines of code into Arduino and you're done!

Step 3: Connect your smartphone and you're done! You're now ready to have some fun with your smartphone!

For more information, please visit http://www.annikken.com/

General

Arduino-related stuff that doesn't quite fit anywhere else.

Share