Arduino Uno R3
(아두이노 우노 리비전 3, 정품)
개요
- 아두이노 우노(Arduino Uno)는 ATmega328 (datasheet) 마이크로컨트롤러 기반의 보드로
- 14개의 디지털 입출력핀(그 중 6개는 PWM 출력으로 사용가능), 6개의 아날로그 입력을 지원하며
- 16Mhz 세라믹 리소네이터, USB 연결, 전원잭, ICSP 헤더와 리셋버튼 등 마이크로컨트롤러를 지원하기 위한 모든 것을 가지고 있습니다.
- USB 케이블이나 전원케이블을 연결하여 바로 시작하여 보십시오.
- 아두이노 우노 보드는 FTDI USB-to-Serial driver 칩을 사용하지 않는 점에서 이전에 출시된 보드들과 다릅니다. FTDI칩을 사용하지 않는 대신 USB-to-Serial 컨버터로 프로그래밍 된 Atmega16U2(Atmega16U2 up to version R2)칩을 장착하였습니다.
- 아두이노 우노 Revision 2는 8U2 HWB라인에 풀다운 레지스터를 가지고 있어 쉽게 DFU mode를 만들수 있게 합니다.
- 아두이노 우노 Revision 3은 아래와 같은 새로운 기능을 가지고 있습니다.
- 1.0 pinout: AREF핀 근처에 SDA 및 SCL핀이 추가, 리셋핀 옆에 두개의 새로운 핀이 추가, 쉴드가 보드로부터 제공되는 전압에 맞추기 위한 IOREF핀이 추가되었습니다. 향후에 쉴드는 5V로 동작하는 보드와 3.3V로 동작하는 Arduino Due와 호환될 것입니다.
- 좀더 강해진 리셋회로
- Atmega 16U2 장착(8U2 대치).
- Uno라는 말은 이탈리어로 하나라를 뜻으로, 아두이노 우노 보드는 아두이노 보드의 기준이 되는 리퍼런스 보드입니다. 이전 버전과의 비교를 원하시면 다음 링크를 참조하세요. index of Arduino boards.
스펙
-
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz
회로도 및 리퍼런스 디자인
- EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle 6.0 and newer)
- Schematic: arduino-uno-Rev3-schematic.pdf
Note: 아두이노 리퍼런스 디자인은 Atmega8, 168, 328을 사용이 가능합니다. 현재 모델은 ATmega328을 이용하고 있습니다.
전원
-
아두이노 우노는 USB나 외부전원을 이용하여 전원을 공급할 수 있으며, 전원소스는 자동으로 선택됩니다.
-
외부전원은 DC어댑터나 배터리를 사용할 수 있습니다. 사용가능한 어댑터는 중심이 양극인 플러그이며 지금이 2.1mm이여야 합니다. 배터리의 경우 전원커넥터의 Gnd와 Vin핀에 배터리의 음극와 양극을 연결하여야 합니다.
- 추천 사용전압은 7V~12V입니다. 보드는 외부전원 6V~20V를 사용할 수 있지만, 7V미만의 전압을 공급할 경우 5V핀이 5V이하로 내려갈 수 있어 보드가 불안정하여 질수 있으며, 12V 이상으로 전압을 공급할 경우, 전압 레귤레이터에 부하가 걸려 보드가 손상될 수 있습니다.
다음은 전원 핀에 대한 설명입니다:
- VIN. 외부 전원 소스를 사용할 경우 입력 전압핀입니다.
- 5V. 이 핀은 보드상의 레귤레이터에서 생성된 5V를 출력합니다. 보드에 전원을 공급하는 방법은 DC 파워잭(7-12V)을 통해 공급하는 방법, USB 커넥터(5V)를 통해 공급하는 방법, 아니면 VIN핀(7-12V)를 통해 공급하는 방법이 있습니다. 5V핀이나 3.3V핀을 통해 전원을 공급하면 보드를 망가 트릴 수 있습니다
- 3V3. 보드상의 레귤레이터를 통해 3.3V 전압을 출력하는 핀으로, 최대 전류는 50mA
- GND. 그라운드 핀
- IOREF. 이 핀은 보드상의 MCU가 동작하는 전압에 대한 리퍼런스를 제공합니다. 적절하게 설정된 아두이노 쉴드는 IOREF 핀 전압을 읽을 수 있기때문에 읽힌 전압에 따라 적절한 전원소스를 선택하거나 3.3v나 5v를 사용하기 위해 voltage translator를 활성화 시킬 수 있습니다.
메모리
- ATmega328 은 32KB의 메모리(0.5KB는 부트로더에 의해 사용됨)를 가지고 있으며, 2KB의 SRAM과 1KB의 EEPROM을 가지고 있습니다. EEPROM은 EEPROM library 를 통하여 읽고 쓸수 있습니다.
입출력
-
14개의 입출력 핀들은 pinMode(), digitalWrite(), digitalRead() 함수를 사용하여 입출력으로 사용할 수 있습니다. 이 핀들은 5V에서 동작합니다. 각각의 핀은 최대 40mA를 제공하거나 받을 수 있으며 내부 풀업저항(20-50kohms)을 가지고 있습니다. 풀업저항은 연결이 끊어진 상태가 기본값입니다. 추가적으로 몇몇 핀은 아래와 같은 특별한 기능을 가지고 있습니다
- Serial: 0 (RX) 및 1 (TX). TTL 시리얼 데이터의 RX와 TX로 사용됨. 이 핀들은 Atmega8U2 USB-to-TTL 시리얼 칩의 해당 라인에 각각 연결됨
- External Interrupt 2 및 3. 이 핀들은 인터럽트를 트리거(low value, rising or falling edge, change in value)하도록 설정하는데 사용할 수 있습니다. 자세한 내용은 attachInterrupt() 함수를 참조하세요.
- PWM: 3, 5, 6, 9, 10, 및 11. 8비트 PWM출력을 제공합니다. 자세한 내용은 analogWrite() 함수 참조하세요.
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). 이 핀들은 SPI통신에 사용이 됩니다. 자세한 내용은 SPI library를 참조하세요
- LED: 13, 보드상에 장착된 LED는 13번 핀에 연결되어 있습니다. 핀이 high일 경우 LED가 on됩니다.
-
아두이노 우노는 10비트 분해능의 6개의 아날로그 입력(A0~A5)을 가지고 있습니다. 디폴트로 그라운드에서 5v까지 측정이 가능하며 AREF 핀과 analogReference() 함수를 사용하여 5V대신 리퍼런스 전압을 변경할 수 있습니다. 몇몇 핀은 특별한 기능이 있습니다. :
- TWI: A4 혹은 SDA pin, A5 혹은 SCL pin. Wire library를 이용하여 TWI 통신을 지원.
보드상의 다른 핀들의 경우,
- AREF. 아날로그 입력의 리퍼런스 전압. analogReference() 함수와 같이 사용.
- Reset. 마이크로컨트롤러를 리셋시키기 위해 리셋 핀을 LOW로 만듬. 보통의 경우 쉴드에 리셋버튼을 추가하기 위해 사용됨.
다음의 문서를 살펴보십시오. mapping between Arduino pins and ATmega328 ports. Atmega8, atmega168, Atmega328의 맵핑은 동일합니다. .
통신
-
아두이노 우노는 컴퓨터, 다른 아두이노 보드, 혹은 다른 마이크로컨트롤러와 통신하기 위한 많은 기능을 제공합니다.
- ATmega328은 핀 0(RX), 1(TX)핀을 통해서 UART TTL(5V) 시리얼 통신을 제공합니다.
- 보드상의 Atmega16U2 은 우노 보드가 USB 연결을 통해 PC와 시리얼 통신을 할 수 있게 하여 줍니다.
- 16U2 펌웨어는 표준 USB COM 드라이버를 사용하여 다른 외부 드라이버가 필요없습니다. (윈도우에서는 inf file 필요)
- 아두이노 소프트웨어는 아두이노 보드에게 간단한 텍스트 데이터를 주고 받을 수 있는 시리얼 모니터 프로그램을 포함하고 있습니다. 데이터가 전송되면 보드상의 RX/TX LED가 깜빡일 것입니다.
- SoftwareSerial library 는 아두이노 우노의 디지털 핀들에 시리얼 통신을 가능하게 합니다.
- ATmega328은 I2C(TWI)와 SPI통신을 지원합니다. 아두이노 소프트웨어는 Wire library를 포함하고 있어 I2C 버스의 사용을 간단하게 만들어 줍니다. 자세한 사항은 다음 문서(documentation) 를 참고하시고, SPI통신은 SPI library를 참고하십시오.
프로그래밍
-
아두이노 우노는 아두이노 소프트웨어(download)로 프로그래밍이 가능합니다. 소프트웨어의 Tools --> Board 메뉴에서 Arduino Uno를 선택하십시오. 자세한 사항은 reference 와 tutorials 을 참고하십시오.
-
아두이노 우노상의 ATmega328 칩은 bootloader 가 미리 심겨져 있어 외장 프로그래머 없이도 코드를 업로드 할수 있습니다. 부트로더는 STK500 프로토콜(reference, C header files)을 사용하여 통신합니다.
-
또한 부트로더를 패스하고 ICSP(in-circuit serial programming) 헤더를 통해 마이크로컨트롤러를 프로그램할 수도 있습니다. 자세한 사항은 다음 링크(instruction)를 참조 하십시오.
-
ATmega16U2 (혹은 R1/R2 보드의 8U2) 펌웨어의 소스코드가 오픈되어 있습니다. ATmega16U2/8U2에는 DFU부트로더가 올려져 있으며, DFU 부트로더는 아래와 같은 방법으로 활성화 시킬 수 있습니다.
- Rev1 보드의 경우: 보드 뒷면의 솔더 점퍼를 연결한 후 8U2를 리셋한다.
- Rev2 이후의 보드의 경우: 8U2/16U2 HWB라인을 그라운드로 풀다운시키는 저항이 있어 좀더 쉽게 DFU모드로 진입할 수 있습니다.
DFU부트로더를 활성화 시킨 후 Atmel's FLIP software (Windows)를 사용하거나 DFU programmer (Mac OS X and Linux) 를 사용하여 새로운 펌웨어를 로딩합니다. 아니면 ISP헤더에 외장 프로그래머를 연결하여 로딩합니다(DFU부트로더는 덮어씁니다.) 좀더 자세한 정보는 다음 링크를 참조하세요. user-contributed tutorial
자동 (소프트웨어) 리셋
- 업로드 전에 리셋버튼을 눌러 주어야하는 것 대신 아두이노 우노는 소프트웨어적으로 리셋하도록 디자인 되었습니다. ATmega8U2/16U2의 하드웨어 플로우 컨트롤 라인(DTR)은 ATmega328의 리셋라인에 연결되어 있습니다. 이 라인을 LOW로 일정시간 만들면 칩이 리셋되는데 아두이노 소프트웨어는 이 기능을 이용하여 아두이노 소프트웨어에서 업로드 버튼만 누르면 업로드 되도록 하였습니다.
USB 과전류 보호
-
아두이노 우노는 리셋가능한 폴리퓨즈를 가지고 있어 PC의 USB포트를 쇼트나 과전류환경에서 보호합니다. 대부분의 컴퓨터가 USB를 보호하기 위한 내부 매커니즘을 가지고 있지만, 이 퓨즈는 추가적인 보호막을 제공합니다. 만약 500mA이상 USB포트에 인가된다면 퓨즈는 과전류나 쇼트가 제거되기 전까지 자동으로 연결을 끊습니다.
물리적 특징
- 아두이노 우노의 PCB크기는 각각 2.7과 2.1 인치입니다.
참고자료