• 검색 결과가 없습니다.

아두이노프로그래밍

N/A
N/A
Protected

Academic year: 2021

Share "아두이노프로그래밍"

Copied!
42
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

아두이노 프로그래밍

1

강사 : 김영준 목원대학교 겸임교수 헬로앱스 (www.helloapps.co.kr)

2 일차 – Part1 아날로그 명령어

(2)

헬로앱스 (www.helloapps.co.kr) 2

아날로그 센서의 연결

(3)

헬로앱스 (www.helloapps.co.kr)

아두이노 올인원 센서 쉴드

3

아날로그 센서

초보자용 아두이노 올인원 센서 쉴드

모터 2 핀 x 2 아날로그 3 핀 디지털 3 핀 I2C 4

시리얼 4 핀

브래드 보드가 필요없는 초보자용 아두이노 보드

(4)

헬로앱스 (www.helloapps.co.kr)

아날로그 센서 연결하기

4

센서 연결하기

아날로그 핀

아날로그 부품은 아날로그 핀에 연결합니다 .

아날로그 핀에는 0 번 ~ 5 번 까지

번호가 표시되어 있습니다 . (A0 ~ A5)

아날로그 핀에 부품을 연결할 때에는 핀 번호를 확인해야 합니다 .

(5)

헬로앱스 (www.helloapps.co.kr)

아날로그 센서 연결하기

5

센서 연결하기

아날로그 핀

0 번 (A0) 5 번

(A5)

(6)

헬로앱스 (www.helloapps.co.kr)

아날로그 센서 연결하기

6

센서 연결하기

아날로그 핀

0 번 (A0)

아날로그 핀에 부품들을 연결할 때에는 0 번 핀부터 연결합니다 .

(7)

헬로앱스 (www.helloapps.co.kr)

아날로그 센서 연결하기

7

센서 연결하기

아날로그 핀

4 번 5 번

아날로그 4 번과 5 번 핀은 다른 부품 (I2C 핀 사용 ) 과 충돌되므로 , LCD 나 LED 체인등 I2C 4 핀에 부품이 연결되어 있는 경우에는 사용할 수 없습니다 .

(8)

헬로앱스 (www.helloapps.co.kr) 8

조도 센서 연결 실습

(9)

헬로앱스 (www.helloapps.co.kr)

조도센서 연결 실습

9

실습

실습 ) 아래의 조도센서를 아날로그 0 번 핀에 연결해 봅니다 .

조도 센서

(10)

헬로앱스 (www.helloapps.co.kr)

조도센서 연결 실습

10

센서 연결하기

조도센서를 아날로그 0 핀에 연결합니다 .

(11)

헬로앱스 (www.helloapps.co.kr)

조도센서 연결 실습

11

센서 연결하기

조도센서를 아날로그 0 핀에 연결합니다 .

0 번

(12)

헬로앱스 (www.helloapps.co.kr) 12

아날로그 명령어

(13)

헬로앱스 (www.helloapps.co.kr)

아날로그 명령어

아날로그 핀에서 값을 읽어 올 때 사용하는 명령어

AnalogRead

13

아날로그 명령어

(14)

헬로앱스 (www.helloapps.co.kr)

아날로그 명령어

아날로그 핀에서 값을 읽어 올 때에는 핀번호와 값을 저장할 변수가 필요함

a = AnalogRead ( 핀번호 )

14

아날로그 명령어

(15)

헬로앱스 (www.helloapps.co.kr) 15

조도 센서값 출력하기

(16)

헬로앱스 (www.helloapps.co.kr)

조도 센서값 출력하기

0.1 초 간격으로 조도 센서의 값을 읽어와서 콘솔창에 출력해 봅니다 .

16

실습

void setup() {

}

void loop() {

a0 = AnalogRead(0)

}

나머지 기능을 완성해 봅니다 .

(17)

헬로앱스 (www.helloapps.co.kr)

조도 센서값 출력하기

0.1 초 간격으로 조도 센서의 값을 읽어와서 콘솔창에 출력해 봅니다 .

17

실습

void setup() {

}

void loop() {

a0 = AnalogRead(0) PrintLine(a0)

Delay(100) }

(18)

헬로앱스 (www.helloapps.co.kr)

조도 센서값 출력하기

18

실습

상단 메뉴의 가운데 있는 실행 버튼을 클릭하여 프로그램을 아두이노에 업로드 시 킵니다 .

프로그램을 실행한 후 , 콘솔창에 표시되는 결과를 확인해 봅니다 .

(19)

헬로앱스 (www.helloapps.co.kr)

조도 센서값 출력하기

아래 조건의 값을 기록합니다 .

19

실습

가장 밝았을 때의 값 가장 어두웠을 때의 값

평균 값

(20)

헬로앱스 (www.helloapps.co.kr) 20

어두워지면 저절로

켜지는 장치 만들기

(21)

헬로앱스 (www.helloapps.co.kr)

어두워지면 저절로 켜지는 장치

 부품 연결

디지털 13 번 핀에 LED 를 연결합니다 .

아날로그 0 번 핀에 조도센서를 연결합니다 .

21

(22)

헬로앱스 (www.helloapps.co.kr)

어두워지면 저절로 켜지는 장치

 아래의 코드에 조건 비교문을 추가해 봅니다 .

22

void setup() {

}

void loop() {

a0 = AnalogRead(0) PrintLine(a0)

Delay(100) }

(23)

헬로앱스 (www.helloapps.co.kr)

어두워지면 저절로 켜지는 장치

 아래의 코드에 if 비교 로직을 추가해 봅니다 .

23

void loop() {

a0 = AnalogRead(0) PrintLine(a0)

if () { } else { }

Delay(100) }

(24)

헬로앱스 (www.helloapps.co.kr)

어두워지면 저절로 켜지는 장치

 아래의 코드에 LED 명령어를 추가해 봅니다 .

24

void loop() {

a0 = AnalogRead(0) PrintLine(a0)

if (a0 < 600) {

} else { }

Delay(100) }

(25)

헬로앱스 (www.helloapps.co.kr)

어두워지면 저절로 켜지는 장치

 완성된 코드

25

void loop() {

a0 = AnalogRead(0) PrintLine(a0)

if (a0 < 600) {

DigitalWite(13, HIGH) }

else {

DigitalWite(13, LOW) }

Delay(100) }

(26)

헬로앱스 (www.helloapps.co.kr) 26

AnalogWrite

(27)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite

• AnalogWrite 명령어는 아날로그 이름이 붙어있지만 디지털 핀에 적용합니다 .

• 모든 디지털 핀에 사용할 수 있는 것은 아니고 , PWM 핀에만 사용할 수 있습니다 .

• 디지털 핀으로 가상으로 아날로그 처럼 값을 출력시킵니다 .

• 0 ~ 255 사이의 값을 입력하면 0V ~ 5V 사이의 가상 전압이 만들어 집니다 .

• 디지털 핀 중에서 3, 5, 6, 9, 10, 11 핀에만 사용 가능합니다 .

27

(28)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite

AnalogWrite 명령어를 사용할 수 있는 핀에는 ~ 표시가 있음

28

(29)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite

• PWM 은 필요한 전압을 0 과 1 의 간격을 조절하여 생성합니다 .

• 0 ~ 255 사이의 값을 입력하면 0V ~ 5V 사이의 가상 전압이 만들어 집니다 .

29

(30)

헬로앱스 (www.helloapps.co.kr) 30

AnalogWrite 로

밝기 조절하기

(31)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite 로 밝기 조절하기

• LED 를 PWM 이 지원되는 디지털 11 번 핀에 연결합니다 .

• [0-9] for 반복문 명령어를 추가합니다 .

• for 반복문 안에 그림과 같이 PrintLine 명령어와 Delay 를 추가해 봅니다 .

• LED 제어에 앞서 for 반복문을 테스트해 봅시다 .

• 아래 예에서는 for 반복문에 있는 변수 i 는 조건이 만족될 때 까지 1 씩 증가 합니다 .

31

(32)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite 로 밝기 조절하기

void setup() {

}

void loop() {

for (i = 1; i <= 10; i=i+1) {

PrintLine(i) Delay(100) }

}

32

(33)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite 로 밝기 조절하기

• LED 를 PWM 이 지원되는 디지털 11 번 핀에 연결합니다 .

• 반복문을 이용하여 LED 의 밝기를 256 단계로 증가시켜 봅니다 .

• for 반복문의 블록 안에 [1-1-7] AnalogWrite 명령어를 추가합니다 .

• AnalogWrite 의 핀번호를 11 로 수정하고 입력창에 i 를 입력해 줍니다 .

• for 반복문과 AnalogWrite 입력창의 값을 그림과 같이 변경해 줍니다 .

33

(34)

헬로앱스 (www.helloapps.co.kr)

AnalogWrite 로 밝기 조절하기

34

void setup() {

}

void loop() {

for (i = 1; i <= 10; i=i+1) {

AnalogWrite(11, i) Delay(10)

} }

(35)

헬로앱스 (www.helloapps.co.kr) 35

조도 센서값에 따라 밝기가 조절되는

LED 만들기

(36)

헬로앱스 (www.helloapps.co.kr)

밝기가 조절되는 LED

• LED 를 PWM 이 지원되는 디지털 11 번 핀에 연결합니다 .

• 밝으면 LED 를 어둡게 합니다 .

• 어두우면 LED 를 밝게 합니다 .

• LED 의 밝기는 조도 센서값과 반대가 되는 것에 유의합니다 .

36

(37)

헬로앱스 (www.helloapps.co.kr)

밝기가 조절되는 LED

37

void setup() {

}

void loop() {

a0 = AnalogRead(0) a0 = 1023 - a0

AnalogWrite(11, a0) Delay(100)

}

(38)

헬로앱스 (www.helloapps.co.kr) 38

값을 변환시키는

매핑 함수 (map)

(39)

헬로앱스 (www.helloapps.co.kr)

Map 함수

• Map 함수는 값을 다른 범위로 매핑 변환하는 기능을 수행합니다 .

• 아래 예에서 a1 은 0 ~ 10 범위에서 0~100 의 범위로 변환됩니다 .

• 따라서 a1 에는 90 이 저장됩니다 .

• a2 는 0 ~ 10 범위에서 10 ~ 0 의 범위로 변환됩니다 .

• 따라서 a2 에는 1 이 저장됩니다 .

39

(40)

헬로앱스 (www.helloapps.co.kr)

Map 함수

40

void setup() {

a = 9

a1 = map(a, 0, 10, 0, 100) PrintLine(a1)

a2 = map(a, 0, 10, 10, 0) PrintLine(a2)

}

void loop() {

}

(41)

헬로앱스 (www.helloapps.co.kr)

Map 함수로 LED 밝기 조절하기

• LED 를 PWM 이 지원되는 디지털 11 번 핀에 연결합니다 .

• 밝으면 LED 를 어둡게 합니다 .

• 어두우면 LED 를 밝게 합니다 .

• LED 의 밝기는 조도 센서값과 반대가 되는 것에 유의합니다 .

41

(42)

헬로앱스 (www.helloapps.co.kr)

Map 함수로 LED 밝기 조절하기

42

void setup() {

}

void loop() {

a0 = AnalogRead(0)

a0 = Map(a0, 0, 1023, 1023, 0) AnalogWrite(11, a0)

Delay(100) }

참조

관련 문서

따라서 오늘날 녹색 에너지 전문가가 하는 일을 이해하며 , ‘풍력을 이용한 등대’를 만 들어 봄으로써 녹색 에너지 전문가에게 필요한 역량을 무엇인지 탐색해 보고 자

LED(Light Emitting

STEAM 프로그램의 효율적인 적용을 위하여 프로그램을 운영하시는 선생님들께서 는 학생들 스스로 문제를 파악하고 해결할 수 있도록 도와주는 역할을 해주시기

요즘 예술가들은 작품에 다양한 과학 기술을 접목해서 움직이거나 변화하는 모습도 나타낸다고 하는데, 고흐의 작품을 실제로 빛나는 것처럼 만들 수 있 는

발광다이오드(LED)를 사용하여

Ä White LED (Sold-State Lighting) Ä High Power (RF) Devices (Military).. Nichia’s Blue LED with GaN

나만의 라이트 아트 작품을 소개합니다 라이트아트 픽토그램 발표회 –.

Wrapping ... LED Strip   LED 것을 말한다 따라서. 수명이 약 만 시간으로 장수명이다 또한 충격이 강하고 안정적이기에 반영구적으로 사용할 10. 째로 고체발광으로서