Arduino uno의 Hardware

Download Report

Transcript Arduino uno의 Hardware

Arduino uno의 Hardware
구성부품의 종류와 그 용도
Arduino UNO R3의 생김새
Reset button
누르면 신호가 LOW로 떨어지면서 마이크로컨트롤러가 리셋되는 버튼
ATmega16u2
통신용으로 사용되는 마이크로컨트롤러
USB를 이용한 시리얼 통신을 담당하며 펌웨어에 따라 추가적인
기능을 할 수 있다.
펌웨어를 바꿀 땐
ISP를 이용한다.
통신 LED
ATmega16u2의 10번 11번 핀에 연결되어있는데
각 하나의 TX, RX LED로 ATmega328에서 이루어지는 통신이나
USB를 사용한 통신을 모두 표시한다.
13번 핀 LED
디지털 입출력 포트 13번 핀에 연결되어 핀의 High/Low상태를
알려주는 내장 LED이다.
전원 LED
보드에 전원이 공급되고 있는지를 알 수 있는 LED
5V나 3.3V나 상관없이 전원이 있으면 무조건 켜진다.
ISP 단자
ATmega328과의 SPI통신을 위한 단자.
ATmega328에 Boot loader나 일반 프로그램을 올리는데 사용된다.
ATmega16u2가 없어도 ISP를 통해 프로그램을 업로드 할 수 있다.
MOSI MISO SCK핀이 디지털입출력 11,12,13번 핀과 같으므로
ISP통신을 할 때에는 해당 핀에 Low나 High가
따로 걸리지 않게 해야 한다.
RESET-EN
UNO는 프로그램 업로드나 ISP통신을 시작 할 때
자동으로 리셋 하는 기능이 있다.
하지만 이 기능이 불편할 때가 있는데
예) 프로그램을 작동시키던 도중 실행상태를 확인하기 위하여 ISP통신을 하
는 경우
이 Auto reset 기능을 사용하지 않으려면 RESET-EN부분을 끊어
주면 된다.
과전류방지 퓨즈
USB포트에 딸린 퓨즈로 USB로부터 500mA이상의 과전류가 흐르
는 것을 방지해준다.
전원선택용 OPAMP
DC JACK을 통한 외부전원이 있는지 확인하는 데 사용한다.
외부 전원이 있다면 USB전원을 차단하고 외부전원을 사용한다.
5V, 3.3V Regulator
Vin이나 DC JACK을 통해 들어온 전압을 각각 5V, 3.3V로 조정해
준다.
16MHz 크리스탈
두 개가 있는데 각각 ATmega16u2, ATmega328에 하나씩 연결되
어 외부 클럭 역할을 수행한다.
전원 안정용 Capacitor
Regulator를 통과한 5V 전압을 안정적으로 공급할 수 있도록 해
준다.
역 전압 방지 다이오드
DC JACK으로 부터 들어오는 전원에 역 전압이 발생하지 않도록
방지해준다.
ATmega328
Arduino uno의 핵심 마이크로 컨트롤러
메모리 : 32 KB Flash memory
(with 0.5 KB used for the bootloader)
2KB SRAM
1KB EEPROM
이 칩만을 사용해 초소형 Arduino를
구현 할 수도 있다.
ATmega328
Arduino uno의 핵심 마이크로 컨트롤러
Mapping
1번 핀 : reset
2번~6번 : Digital I/O port
7번 : VCC
8번 : GND
9번~10번 : 외부 클럭(16Mhz 크리스탈)
11번~19번 : Digital I/O port
20번 : VCC
21번 : Analog reference voltage
22번 : GND
23번~28번 : Analog Input port
Port 설명
• Digital I/O Port
Uno는 14개(0~13)의 Digital IO Port를 가지고 있다.
그 중 0번, 1번 핀은 Tx와 Rx로 시리얼통신에 사용한다.
2번, 3번 핀은 외부 인터럽트로 사용할 수 있고
11번, 12번, 13번 핀은 MOSI, MISO, SCK로 SLI통신에도 사용된다.
핀 이름에 물결표시(~)가 있는 건 PWM의 사용 가능 여부를
나타낸다.
Port 설명
• PWM(Pulse width modulation)
Analogwrite()함수를 사용하면 출력의
duty cycle을 조정 할 수 있는데, 이를 통해
LED의 밝기나 모터의 속도, 부저 음의
높낮이 등을 조절할 수 있다.
Port 설명
• Analog Input Port
Analog 입력을 넣어주면 그 값을 0~1023까지의 값으로 읽는다.
(초기설정은 0~5V를 분해)
Port 설명
• AREF
좀 더 정밀한 측정을 요구할 때에는 analog reference를 이용해
기준을 잡아준다.
내부적으로 설정할 수도 있지만 AREF 핀에 특정 전압을 입력하
면 그 값을 기준으로 잡는다.
만약 1V를 기준으로 준다면 0~1V까지를 1024단계로 나눠서 인
식한다.
Port 설명
• 주의사항
I/O port의 입출력 전류는 각 40mA를 넘지 않아야 한다.
모든 port의 전류를 합해서 200mA를 넘기지 않아야 한다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 1. I/O핀을 GND에 연결
I/O핀의 허용전류는 40mA인데 바로 GND에 연결하면 25옴 정도
의 저항밖에 걸리지 않는다.
그로 인해 전류는 200mA가 되고
I/O핀이 과전류로 고장 난다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 2. I/O핀을 Low상태인 다른 I/O핀에 연결
이 경우 1번과 똑같은 상황이 된다
I/O핀이 과전류로 둘 다 고장 난다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 3. I/O핀에 과전압을 건다.
마이크로컨트롤러엔 ESD 방지용 다이오드가 내장되어있다.
하지만 과전압이 지속되면 다이오드가 파괴되고
마이크로컨트롤러가 고장난다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 4. 외부 Vin을 반대로 연결
마이크로 컨트롤러와
5V Regulator에 역전압이 걸려
망가질 수 있다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 5. 5V출력 핀에 5V를 입력
과전압으로 인해 Arduino 뿐 아니라
PC의 USB포트까지 망가질 수 있다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 6. 3.3V출력 핀에 3.3V를 입력
입력된 전원이 3.3V regulator에 직접적으로 연결되어 이를 파괴
하고 결국 USB port까지 고장낼 수 있다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 7. Vin을 GND에 연결
DC JACK이 연결되어있을 때 Vin이 GND와 바로 연결되어있으면
과전류가 흘러 역 전압 방지 다이오드가 파괴되고 보드가 타버릴
수 있다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 8. 5V out 핀을 Vin에 연결
Vin과 5V out 사이에 역 전류가 발생해 5V regulator가 파괴된다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 9. Reset핀에 13V를 연결
Reset핀은 ATmega의 reset핀과
직접 연결되어 있다.
13V이상의 전압이 걸리면
Atmega가 고장날 수 있다.
Arduino를 고장내는 10가지 방법
원문 : http://ruggedcircuits.com/html/ancp01.html
• 10. 최대 허용전류를 초과
각 I/O핀의 총 전류가 200mA이상이 되면
마이크로컨트롤러가
고장 날 수 있다.