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

회로도 및 리퍼런스 디자인

전원

  • 아두이노 우노는 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를 선택하십시오. 자세한 사항은 referencetutorials 을 참고하십시오.

  • 아두이노 우노상의 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 인치입니다.

참고자료