powerpoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_plc... · 2018. 11....

53
로봇 제어 명령어 6-1 모터 연결하기 6-2 모터 속도 제어하기 6-3 모터 방향 제어하기 6-4 라이브러리 함수 제작하기 6-5 라이브러리 함수 활용하기 6-6 로봇 기본 동작 제어 실습 6-7 장애물 회피 자율 주행 구현하기 6-8 키패드 함수 구현하기 6-9 키패드 로봇 조종기 06

Upload: others

Post on 17-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇 제어 명령어

6-1 모터연결하기6-2 모터속도제어하기6-3 모터방향제어하기6-4 라이브러리함수제작하기6-5 라이브러리함수활용하기6-6 로봇기본동작제어실습6-7 장애물회피자율주행구현하기6-8 키패드함수구현하기6-9 키패드로봇조종기

06

Page 2: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

1. 모터연결선확인하기

06

아두이노와 PLC를이용한 IoT구현실습

2

2핀 케이블왼쪽 모터

2핀 케이블오른쪽 모터

Page 3: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

2. 모터핀위치확인하기

06

아두이노와 PLC를이용한 IoT구현실습

3

모터2 (오른쪽 모터) 모터1 (왼쪽 모터)

Page 4: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

3. 왼쪽모터케이블을MOTOR1 단자에연결하기

06

아두이노와 PLC를이용한 IoT구현실습

4

Page 5: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

4. 빨간색케이블선이보드안쪽으로가도록연결

06

아두이노와 PLC를이용한 IoT구현실습

5

Page 6: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

5. 오른쪽모터케이블을MOTOR2에연결

06

아두이노와 PLC를이용한 IoT구현실습

6

오른쪽 모터

왼쪽 모터

Page 7: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

6. 빨간색선이보드안쪽으로오도록연결

06

아두이노와 PLC를이용한 IoT구현실습

7

Page 8: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

7. 최종연결결과

06

아두이노와 PLC를이용한 IoT구현실습

8

Page 9: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

8. 로봇실습주의사항

06

아두이노와 PLC를이용한 IoT구현실습

9

바퀴가 위로 올라오도록본체를 그림과 같이세워 놓습니다.

바퀴가 움직이면 로봇이책상에서 떨어질 수있습니다.

Page 10: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 1 모터연결하기

8. 로봇실습주의사항

06

아두이노와 PLC를이용한 IoT구현실습

10

Page 11: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

11

Page 12: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

12

디지털 04번

디지털 05번

디지털 06번

디지털 07번 모터 드라이브회로

왼쪽 모터

오른쪽 모터

Page 13: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

13

디지털 04번

디지털 05번

디지털 06번

디지털 07번 모터 드라이브회로

왼쪽 모터

오른쪽 모터

왼쪽모터

오른쪽모터

Page 14: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

14

디지털 04번

디지털 05번

디지털 06번

디지털 07번 모터 드라이브회로

왼쪽 모터

오른쪽 모터

왼쪽 모터

오른쪽 모터

모터의회전속도를PWM으로제어

Page 15: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

15

디지털 04번

디지털 05번

디지털 06번

디지털 07번 모터 드라이브회로

왼쪽 모터

오른쪽 모터

왼쪽 모터

오른쪽 모터

모터의회전방향을결정

Page 16: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

1. 모터제어를위한아두이노핀설명

06

아두이노와 PLC를이용한 IoT구현실습

16

Page 17: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

2. 왼쪽모터속도제어하기

06

아두이노와 PLC를이용한 IoT구현실습

17

디지털 04번

디지털 05번

왼쪽 모터

왼쪽 모터

모터의속도제어(PWM 방식)

PWM 방식이기 때문에 디지털 핀에 연결되어있지만 AnalogWrite 명령어를 사용해야 함

Page 18: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

2. 왼쪽모터속도제어하기

06

아두이노와 PLC를이용한 IoT구현실습

18

void setup(){}

void loop(){

AnalogWrite(5, 200)delay(2000)

AnalogWrite(5, 0)delay(2000)

}

PWM 방식이기 때문에 디지털 핀에 연결되어있지만 AnalogWrite 명령어를 사용해야 함

Page 19: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 2 모터속도 제어하기

3. 왼쪽모터속도변화시키기

06

아두이노와 PLC를이용한 IoT구현실습

19

void setup(){}

void loop(){

for (int i = 0; i < 255; i++){

AnalogWrite(5, i)delay(50)

}}

AnalogWrite 명령어에는0 ~ 255 값을 입력할 수 있음

Page 20: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 3 모터방향 제어하기

1. 왼쪽모터회전방향제어하기

06

아두이노와 PLC를이용한 IoT구현실습

20

디지털 04번

디지털 05번

왼쪽 모터

왼쪽 모터

디지털 04번핀의값이HIGH : 0V ~ 5V 전압생성LOW : -5V ~ 0V 전압생성

전진

후진

Page 21: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 3 모터방향 제어하기

1. 왼쪽모터회전방향제어하기

06

아두이노와 PLC를이용한 IoT구현실습

21

void setup(){}

void loop(){

//정방향 회전DigitalWrite(4, HIGH)AnalogWrite(5, 200)delay(2000)

AnalogWrite(5, 0)delay(1000)

//역방향 회전DigitalWrite(4, LOW)AnalogWrite(5, 200)delay(2000)

AnalogWrite(5, 0)delay(1000)

}

Page 22: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

1. 왼쪽모터제어용함수

06

아두이노와 PLC를이용한 IoT구현실습

22

void RobotWrite(int left){

left_power = abs(left)AnalogWrite(5, left_power)

if (left >= 0)DigitalWrite(4, HIGH)

elseDigitalWrite(4, LOW)

}

Page 23: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

2. 기존예제에함수통합

06

아두이노와 PLC를이용한 IoT구현실습

23

void RobotWrite(int left){

left_power = abs(left)AnalogWrite(5, left_power)

if (left >= 0)DigitalWrite(4, HIGH)

elseDigitalWrite(4, LOW)

}

//위쪽에 함수 코드 추가

void setup(){

}

void loop(){

//정방향 회전RobotWrite(200)delay(2000)

RobotWrite(0)delay(1000)

//역방향 회전RobotWrite(-200)delay(2000)

RobotWrite(0)delay(1000)

}

Page 24: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

3. 양쪽모터를모두사용하는함수

06

아두이노와 PLC를이용한 IoT구현실습

24

void RobotWrite(int left, int rght){

left_power = abs(left)right_power = abs(right)

AnalogWrite(5, left_power)AnalogWrite(6, right_power)

if (left >= 0)DigitalWrite(4, HIGH)

elseDigitalWrite(4, LOW)

if (right >= 0)DigitalWrite(7, HIGH)

elseDigitalWrite(7, LOW)

}

Page 25: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

4. 양쪽모터를모두사용하는함수활용예제

06

아두이노와 PLC를이용한 IoT구현실습

25

void RobotWrite(int left, int right){...}

void setup(){}

void loop(){

RobotWrite(200, 200)delay(1000)

RobotWrite(-200, -200)delay(500)

RobotWrite(-200, 200)delay(1000)

}

1초간 전진

1초간 후진

1초간 회전

Page 26: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

5. 함수를완벽한 C언어문법을적용하여별도의파일로작성

06

아두이노와 PLC를이용한 IoT구현실습

26

#include<Arduino.h>

void RobotWrite(int left, int right){

int left_power = abs(left);int right_power = abs(right);analogWrite(5, left_power);analogWrite(6, right_power);

if (left >= 0)digitalWrite(4, HIGH);

elsedigitalWrite(4, LOW);

if (right >= 0)digitalWrite(7, HIGH);

elsedigitalWrite(7, LOW);

}

Page 27: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

6. 별도의파일로작성된코드를 RobotWrite.h파일로저장

06

아두이노와 PLC를이용한 IoT구현실습

27

◾ 기본적으로 C:\사용자\로그인 이름\문서\Arduino\Libraries 폴더가 표시된다.

◾ 기본 폴더 경로를 수정하지 말고 현재 표시된 경로에서 작업을 해야 한다.

◾ 파일을 저장하는 창이 표시되면, 폴더에서 RobotWrite 라는 이름으로 폴더를 새로 생성한다.

◾ 새로 생성된 폴더로 이동한 후에, RobotWrite.h 이름으로 현재의 라이브러리 함수를 파일로 저장한다.

Page 28: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 4 라이브러리 함수제작하기

7. RobotWrite폴더생성후, RobotWrite.h파일로저장

06

아두이노와 PLC를이용한 IoT구현실습

28

파일형식이 *h 로 되어있는 지 확인한다.

Page 29: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 5 라이브러리 함수활용하기

1. 기존예제에서코드상단에아래의명령어추가

06

아두이노와 PLC를이용한 IoT구현실습

29

#include<RobotWrite.h>

Page 30: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 5 라이브러리 함수활용하기

2. 로봇의동작을제어하는예제

06

아두이노와 PLC를이용한 IoT구현실습

30

#include<RobotWrite.h>

void setup(){}

void loop(){

RobotWrite(200, 200)delay(1000)

RobotWrite(-200, -200)delay(500)

RobotWrite(-200, 200)delay(1000)

}

기존 예제에서함수 정의 부분을 제거하고라이브러리를 사용하도록#include 추가

Page 31: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 5 라이브러리 함수활용하기

3. SPL 편집기에내장된로봇내장함수

06

아두이노와 PLC를이용한 IoT구현실습

31

Page 32: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 5 라이브러리 함수활용하기

4. SPL 편집기에내장된로봇내장함수활용예제

06

아두이노와 PLC를이용한 IoT구현실습

32

void setup(){}

void loop(){

DriveWrite(200, 200)delay(1000)

DriveWrite(-200, -200)delay(500)

DriveWrite(-200, 200)delay(1000)

}

Page 33: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 6 로봇 기본동작 제어실습

1. 기본속도제어명령만으로간단한실습가능

06

아두이노와 PLC를이용한 IoT구현실습

33

종이컵

로봇 출발 위치 로봇 도착 위치

Page 34: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 6 로봇 기본동작 제어실습

1. 기본속도제어명령만으로간단한실습가능

06

아두이노와 PLC를이용한 IoT구현실습

34

난이도가 낮은 미션 난이도가 보통인 미션

Page 35: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 7 장애물 회피자율주행 구현하기

1. PSD 거리센서를아날로그 0번핀에연결

06

아두이노와 PLC를이용한 IoT구현실습

35

PSD 거리센서

아날로그0번 핀

Page 36: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 7 장애물 회피자율주행 구현하기

2. 장애물을만나면다음동작구동

06

아두이노와 PLC를이용한 IoT구현실습

36

센서 읽기

If 장애물을 만나면

1초간 후진1초간 회전

0.1초간 전진

반복

Page 37: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 7 장애물 회피자율주행 구현하기

3. 장애물을만나면회피한후, 자율주행하는코드

06

아두이노와 PLC를이용한 IoT구현실습

37

void loop(){

a = AnalogRead(0)

if (a > 300){

DriveWrite(-200, -200)Delay(1000)

DriveWrite(0, 200)Delay(1000)

}else

DriveWrite(200, 200)

Delay(100)}

Page 38: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 7 장애물 회피자율주행 구현하기

4. 프로젝트실습

06

아두이노와 PLC를이용한 IoT구현실습

38

로봇이 전진할 때 헤드라이트를 켜시오 (컬러 LED바 활용)

로봇이 후진할 때 비상등을 켜시오 (컬러 LED바 활용)

로봇이 회전할 때 LED 셀이 한쪽 방향으로 이동하도록 하시오

로봇이 후진할 때 간단한 멜로디가 나오도록 하시오

Page 39: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

1. 키패드센서연결하기

06

아두이노와 PLC를이용한 IoT구현실습

39

키패드 센서 모듈을 아날로그 0번에연결합니다.

Page 40: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

1. 키패드센서연결하기

06

아두이노와 PLC를이용한 IoT구현실습

40

Page 41: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

2. 키패드센서값확인하기

06

아두이노와 PLC를이용한 IoT구현실습

41

void setup(){}

void loop(){

a0 = AnalogRead(0)PrintLine(a0)delay(100)

}

Page 42: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

3. 키패드센서값기록하기

06

아두이노와 PLC를이용한 IoT구현실습

42

Page 43: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

4. 키패드버튼을누르면번호가출력되는기능구현

06

아두이노와 PLC를이용한 IoT구현실습

43

Page 44: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

4. 키패드버튼을누르면번호가출력되는기능구현

06

아두이노와 PLC를이용한 IoT구현실습

44

void loop(){

pin = 0a = AnalogRead(pin)

if (608 < a && a < 628)PrintLine(1)

else if (797 < a && a < 816)PrintLine(2)

else if (a> 895 && a<915)PrintLine(3)

else if (a> 666 && a<686)PrintLine(4)

else if (a> 724 && a<744)PrintLine(5)

Delay(100)}

Page 45: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

5. 번호를리턴하는함수로제작하기

06

아두이노와 PLC를이용한 IoT구현실습

45

void loop(){

a = KeyPad(0)PrintLine(a)delay(100)

}

int KeyPad(int pin){

res = -1a = AnalogRead(pin)

if (608 < a && a < 628)res = 1

else if (797 < a && a < 816)res = 2

else if (a> 895 && a<915)res = 3

else if (a> 666 && a<686)res = 4

else if (a> 724 && a<744)res = 5

return res}

Page 46: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

6. 키패드함수를라이브러리로추가하기

06

아두이노와 PLC를이용한 IoT구현실습

46

#include<Arduino.h>

int KeyPad(int pin){

int res = -1;int a = analogRead(pin);

if (608 < a && a < 628)res = 1;

else if (797 < a && a < 816)res = 2;

else if (a> 895 && a<915)res = 3;

else if (a> 666 && a<686)res = 4;

else if (a> 724 && a<744)res = 5;

return res;}

Page 47: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

7. 별도의파일로작성된코드를 KeyPad.h파일로저장

06

아두이노와 PLC를이용한 IoT구현실습

47

◾ 기본적으로 C:\사용자\로그인 이름\문서\Arduino\Libraries 폴더가 표시된다.

◾ 기본 폴더 경로를 수정하지 말고 현재 표시된 경로에서 작업을 해야 한다.

◾ 파일을 저장하는 창이 표시되면, 폴더에서 KeyPad 라는 이름으로 폴더를 새로 생성한다.

◾ 새로 생성된 폴더로 이동한 후에, KeyPad.h 이름으로 현재의 라이브러리 함수를 파일로 저장한다.

Page 48: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

7. 별도의파일로작성된코드를 KeyPad.h파일로저장

06

아두이노와 PLC를이용한 IoT구현실습

48

파일형식이 *h 로 되어있는 지 확인한다.

Page 49: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

8. 키패드라이브러리함수사용하기

06

아두이노와 PLC를이용한 IoT구현실습

49

#include<KeyPad.h>

void setup(){}

void loop(){

a = KeyPad(0)PrintLine(a)delay(100)

}

Page 50: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 8 키패드 함수구현하기

9. 키패드함수로오르간연주장치만들기

06

아두이노와 PLC를이용한 IoT구현실습

50

#include<KeyPad.h>

void setup(){}

void loop(){

a = KeyPad(0)

if (a == 1)tone(3, 262, 200)

else if (a == 2)tone(3, 294, 200)

else if (a == 3)tone(3, 330, 200)

else if (a == 4)tone(3, 349, 200)

else if (a == 5)tone(3, 392, 200)

delay(100)}

Page 51: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 9 키패드 로봇조종기

1. 키패드버튼으로로봇조종하기

06

아두이노와 PLC를이용한 IoT구현실습

51

Page 52: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 9 키패드 로봇조종기

2. 키패드버튼별동작정의하기

06

아두이노와 PLC를이용한 IoT구현실습

52

Page 53: PowerPoint 프레젠테이션vulkan.co.kr/doc_arduino_02/004/아두이노_PLC... · 2018. 11. 22. · 로봇제어명령어 06 - 1 모터연결하기 2. 모터핀위치확인하기

로봇제어명령어

06 - 9 키패드 로봇조종기

3. 로봇조종기능완성하기

06

아두이노와 PLC를이용한 IoT구현실습

53

#include<KeyPad.h>

void loop(){

a = KeyPad(0)

if (a == 1)DriveWrite( 0 , 200)

else if (a == 2)DriveWrite( 200 , 200)

else if (a == 3)DriveWrite( 0 , 0)

else if (a == 4)DriveWrite( -200 , -200)

else if (a == 5)DriveWrite( 0 , 200)

delay(100)}