Arduino® to popularna platforma elektroniczna dla hobbystów i profesjonalistów. Sprzęt, znany jako płytki Arduino®, występuje w kilku odmianach i może być rozszerzony o dodatkowe komponenty znane jako osłony Arduino®. Podobnie funkcjonalność oprogramowania można rozszerzyć dodając biblioteki Arduino®. Zasadniczo te biblioteki przyspieszają proces programowania projektu Arduino®, dostarczając programiście specjalnie napisany kod, oszczędzając mu czasu i wysiłku związanego z rozwiązywaniem trudnych problemów, które inni programiści już rozwiązali.
Wszystkie standardowe elementy platformy Arduino® są open source, w tym wszystkie standardowe komponenty sprzętowe i programowe. Oznacza to, że biblioteki można dowolnie modyfikować, kopiować i redystrybuować. Biblioteki Arduino® są wydawane na licencji General Public License (GPL), co oznacza, że komercyjne oprogramowanie może być legalnie dodawane do platformy Arduino®, ale bibliotek arduino® nie można włączać do oprogramowania, które nie jest wydane na licencji GPL lub zgodnej licencji open-source .
Dwa główne typy bibliotek Arduino® są standardowe i tworzone przez użytkowników. Standardowe biblioteki są dołączone do domyślnego oprogramowania Arduino®. Biblioteki te są dołączone, ponieważ zapewniają podstawową funkcjonalność, z której będzie korzystać wielu programistów. Biblioteki standardowe również zostały poddane przeglądowi i testom w celu zapewnienia jakości i niezawodności. Biblioteki stworzone przez użytkowników nie są dołączone do pakietu domyślnego, ponieważ albo ich funkcjonalność jest bardziej niejasna, albo nie przeszły szeroko zakrojonych testów.
Biblioteki udostępnione przez użytkowników można pobrać z Internetu. Projekt Arduino® zapewnia repozytorium niektórych z bardziej popularnych bibliotek, a inne biblioteki można znaleźć w innych miejscach w Internecie. Instalowanie biblioteki udostępnionej przez użytkownika jest tak proste, jak rozpakowanie pliku i umieszczenie go w folderze bibliotek.
Standardowe biblioteki obejmują SD, LiquidCrystal, Ethernet, Servo i kilka innych. Biblioteka SD zapewnia możliwość oprogramowania do odczytu i zapisu na kartach SD, pod warunkiem, że czytnik SD został dołączony do projektu Arduino®. LiquidCrystal dostarcza oprogramowanie do sterowania monitorami LCD, które może być przydatne do wyświetlania obrazów lub wyjścia. Biblioteka Ethernet dodaje obsługę oprogramowania dla osłony Ethernet Arduino®. Servo zapewnia wsparcie dla serwomotorów, które są przydatne w projektach robotyki.
Biblioteki tworzone przez użytkowników obejmują DateTime i Webduino. DateTime to prosta biblioteka, która pomaga oprogramowaniu Arduino® śledzić daty i godziny. Webduino udostępnia serwer WWW, umożliwiający zdalny dostęp do urządzeń za pomocą Internetu.