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를 이용해 기준을 잡아준다. 만약 1V를 기준으로 준다면 0~1V까지를 1024단계로 나눠서 인 식한다.
Port 설명 주의사항 I/O port의 입출력 전류는 각 40mA를 넘지 않아야 한다.
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이상이 되면 마이크로컨트롤러가 고장 날 수 있다.