이글은 2017.12.07에 있었던 오프라인 강의 노트입니다.
아두이노는 사물인터넷에서 주요한 생태계를 이루고 있다.그 소프트웨어나 하드웨어는 오픈되어 있어서,주변에는 다양한 부속품이 개발되어 있고 이를 기반으로 수많은 사람들이 창의적인 작품을 만들고 있다.
아두이노의 유래
- 2005년 이탈리아의 IDII라는 예술대학에서 탄생
- 전자 비전공자인 학생들이 예술적 아이디어를 작은 프로세서를 이용해 빠르게 작품으로 만들수 있게 함
- 오픈 소스
- 오픈 하드웨어
아두이노가 성공한 이유?
주요 아두이노
- Arduino UNO
가장 대중적인 모델
다양한 쉴드를 적층할수 있다. - Arduino NANO
UNO와 기본 기능은 같다(오히려 핀은 2개 많다).
만능기판에 바로 꽂아서 사용하 수 있다. - Arduino Pro Mini
NANO와 기능은 같다.
PC와 USB연결을 위한 부속품(FTDI)이 필요하다.
전럭 소모가 상대적으로 적고 기판에 직접 올려서 작은 크기의 작품으로 만들기가 좋다. - Arduino LilyPad
웨어러블 작품을 만들 수 있다.
전자실을 이용해서 옷에 붙일 수도 있다. - Arduino Mega 2560
메모리가 크고 핀의 수가 많다.
3D 프린터나 로보트 등과 같은 비교적 복잡한 곳에 사용된다.
핀의 배열이 UNO 등과 다르므로 사용에 주의가 필요하다.
모델 | SRAM 프로그램 수행 | FLASH 프로그램 보관 | 디지털핀 | 아나로그핀 | 특징 |
---|---|---|---|---|---|
UNO | 2KB | 32KB | 14개 | 6개 | DC배럴 잭 프로그램 로드 모듈 포함 |
NANO | 2KB | 32KB | 14개 | 8개 | 프로그램 로드 모듈 포함 |
PRO MINI | 2KB | 32KB | 14개 | 8개 | 프로그램 로드 모듈 없음 |
MEGA2560 | 8K | 256K | 54개 | 16개 | DC배럴 잭 프로그램 로드 모듈 포함 |
통합개발 환경
IDE : Integrated Development Environment
프로그램 코딩,디버그,컴파일,배포 등을 쉽게 할 수 있도록 한 프로그래밍 환경
Arduino의 경우 USB로 아두이노와 연결만 하면
- 스케치 작성
- 바이너리 생성
- 보드에 바이너리 전송
- 시리얼 모니터 연결
- 보드에 전원 연결
등의 작업을 한꺼번에 할 수 있다.
아두이노 IDE 설치하기- Windows Installer>JUST DOWNLOAD
- arduino-1.8.5-windows.exe 실행
아두이노 핀
- 디지털핀
- 아나로그핀
- PWM(Pulse Width Modulation)
- 시리얼핀(RX,TX)
- I2C핀(Inter Integrated Circuit, 아이스퀘어씨)
아두이노 부트로더
칩에 미리 설치 해둔 아두이노용 프로그램 조각인데,전용 프로그래머 없이 USB로만 스케치 바이너리 전송이 가능하게 한다.
부트로더가 하는 일:
- USB가 연결되면 새로운 프로그램이 있는지 본다.
- 새로운 프로그램이 있으면 플래쉬에 쓰고 새 프로그램을 수행
- 새로운 프로그램이 없으면 옛 프로그램 수행
- 512kb 플래쉬 차지
첫 스케치
D4에 달려 있는 버튼을 누르면 D5핀에 5V 신호를 내보낸다.
5V 신호로 할 수 있는 일에 주목하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void setup() { // put your setup code here, to run once: pinMode(4,INPUT_PULLUP); pinMode(5,OUTPUT); } void loop() { // put your main code here, to run repeatedly: if (digitalRead(4) == LOW) digitalWrite(5,HIGH); else digitalWrite(5,LOW); } |
아두이노 핀 관련 함수
- pinMode(핀번호,형식);
INPUT
digitalRead하면(스위치연결 HIGH, 스위치 해제 LOW)
INPUT_PULLUP
digitalRead하면(스위치연결 LOW, 스위치 해제 HIGH)
OUTPUT - 값 = digitalRead(핀번호);
LOW 또는 HIGH값을 돌려준다. - 값 = analogRead(핀번호);
0~1023의 값을 돌려준다. 10BIT 해상도임 - digitalWrite(핀번호,HIGH/LOW);
HIGH: 5V 출력
LOW: 0V 출력 - analogWrite(핀번호,0~255);
0 : 0% duty (0V 출력 효과)
127: 50% duty (2.5 출력 효과)
255: 100% duty (5V 출력 효과)
좋은 글 고맙습니다. 그런데… 옥의 티가…
아두이노 핀 분류표에 오타? anlog Read 아니고 analog Read 겠죠?
감사합니다.
오타 수정했습니다^^