Arduino® on suosittu elektroniikka -alusta harrastajille ja ammattilaisille. Laitteisto, joka tunnetaan nimellä Arduino® -levyt, on saatavana useissa lajikkeissa, ja sitä voidaan laajentaa lisäkomponenteilla, jotka tunnetaan Arduino® -kilvinä. Samoin ohjelmiston toimintoja voidaan laajentaa lisäämällä Arduino® -kirjastoja. Pohjimmiltaan nämä kirjastot nopeuttavat Arduino® -projektin ohjelmointiprosessia tarjoamalla ohjelmoijalle tarkoituksellisesti kirjoitettua koodia, mikä säästää aikaa ja vaivaa muiden ohjelmoijien jo ratkaisemien hankalien ongelmien ratkaisemisessa.
Kaikki Arduino® -alustan vakioelementit ovat avoimen lähdekoodin, mukaan lukien kaikki vakiolaitteisto- ja ohjelmistokomponentit. Tämä tarkoittaa, että kirjastoja voidaan vapaasti muokata, kopioida ja jakaa uudelleen. Arduino®-kirjastot julkaistaan yleisen julkisen lisenssin (GPL) mukaisesti, mikä tarkoittaa, että kaupallisia ohjelmistoja voidaan laillisesti lisätä Arduino®-alustalle, mutta arduino®-kirjastoja ei voida sisällyttää ohjelmistoon, jota ei julkaista GPL: n tai yhteensopivan avoimen lähdekoodin lisenssin nojalla .
Kaksi päätyyppiä Arduino® -kirjastoja ovat vakio- ja käyttäjien kirjoittamia. Arduino -oletusohjelmiston mukana toimitetaan vakiokirjastoja. Nämä kirjastot ovat mukana, koska ne tarjoavat perustoimintoja, joita monet ohjelmoijat käyttävät. Vakiokirjastoja on myös tarkastettu ja testattu laadun ja luotettavuuden varmistamiseksi. Käyttäjien kirjoittamat kirjastot eivät sisälly oletuspakettiin, koska niiden toiminnot ovat hämärämpiä tai niitä ei ole testattu laajasti.
Käyttäjien kirjoittamia kirjastoja voi ladata Internetistä. Arduino® -projekti tarjoaa arkiston joistakin yleisimmistä kirjastoista, ja muita kirjastoja löytyy muualta Internetistä. Käyttäjän kirjoittaman kirjaston asentaminen on yhtä helppoa kuin tiedoston purkaminen ja sijoittaminen kirjastojen kansioon.
Vakiokirjastoja ovat SD, LiquidCrystal, Ethernet, Servo ja monet muut. SD -kirjasto tarjoaa ohjelmistokykyä lukea ja kirjoittaa SD -korteille edellyttäen, että SD -lukija on liitetty Arduino® -projektiin. LiquidCrystal tarjoaa ohjelmiston nestekidenäyttöjen ohjaamiseen, mikä voi olla hyödyllistä kuvien tai tulostusten näyttämisessä. Ethernet -kirjasto lisää ohjelmistotukea Ethernet Arduino® -suojalle. Servo tukee servomoottoreita, jotka ovat hyödyllisiä robotiikkaprojekteissa.
Käyttäjien kirjoittamia kirjastoja ovat DateTime ja Webduino. DateTime on yksinkertainen kirjasto, joka auttaa Arduino® -ohjelmistoa seuraamaan päivämääriä ja kellonaikoja. Webduino tarjoaa verkkopalvelimen, joka mahdollistaa laitteiden etäkäytön Internetin kautta.