14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... ·...

19
아두이노 프로그래밍 들어가기 프로그래밍 준비하기 아두이노 프로그래밍 기초 PC와 아두이노간에 통신하기 참조

Upload: others

Post on 19-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 들어가기

프로그래밍 준비하기

아두이노 프로그래밍 기초

PC와 아두이노간에 통신하기

참조

Page 2: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

프로그래밍 준비하기1

| 아두이노 프로그래밍 들어가기

| 프로그래밍 준비하기

아두이노를 프로그래밍 하기 위해서는 아두이노 IDE를 설치해야합니다.

아두이노 홈페이지(http://arduino.cc/)에 다운로드 페이지로 이동해 운영체제에 맞는 파일을다운로드해 설치해줍니다.

Page 3: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

프로그래밍 준비하기1

아두이노는 스케치로 작성한 프로그램이 실행됩니다. 스케치는 C, C++로 작성합니다.

Page 4: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

프로그래밍 준비하기1

스케치에서 코드를 작성할때 꼭 추가해줘야 하는 필수 함수 2개가 있는데, 바로 setup, loop 입니다. 아두이노가 켜지면 먼저 setup이 실행되고, 이 후 loop가 계속 반복해서 돌아갑니다. 스케치는C, C++로 작성하지만 아두이노 IDE가 잘 갖춰져있어서 간단하게 프로그래밍을 작성할 수 있습니다.

Page 5: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

프로그래밍 준비하기1

<그림 1> 아두이노 동작 과정

아두이노가 동작하는 과정을 살펴보면 <그림 1>과 같습니다.

▪ 스케치 작성

아두이노 IDE를 이용해 스케치를 작성합니다.

▪ C/C++ 파일 변환

작성한 스케치가 잘못된 곳이 없는지 확인합니다. 제대로 작성했다면 C/C++ 파일의 필요한부분이 추가됩니다.

▪ hex 파일로 컴파일

C/C++ 파일을 아두이노가 실행할 수 있는 hex 파일로 변환합니다.

▪ 아두이노에 업로드

hex 파일을 아두이노에 업로드합니다. 업로드가 완료되면 아두이노에서 프로그램이 실행됩니다.

Page 6: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

| 아두이노 프로그래밍 기초

요리를 하는 경우 재료와 도구가 필요하듯이 프로그래밍에서도 재료와 도구가 필요합니다. 변수, 상수 그리고 함수가 프로그래밍의 재료와 도구라 할 수 있습니다.

파일 – 예제 – 01.Basics에 Blink를 선택합니다.

Page 7: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

▪ 변수

Page 8: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

변수란 값을 담는 일종의 그릇입니다. int는 정수 값을 담는 변수의 한 종류를 뜻합니다.

“=” 기호는 우측의 값을 좌측에 넣으라는 뜻입니다. 여기서는 13을 led 변수에 넣었습니다.

“;” 기호는 한 줄이 완료되었다고 표시하는 것입니다.

Page 9: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

만약 위에 표시된 코드에서 8이라고 적힌 것을 모두 수정하고 싶다고 가정해봅시다.

13으로 변경하고 싶은 경우 일일이 값을 수정해줘야 합니다.

Page 10: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

하지만 변수를 사용하는 경우 변수의 값만 변경하면 위와 같이 쉽게 사용할 수 있습니다.하지만 변수를 사용하는 경우 변수의 값만 변경하면 위와 같이 쉽게 사용할 수 있습니다.

또한 필요에 따라 led를 매번 변경할 수 있습니다.

Page 11: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

▪ #define

Page 12: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

#define은 매크로 상수를 선언하는 명령어입니다. 여기서 상수란 처음 한번만 값을 할당하고사용하는 것을 말합니다. 여기서는 13의 값을 갖는 LED라는 매크로 상수를 선언한 것입니다.

매크로 상수는 마지막에 “;” 기호를 입력할 필요가 없습니다.

Page 13: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

아두이노 프로그래밍 기초2

| 함수

함수란 특정한 동작을 시키거나 또는 필요한 값을 받기 위해 호출하는 것입니다.

Page 14: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

PC와 아두이노간에 통신하기3

| PC와 아두이노간에 통신하기

PC와 아두이노 간에 통신을 할 수 있습니다.

| 아두이노 코드 작성하기| 아두이노 코드 작성하기

<코드 1> 아두이노에서 PC로 메세지 보내기

void setup(){Serial.begin(9600);

}void loop(){Serial.println("Hello PC");delay(1000);}

Page 15: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

PC와 아두이노간에 통신하기3

▪ Serial.begin

시리얼 통신을 하기 위해 PC와 아두이노 간 보드 레이트(Baud rate)를 설정하는 명령어입니다. 서로 주고 받는 속도를 동일하게 맞춰주는 것과 같습니다.

Page 16: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

PC와 아두이노간에 통신하기3

▪ Serial.println

아두이노에서 PC로 메세지를 보내는 명령어입니다. 메세지 끝에 줄바꿈 기호가 붙어서 보내집니다. Serial.print는 줄바꿈 기호 없이 메세지만 보냅니다.

| 확인하기

시리얼 모니터에 아두이노가 보내는 메세지를 확인할 수 있다.

Page 17: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

PC와 아두이노간에 통신하기3

| 아두이노 코드 작성하기

<코드 2> PC에서 아두이노로 메세지를 보내면 기본 LED를 껐다 켜기

#define LED 13void setup(){pinMode(LED, OUTPUT);Serial.begin(9600);

}void loop(){if(Serial.available()){

if(Serial.read() == 'a'){digitalWrite(LED, HIGH);

delay(1000);digitalWrite(LED, LOW);}

}}}

Page 18: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

PC와 아두이노간에 통신하기3

▪ Serial.available

시리얼 통신으로 들어온 데이터가 있는지 확인하는 명령어입니다.

▪ Serial.read

시리얼 통신으로 들어온 데이터 중 앞에 1 바이트(Byte)를 읽어오는 명령어입니다. 읽은 데이터는지워지고, 만약 데이터가 없다면 -1이 반환됩니다.

| 확인하기

시리얼 모니터에서 “a”를 입력해서 보내면 아두이노의 기본 LED가 켜졌다 꺼집니다.

Page 19: 14강 아두이노 프로그래밍 들어가기koreasw.org/wp-content/uploads/2016/09/4... · 2아두이노프로그래밍기초 | 아두이노프로그래밍기초 요리를하는경우재료와도구가필요하듯이프로그래밍에서도재료와도구가필요합니다

4 참조

아두이노 홈페이지http://arduino.cc

| 참조