Arduino는 board 뿐만 아니라 module, shield 그리고 종합세트인
kit이 있다. Module은 board에서 핵심 부분을 모아 더 작게 만든것이고, shield는
board의 부족한 기능(무선통신, 그래픽 등)을 보완하도록 만든 보조 장치다. 따라서 사용자의 목적에 따라 Arduino에 다양한 제품을 선택해
활용할 수 있다(그림 2).
이번 실험에 사용할
Arduino Uno board는 초심자용 board 이지만, Arduino의 가장 기본적이고 대표적인 reference board 이다. Arduino 하면 가장 먼저 접하는 board로 Uno는 이탈리아어로 하나, 첫째라는 뜻이다. 가격은 board 1개에 8000원
정도로 저렴하며(그림 3), Atmel사의 ATmega328P microcontroller를 기반으로 구성되어 있다.
그림 3. Arduino Uno board
ATmega328P microcontroller의 pin map(그림
4)에서 알 수 있듯이, Arduino Uno board는 ATmegar328P microcontroller를 사용자가 쉽게 쓸 수 있게 각 pin의 기능을 board에 모으고 외부 장치와 연결을 편하게 해놓은
것이다.
그림 4. Arduino Uno board에 핵심인 ATmega328 chip pin map[2]
Arduino Uno board는 14개의 digital input/output pin, 6개의 analog input
pin, 16 MHz quartz crystal, USB 연결부, 외부전원 연결부로 구성되어
있다(그림 5). Arduino Uno board를 사용하기에
앞서 우리가 실제로 쓰는 부분의 역할에 대해 자세히 알아보도록 한다.
그림 5. Arduino Uno board의 각 부분에
명칭과 역할[3]
Board에서 가장 많이 쓰이는 것은 14개의 Digital I/O pin들이며 0 ~ 13번으로 표시되어 있다. Digital pin들 중 우리가 실제로 사용하는 것은 2 ~ 13 번으로, 외부에 digital 신호(0 또는
1의 이진수 신호)를 받거나 보내는데 사용한다. 신호를 받거나(입력) 보내는
것(출력)은 Arduino와
외부 스위치를 연결했을 때 스위치가 눌렀는지 아닌지를 확인(입력기능)
하거나, Arduino와 LED를 연결했을 때
Arduino에서 LED를 켜고 끄는 장치(출력기능)로 사용하는 것을 말한다.
입력기능은 외부 스위치가 열려있는지, 닫혀있는지에 따라 포트로 들어오는 전압값이 0 V 혹은 5 V 인지를 인지하여 입력신호(스위치의 상태)를 알려준다. 출력기능은
Arduino와 연결된 장치에 전압을 주지 않으면(0 V) Low 신호, 즉 장치를 끄는 역할을 하는 것이고 전압을 주면(5 V) High 신호, 장치를 켜는 역할을 하는 것을 말한다. 특히 출력기능은 우리가 만든
프로그램으로 제어할 수 있어, 원하는 시간에 정확히 장치를 켜고 끄는 것을 할 수 있다.