arduino basic programming

14
ARDUINO 기초프로그래밍

Upload: sanggyu-kim

Post on 16-Jul-2015

209 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: Arduino Basic Programming

ARDUINO

기초프로그래밍

Page 2: Arduino Basic Programming

contents

1. 아두이노 (ARDUINO)

2. 전자회로

3. 아두이노 ARDUINO 함수

4. 스위치로 DC 모터 제어

Page 3: Arduino Basic Programming

1. 아두이노 (ARDUINO)

Arduino( 아두이노 ) 는 오픈소스 기반의 피지컬 컴퓨터 플래폼

Arduino Uno

+

하드웨어 소프트웨어

Arduino IDE

Page 4: Arduino Basic Programming

Arduino Uno

마이크로 컨트롤러 ATmega328사용 전압 5V입력 전원 7 ~ 20V디지털 입력 / 출력 14 개아날로그 입력 6 개입력 / 출력 전류 40mA3.3V 출력 전류 50mASRAM 2KBEEPROM 1KB클럭 속도 16MHz

1. 아두이노 (ARDUINO) - 하드웨어

Page 5: Arduino Basic Programming

Arduino Uno

1. 아두이노 (ARDUINO) - 하드웨어

디지털 입 / 출력 핀

아날로그 입력 핀

USB 포트

전원 핀

아날로그 출력 핀 ~ 표시

Page 6: Arduino Basic Programming

Arduino IDE – 다운로드

1. 아두이노 (ARDUINO) - 소프트웨어

http://arduino.cc/en/Main/Software

컴파일 업로드

전역번수

최초 한번 실행

무한 반복

업로드 setup() loop()

Page 7: Arduino Basic Programming

2. 전자회로 – 브레드 보드 & LED

+, 5V

-, GND

+ -

브레드 보드

LED

Page 8: Arduino Basic Programming

3. Arduino 함수

Arduino

입력

출력

시리얼통신

디지털 입력

아날로그 입력

디지털 출력

아날로그 출력

Page 9: Arduino Basic Programming

• pinMode(pin, mode) – 핀 사용 전 핀 모드 설정

3. Arduino 함수

pin : 핀 번호mode : INPUT, OUTPUT, INPUT_PULLUP

• digitalWrite(pin, value) – 설정된 핀에 디지털 값 출력pin : 핀 번호value : HIGH, LOW

• delay(ms) – 지정된 시간동안 마이크로프로세서 동작 멈춤ms : 밀리세컨드

디지털 출력

Page 10: Arduino Basic Programming

3. Arduino 함수

• digitalRead(pin) – 설정된 핀에 디지털 값을 읽음pin : 핀 번호

디지털 입력

아날로그 입력

• analogRead(pin) – 설정된 핀에 0 ~ 1023 값을 읽음pin : 핀 번호

아날로그 출력

• analogWrite(pin, val) – 출력핀에 값을 출력pin : 핀 번호val : 출력값 0 ~ 255

Page 11: Arduino Basic Programming

3. Arduino 함수

• Serial.begin(speed)speed : 시리얼 통신속도 설정

시리얼통신

• Serial.available() – 시리얼 통신 수신버퍼에서 읽을 수 있는 바이트 수

• Serial.read() – 수신버퍼의 데이터를 읽어 옴

• Serial.print(val) – 데이터를 문자열로 전송

Page 12: Arduino Basic Programming

3. Arduino 함수

• Mil l is() 함수 – 프로그램이 시작된 시간부터 밀리 단위로 카운터 된 값을 반환

기타함수

• MsTimer2::set(unsigned long ms, void(*f)()) – 인터럽트 설정

• MsTimer2::start() – 인터럽트 시작

ms : 인터럽트 시간 , 밀리 초void(*f)() : 인터럽트 분기 함수명

• MsTimer2::stop() – 인터럽트 정지

※ MsTimer2 는 외부라이브러리 –

http://arduino.cc/en/Reference/Libraries 다운로드 후

C:\Program Files\Arduino\arduino-1.0.5-r2\libraries 에 폴더 복사

Page 13: Arduino Basic Programming

4. 스위치로 DC 모터 제어하기 - 회로

Page 14: Arduino Basic Programming

4. 스위치로 DC 모터 제어하기 - 소스

#define CW HIGH#define CCW LOW#define SPEED 100 // 0 ~ 255 사이의 값int swBuf;

void setup(){pinMode(9, OUTPUT);pinMode(8, OUTPUT);pinMode(7, OUTPUT);pinMode(2, INPUT_PULLUP);

}void loop(){

setMotor(SPEED, CW);}void setMotor(int motorSpeed, boolean motorDir){

if(digitalRead(2) == LOW && swBuf == 0){swBuf = 1;

}else if(digitalRead(2) == HIGH && swBuf == 1){swBuf = 0;analogWrite(9, motorSpeed);digitalWrite(8, motorDir);digitalWrite(7, !motorDir);

}}