아두이노 프로그래밍
1
강사 : 김영준 목원대학교 겸임교수 헬로앱스 (www.helloapps.co.kr)
1 일차 – Part3 디지털 명령어
헬로앱스 (www.helloapps.co.kr) 2
아두이노 명령어
헬로앱스 (www.helloapps.co.kr)
아두이노 명령어
3
명령어 구조
명령어의 기본 규칙헬로앱스 (www.helloapps.co.kr)
아두이노 명령어 구성
4
명령어 구조
디지털 명령어
0 (LOW) 또는 1 (HIGH) 값을 가지는 부품 제어
아날로그 명령어
0 ~ 1023 사이의 값을 가지는 센서 제어
소리 생성 명령어
소리를 발생시키는 명령어
모터 제어 명령어
서보모터 및 다양한 모터 제어
LCD 명령어
문자 출력 장치
통신 명령어
인터넷 , 블루투스 등의 통신
헬로앱스 (www.helloapps.co.kr)
아두이노에서의 센서값
5
디지털 센서
디지털 센서 값전압 5V
0V
아두이노보드
HIGH 또는 1
LOW 또는 0
디지털 센서는 0V ~ 5V 사이의 전압값이 출력되며 , 아두이노에서는 이 전압값이 0 또는 1 로 처리됩니다 .
0V ~ 2.5V 사이는 0 으로 표시하고 2.5V ~ 5V 사이는 1 로 표시합니다 .
디지털센서
헬로앱스 (www.helloapps.co.kr)
아두이노에서의 센서값
6
디지털 센서
디지털 센서 값디지털 센서의 출력 또는 입력
5V
0V
HIGH (1)
LOW (0)
아두이노 보드에서의 디지털 센서값 처리
헬로앱스 (www.helloapps.co.kr)
아두이노에서의 센서값
7
디지털 센서
디지털 센서 값아두이노에서 특별히 디지털 센서 값은 다음과 같이 예약어로 사용됩니다 .
5V
0V
HIGH 라는 단어를 사용합니다 .
LOW 라는 단어를 사용합니다 . 예 ) DigitalWrite(13, HIGH)
예 ) DigitalWrite(13, LOW)
헬로앱스 (www.helloapps.co.kr)
아두이노에서의 센서값
8
아날로그 센서
아날로그 센서 값전압 5V
0V
아두이노보드
1023
0
아날로그 센서는 0V ~ 5V 사이의 전압값이 출력되며 , 아두이노에서는 이 전압값이 0 ~ 1023 사이의 숫자로 변환됩니다 .
아날로그센서
헬로앱스 (www.helloapps.co.kr)
아두이노에서의 센서값
9
아날로그 센서
아날로그 센서 값아날로그 센서의 출력 또는 입력
5V
0V
아두이노 보드에서의 아날로그 센서값 처리
1023
0
헬로앱스 (www.helloapps.co.kr) 10
디지털 센서의 연결
헬로앱스 (www.helloapps.co.kr)
아두이노 올인원 센서 쉴드
11
디지털 센서
초보자용 아두이노 올인원 센서 쉴드모터 2 핀 x 2 아날로그 3 핀 디지털 3 핀 I2C 4핀
시리얼 4 핀
브래드 보드가 필요없는 초보자용 아두이노 보드
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
12
디지털 센서
디지털 핀 디지털 부품은 디지털핀에 연결합니다 . 디지털 핀에는 2 번 ~ 13 번 까지
번호가 표시되어 있습니다 . (D2 ~ D13)
디지털 핀에 부품을 연결할 때에는 핀 번호를 확인해야 합니다 .
헬로앱스 (www.helloapps.co.kr)
디지털 센서 핀
13
디지털 센서
디지털 3 핀 센서 핀의 구조측정된센서값
0V 디지털 5V
센서 (V: Voltage, 또는 Vcc 로 표기 ) (S: Sensor 또는 D 로 표기 )
(G: Ground, 또는 GND 로 표기 )
헬로앱스 (www.helloapps.co.kr) 디지털센서
디지털 센서 핀
14
디지털 센서
디지털 3 핀 센서를 아두이노 보드에 연결하는 방법G
S V
아두이노보드의 디지털 핀 G
S V
아두이노 보드에는 총 14 개의 디지털 핀 (0 번 핀 ~ 13 번 핀 ) 이 있으나 이중에서 0 번과 1번은 통신용으로 사용되고
실제는 2 번 핀 부터 13 번 핀까지 총 12 개의 핀을 사용할 수 있습니다 .
12 개의 핀을 사용할 수 있습니다 .
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
15
디지털 센서
디지털 센서 케이블디지털 센서는
케이블이 녹색선으로 표시되어 있습니다 .
GND
VCC 또는 5V
디지털 데이터 선
헬로앱스 (www.helloapps.co.kr) 16
LED 소자 연결 실습
헬로앱스 (www.helloapps.co.kr)
LED 소자 연결 실습
17
실습
실습 ) 아래의 LED 소자를 디지털 13 번 핀에 연결해 봅니다 .LED 소자
헬로앱스 (www.helloapps.co.kr)
LED 소자 연결 실습
18
실습
실습 ) 디지털 13 번 핀을 찾아 보세요 . 13 번(D13)
헬로앱스 (www.helloapps.co.kr)
LED 소자 연결 실습
19
실습
디지털 부품의 연결디지털 부품을 연결할 때에는 선의 색상
( 검정 , 빨강 , 초록 )
순서 및 핀 위치를
확인하여 연결합니다 .
왼쪽은 LED 소자를
디지털 13 번 핀에 연결한 예입니다 .
헬로앱스 (www.helloapps.co.kr) 20
디지털 명령어
헬로앱스 (www.helloapps.co.kr)
디지털 명령어
디지털 핀에 값을 쓸 때 사용하는 명령어DigitalWrite
디지털 핀에서 값을 읽어 올 때 사용하는 명령어DigitalRead
21
디지털 명령어
헬로앱스 (www.helloapps.co.kr)
디지털 명령어
디지털 핀에 값을 쓸 때에는 핀번호와 값이 필요함DigitalWrite ( 핀번호 , 값 )
디지털 핀에서 값을 읽어 올 때에는 핀번호와 값을 저장할 변수가 필요함a = DigitalRead ( 핀번호 )
22
디지털 명령어
헬로앱스 (www.helloapps.co.kr)
Delay 명령어
Delay 명령어는 주어진 시간 ( 밀리초 ) 동안 실행을 멈추는 명령어 입니다 .Delay ( 밀리초 )
23
디지털 명령어
1000 밀리초는 1 초를 의미합니다 . 100 밀리초는 몇초일까요 ?
3500 밀리초는 몇초일까요 ?
헬로앱스 (www.helloapps.co.kr) 24
LED 소자 제어 실습
헬로앱스 (www.helloapps.co.kr)
실습 ) 13 번 핀의 LED 점멸시키기
디지털 13 번 핀에 연결된 LED 를 1 초 간격으로 점멸시키는 프로그램을 작성해 보세요 .25
실습
헬로앱스 (www.helloapps.co.kr)
실습 ) 13 번 핀의 LED 점멸시키기
블록으로 작성한 프로그램 예 )26
실습
헬로앱스 (www.helloapps.co.kr)
실습 ) 13 번 핀의 LED 점멸시키기
스크립트로 작성한 프로그램 예 )27
실습
void setup() {
}
void loop() {
DigitalWrite(13, HIGH) Delay(1000)
DigitalWrite(13, LOW) Delay(1000)
}
헬로앱스 (www.helloapps.co.kr)
실습 ) 13 번 핀의 LED 점멸시키기
C 언어 문법 ( 스케치 코드 ) 으로 작성한 프로그램 예28
실습
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
헬로앱스 (www.helloapps.co.kr)
프로그램 실행하기
29
실습
상단 메뉴의 가운데 있는 실행 버튼을 클릭하여 프로그램을 아두이노에 업로드 시 킵니다 .헬로앱스 (www.helloapps.co.kr) 30
응용 실습
헬로앱스 (www.helloapps.co.kr)
LED 제어 응용 실습
31
응용실습
아래의 실습 주제를 수행해 봅니다 .헬로앱스 (www.helloapps.co.kr)
LED 제어 응용 실습
32
블록 코드
LED 의 점멸주기를 수정하여면 아래 코드에서 어느 부분을 수정해 주어야 할까요?
헬로앱스 (www.helloapps.co.kr)
LED 제어 응용 실습
33
스케치 코드
LED 의 점멸주기를 수정하여면 아래 코드에서 어느 부분을 수정해 주어야 할까요?
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
헬로앱스 (www.helloapps.co.kr) 34
아두이노 프로그램의
구조
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
35
프로그램 구조
아두이노 프로그램은 기본적으로 아래의 구조를 가집니다 .void setup() {
}
void loop() {
}
블록 코드 스케치 코드
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
36
프로그램 구조
Setup 함수는 가장 먼저 실행되며 한번만 실행됩니다 .void setup() {
}
void loop() {
}
블록 코드 스케치 코드
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
37
프로그램 구조
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
38
프로그램 구조
Loop 함수는 Setup 함수 실행이 끝난 후 실행되며 , 아두이노 보드에 전원이 공급되는 한 무한히 반복하여 실행됩니다 .
void setup() {
}
void loop() {
}
블록 코드 스케치 코드
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
39
프로그램 구조
헬로앱스 (www.helloapps.co.kr) 40
응용 실습
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
41
블록 코드
디지털 13 번 핀에 연결된 LED 소자를 0.5 초간 3 번 점멸 한 후 , 항상 꺼져 있 도록 기존 프로그램을 수정해 봅니다 .?
헬로앱스 (www.helloapps.co.kr)
아두이노 프로그램의 구조
42
스크립트 코드
디지털 13 번 핀에 연결된 LED 소자를 0.5 초간 3 번 점멸 한 후 , 항상 꺼져 있 도록 기존 프로그램을 수정해 봅니다 .void setup() {
}
void loop() {
DigitalWrite(13, HIGH) Delay(1000)
DigitalWrite(13, LOW) Delay(1000)
}