This repository has been archived on 2019-12-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
<p>Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch, select it from <strong>Sketch > Import Library</strong>.
</li><li><aclass='wikilink'href='SoftwareSerial.html'>SoftwareSerial</a> - for serial communication on any digital pins
</li><li><aclass='wikilink'href='Stepper.html'>Stepper</a> - for controlling stepper motors
</li><li><aclass='wikilink'href='Wire.html'>Wire</a> - Two Wire Interface (<spanclass='wikiword'>TWI/I2C</span>) for sending and receiving data over a net of devices or sensors.
</li></ul><pclass='vspace'></p><p>These libraries are compatible Wiring versions, and the links below point to the (excellent) Wiring documentation.
</p>
<pclass='vspace'></p><ul><li><aclass='urllink'href='http://wiring.org.co/reference/libraries/Matrix/index.html'rel='nofollow'>Matrix</a> - Basic LED Matrix display manipulation library
</li><li><aclass='urllink'href='http://wiring.org.co/reference/libraries/Sprite/index.html'rel='nofollow'>Sprite</a> - Basic image sprite manipulation library for use in animations with an LED matrix
<p>If you're using one of these libraries, you need to install it first. To do so, download the library and unzip it. It should be in a folder of its own, and will typically contain at least two files, one with a .h suffix and one with a .cpp suffix. Open your Arduino sketchbook folder. If there is already a folder there called <strong>libraries</strong>, place the library folder in there. If not, create a folder called <strong>libraries</strong> in the sketchbook folder, and drop the library folder in there. Then re-start the Arduino programming environment, and you should see your new library in the <strong>Sketch > Import Library</strong> menu.
</p>
<pclass='vspace'></p><p>For details, see the page on <aclass='wikilink'href='Guide_Environment#libraries.html'>the Arduino environment</a>.
<pclass='vspace'></p><p>Communication (networking and protocols):
</p><ul><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/Messenger'rel='nofollow'>Messenger</a> - for processing text-based messages from the computer
</li><li><aclass='urllink'href='http://sundial.org/arduino/index.php/newsoftserial/'rel='nofollow'>NewSoftSerial</a> - an improved version of the <spanclass='wikiword'>SoftwareSerial</span> library
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Learning/OneWire'rel='nofollow'>OneWire</a> - control devices (from Dallas Semiconductor) that use the One Wire protocol.
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Main/PS2Keyboard'rel='nofollow'>PS2Keyboard</a> - read characters from a <spanclass='wikiword'>PS2</span> keyboard.
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/SimpleMessageSystem'rel='nofollow'>Simple Message System</a> - send messages between Arduino and the computer
</li><li><aclass='urllink'href='http://code.google.com/p/sserial2mobile/'rel='nofollow'>SSerial2Mobile</a> - send text messages or emails using a cell phone (via AT commands over software serial)
</li><li><aclass='urllink'href='http://code.google.com/p/webduino/'rel='nofollow'>Webduino</a> - extensible web server library (for use with the Arduino Ethernet Shield)
</li><li><aclass='wikilink'href='http://arduino.cc/en/Tutorial/X10'>X10</a> - Sending X10 signals over AC power lines
</li><li><aclass='urllink'href='http://code.google.com/p/xbee-arduino/'rel='nofollow'>XBee</a> - for communicating with <spanclass='wikiword'>XBees</span> in API mode
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/SerialControl'rel='nofollow'>SerialControl</a> - Remote control other Arduinos over a serial connection
</li></ul><pclass='vspace'></p><p>Sensing:
</p><ul><li><aclass='urllink'href='http://www.arduino.cc/playground/Main/CapSense'rel='nofollow'>Capacitive Sensing</a> - turn two or more pins into capacitive sensors
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/Debounce'rel='nofollow'>Debounce</a> - for reading noisy digital inputs (e.g. from buttons)
</li></ul><pclass='vspace'></p><p>Displays and <spanclass='wikiword'>LEDs</span>:
</p><ul><li><aclass='urllink'href='http://web.alfredstate.edu/weimandn/arduino/LiquidCrystal_library/LiquidCrystal_index.html'rel='nofollow'>Improved LCD library</a> fixes LCD initialization bugs in official Arduino LCD library
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/GLCDks0108'rel='nofollow'>GLCD</a> - graphics routines for LCD based on the <spanclass='wikiword'>KS0108</span> or equivalent chipset.
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Main/LedControl'rel='nofollow'>LedControl</a> - for controlling LED matrices or seven-segment displays with a <spanclass='wikiword'>MAX7221</span> or <spanclass='wikiword'>MAX7219</span>.
</li><li><aclass='urllink'href='http://www.wayoda.org/arduino/ledcontrol/index.html'rel='nofollow'>LedControl</a> - an alternative to the Matrix library for driving multiple <spanclass='wikiword'>LEDs</span> with Maxim chips.
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Main/LedDisplay'rel='nofollow'>LedDisplay</a> - control of a <aclass='urllink'href='http://sigma.octopart.com/23295/datasheet/Avago-HCMS-2973.pdf'rel='nofollow'>HCMS-29xx</a> scrolling LED display.
</li></ul><pclass='vspace'></p><p>Frequency Generation and Audio:
</p><ul><li><aclass='urllink'href='http://code.google.com/p/arduino-tone/'rel='nofollow'>Tone</a> - generate audio frequency square waves in the background on any microcontroller pin
</li></ul><pclass='vspace'></p><p>Motors and PWM:
</p><ul><li><aclass='urllink'href='http://www.arduino.cc/playground/Learning/TLC5940'rel='nofollow'>TLC5940</a> - 16 channel 12 bit PWM controller.
</li></ul><pclass='vspace'></p><p>Timing:
</p><ul><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/DateTime'rel='nofollow'>DateTime</a> - a library for keeping track of the current date and time in software.
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Code/Metro'rel='nofollow'>Metro</a> - help you time actions at regular intervals
</li><li><aclass='urllink'href='http://www.arduino.cc/playground/Main/MsTimer2'rel='nofollow'>MsTimer2</a> - uses the timer 2 interrupt to trigger an action every N milliseconds.
</li><li><aclass='urllink'href='http://sundial.org/arduino/index.php/pstring/'rel='nofollow'>PString</a> - a lightweight class for printing to buffers
</li><li><aclass='urllink'href='http://arduiniana.org/libraries/streaming/'rel='nofollow'>Streaming</a> - a method to simplify print statements
</li></ul><pclass='vspace'></p><p>For a guide to writing your own libraries, see <aclass='wikilink'href='http://arduino.cc/en/Hacking/LibraryTutorial'>this tutorial</a>.
<pclass='vspace'></p><p><em>Corrections, suggestions, and new documentation should be posted to the <aclass='urllink'href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swbugs'rel='nofollow'>Forum</a>.</em>
</p>
<pclass='vspace'></p><p>The text of the Arduino reference is licensed under a
<aclass='urllink'href='http://creativecommons.org/licenses/by-sa/3.0/'rel='nofollow'>Creative Commons Attribution-ShareAlike 3.0 License</a>. Code samples in the reference are released into the public domain.