아두이노 라이브러리

아두이노 라이브러리는 오픈소스를 기반으로 한 아두이노 개발 환경의 한 부분으로, AVR Libs을 기반으로 한 C/C++의 표준함수 일부분과 AVR의 내장 모듈 및 외장의 각종 부가 장치를 제어하는 함수들로 구성되어 있다.

임베디드 시스템을 구성할 때, 마이크로컨트롤러 내부의 모듈 뿐만 아니라 다양한 외부의 부가 모듈 부품이 결합된다. 따라서 AVR 내부 모듈 함수와 외부의 부품을 제어하는 함수들이 섞여있다.
아두이노 통합 환경(IDE)을 설치하면 내장 된 몇가지 함수들이 존재한다. 그리고 개발도구에 자체 내장되지 않는 많은 라이브러리 들이 오픈소스 형태로 인터넷 상에 존재한다. 파일을 내려 받아 개발 도구에 등록하면 쉽게 이용할 수 있다.

외부의 공개소스로부터 받은 경우, 초기의 개발도구(버전 1.0.x)에서는 압축이 풀린 상태의 폴더를 기준으로 등록이 가능 했으나, 현재의 버전(버전 1.6.x 등)은 ZIP 파일 자체로 등록이 가능하다. 공개 소스의 예제가 있는 경우, 메뉴 '예제' 역시 동시에 사용할 수 있다.

아두이노 표준 라이브러리 

아두이노 통합 개발 환경을 설치하면 자동으로 설치되는 라이브러리 함수들이다:

 EEPROM
AVR 내부에 장착된 EEPROM에 데이터를 쓰거나 읽는다. 전원 인가없이도 데이터가 유지된다.
 Ethernet
아두이노 이더넷 쉴드(Arduino Ethernet Shield)을 사용하여 인터넷에 접속한다.
 Firmata
아두이노의 시리얼 통신을 통해, 다른 컴퓨터의 응용 프로그램과의 통신을 지원한다.
 GSM
GSM 쉴드를 사용하여 GSM/GRPS 통신을 지원한다.
 LiquidCrystal
문자 LCD을 위한 라이브러리이다.
 SD
SD 카드에 데이터를 읽거나 쓴다.
 Servo
서보 모터를 제어한다.
 SPI
SPI(Serial Peripheral Interface)을 사용한 통신을 지원한다.
 SoftwareSerial
AVR의 시리얼 통신 하드웨어 모듈을 사용하지 않고, 디지털 포트를 이용하여 소프트웨어 방법으로 시리얼을 지원한다. 아두이노의 버전1.0과 이후의 버전에서는 Mikal Hart에 의해 NewSoftSerial 라이브러리가 개선하여  별도로 존재한다.
 Stepper
스텝핑 모터를 제어한다.
 TFT
TFT 모니터에 글자, 이미지, 특정 모양을 그린다.
 WiFi
아두이노 와이파이 쉴드를 사용하여 인터넷에 연결한다.
 Wire
TWI/I2C(Two Wire Interface)을 사용한 데이터 전송 및 수신을 처리한다. 센서 등의 소자와 연결할 때 많이 사용한다.

Due에서 사용하는 라이브러리 
 Audio
 Scheduler

Due와 Zero에서 사용하는 라이브러리 
 USBHost

Esplora에서 사용하는 라이브러리 
 Esplora

아두이노 Robot 라이브러리 
 Robot

아두이노 Yun 브릿지 라이브러리 
 Bridge Library

USB 라이브러리 (Leonardo, Micro, Due, Zero 그리고 Esplora) 
 Keyboard
 Mouse

안드로이드 개발 
 USB Host shield
 ProcessingArduinoAdkUsb

부가 라이브러리(인터넷 공개 소스) 

현재 사용하는 기능 부품의 핵심 칩을 제어하기 위한 라이브러리 들이 많이 존재한다. 그리고 기타 여러 가지 기능적 함수들도 존재하므로 검색을 통해 찾아 사용하면 된다.  사이트 GitHub가 대표적으로 여러 가지 프로젝트가 존재한다.

통신 (네트워킹, 프로토콜) 

 Messenger
다른 컴퓨터와 문자 기반 메시지 처리를 지원한다.
 NewSoftSerial
SoftwareSerial 라이브러리 개선판이다.
 OneWire
1-Wire 통신 프로토콜을 지원한다.
 PS2Keyboard
PS2 키보드롤부터 문자를 읽는다.
 Simple Message System
아두이노와 컴퓨터 사이에 간단한 메시지를 주고 받는다.
 SSerial2Mobile
휴대폰을 사용하여 문자 메시지나 이메일을 보낸다. (소프트웨어 시리얼 상에 AT 커멘트를 사용)
 Webduino
확장 웹 서버 라이브러리이다. (아두이노 이더넷 쉴드 이용)
 X10
전기 AC 전원선을 이용하여 X10 신호를 보낸다.
 XBee
XBees 통신을 지원한다. (API 모드)
 SerialControl
다른 아두이노와 시리얼 통신을 통해 원격 제어를 지원한다.

센서 

 Capacitive Sensing
 2개 이상의 핀의 센서를 사용한다. ADC 모듈이 하나이기 때문에 적절히 분배하여 동작하도록 조절한다.
 Debounce
키 버튼 등의 디지털 입력에서 바운싱을 제거하여 입력한다.

표시장치 및 LED 

 GFX
표준 그래픽 루틴을 제공하는 기본 클래스 라이브러리이다. (Adafruit Industries에 의해)
 GLCD
KS0108을 기반으로 하는 LCD의 그래픽 처리 루틴을 지원한다.
 LedControl
MAX7221나 MAX7219을 사용한 7-세그먼트 LED 드라이버를 제어한다.
 LedControl
맥심 칩을 사용한 매트릭스 LED을 제어한다. Matrix 라이브러 수정본이다.
 LedDisplay
 HCMS-29xx  스코롤 LED를 제어한다.
 Matrix
기초적인 매트릭스 LED을 제어한다.
 PCD8544
Nokia 55100 기반 LCD 컨트롤러를 제어한다.  (Adafruit Industries에 의해)
 Sprite
매트릭스 LED의 기초적인 요정(sprite) 이미지를 처리한다.
 Adafruit ST7735
1.8", 128x160 TFT LCD 제어한다. (Adafruit Industries에 의해)

오디오 신호 처리 

 FFT
오디오나 다른 아날로그 신호의 주파수 분석 함수이다.
 Tone
오디오 발생을 위한 방형파 신호를 만든다. 특정 핀에 출력된다.

모터와 PWM 

 TLC5940
16채널, 12비트 PWM 제어 출력.

시간 제어 

 DateTime
소프트웨어에서 현재 날짜와 시간의 트랙을 유지하기 위한 라이브러리이다.
 Metro
주기적 시간 처리를 위한 라이브러리이다.
 MsTimer2
매 N 미리초(milliseconds) 마다 인터럽트를 발생한다. 타이머 2을 사용한다.

유틸리티 

 PString
스트링 버퍼를 출력하는 가벼운 클래스이다.
 Streaming
간단한 출력을 스트림 처리로 대처할 수 있다.

같이 보기 
 아두이노
 아두이노 보드
 아두이노 프로그래밍

각주 

아두이노
마이크로컨트롤러
 
컴퓨터 시스템
마이크로프로세서