아두이노

본문 바로가기
사이트 내 전체검색


아두이노
아두이노

1. 시리얼 통신

페이지 정보

작성자 관리자 댓글 0건 조회 2,369회 작성일 18-09-09 19:32

본문

1. 시리얼 통신

 

시리얼 통신은 직렬통신을 나타낸다. 연속적으로 통신채널이나 컴퓨터 버스를 거쳐 한번에 하나의 비트 단위로 데이터를 전송하는 과정을 말한다.


그림입니다.
원본 그림의 이름: CLP00006fe40ea9.bmp
원본 그림의 크기: 가로 429pixel, 세로 299pixel


아두이노 우노의 경우 디지털핀보드의 Pin0(Rx)과 Pin1(Tx)을 통해서 또는 USB 연결을 통해 시리얼통신을 할 수 있다. 따라서 시리얼통신을 할 경우 Pin 0,1을 디지털 입출력으로 사용할 수 없다.


시리얼통신 명령어은 다음과 같다.


1. Baud Rate

2. Serial.begin(통신속도)

3. Serial.print(출력값)

4. Serial.println(출력값)

5. Serial.available()

6. Serial.read()

7. Serial.readString()

8. Serial.end()



실습을 위해 다음과 같이 회로도를 구성해 보자.


그림입니다.
원본 그림의 이름: CLP00002a4c4e20.bmp
원본 그림의 크기: 가로 546pixel, 세로 415pixel


[코드]를 클릭하여 소스코드를 확인한다.


그림입니다.
원본 그림의 이름: CLP00002a4c0001.bmp
원본 그림의 크기: 가로 563pixel, 세로 343pixel

하단의 Serial Monitor를 클릭하면 해당 포트에 정보가 전달되는 것을 알 수 있다.


그림입니다.
원본 그림의 이름: CLP00002a4c0002.bmp
원본 그림의 크기: 가로 570pixel, 세로 149pixel


1) Baud Rate(통신속도)


Baud Rate는 직렬 전송의 변조 속도를 1초간에 전송되는 신호의 수로 나타낸 값을 말한다. 단위는 bps(Bit per Second)이다. Baud Rate 은 여러 값을 설정할 수 있지만 통신속도에 크게 영향을 받지 않는 경우 일반적으로 9600bps를 사용한다.

Baud Rate 값이 높을수록 송,수신 속도가 빠르지만, 값이 너무 높거나 양쪽의 설정 값이 다른 경우 데이터 수신에 문제가 발생한다.


2) Serial.begin(통신속도);


시리얼통신의 시작을 알린다. 매개변수는 시리얼 통신을 위한 전송속도를 몇 bps로 할 것인지 설정한다.(보통, 9600)


그림입니다.
원본 그림의 이름: CLP00002a4c0003.bmp
원본 그림의 크기: 가로 448pixel, 세로 99pixel


3) Serial.print(출력값); / Serial.println(출력값);


시리얼통신의 데이터를 출력한다. 출력값은 시리얼 모니터로 확인이 가능하다.

println은 print함수와 동일하지만, 출력이후에 개행문자(\n)를 추가하여 출력한다.

그림입니다.
원본 그림의 이름: CLP00002a4c0006.bmp
원본 그림의 크기: 가로 433pixel, 세로 159pixel


그림입니다.
원본 그림의 이름: CLP00002a4c0007.bmp
원본 그림의 크기: 가로 579pixel, 세로 97pixel

그림입니다.
원본 그림의 이름: CLP00002a4c0004.bmp
원본 그림의 크기: 가로 423pixel, 세로 167pixel


그림입니다.
원본 그림의 이름: CLP00002a4c0005.bmp
원본 그림의 크기: 가로 383pixel, 세로 149pixel




4) Serial.available()


시리얼포트에 수신되어 저장되어 있는 데이터의 바이트 수를 반환한다. 시리얼포트에 수신된 데이터는 64바이트까지 버퍼에 저장된다. 시리얼 통신으로 데이터를 받았는지 확인할 때 많이 쓰이며, 데이터를 받았다면 데이터 개수를 반환, 데이터 개수를 받지 않았을 경우 0을 반환한다.


그림입니다.
원본 그림의 이름: CLP00002a4c0008.bmp
원본 그림의 크기: 가로 444pixel, 세로 353pixel


그림입니다.
원본 그림의 이름: CLP00002a4c0009.bmp
원본 그림의 크기: 가로 558pixel, 세로 201pixel

아래의 데이터 입력창에 문자를 입력하고 [보내기]를 클릭하면 데이터 개수가 보이게 된다.


5) Serial.read()


시리얼통신 수신버퍼에서 첫 번째 문자을 읽어 반환한다. 수신 버퍼가 비어 있을 경우 –1을 반환한다.

그림입니다.
원본 그림의 이름: CLP00002a4c000a.bmp
원본 그림의 크기: 가로 556pixel, 세로 479pixel


문자열로 출력할 경우에 변환선언을 해주면 화면에 출력된다.


Serial.println((char)Serial.read());


그림입니다.
원본 그림의 이름: CLP00002a4c000b.bmp
원본 그림의 크기: 가로 554pixel, 세로 213pixel


6) Serial.readString()


시리얼통신 수신버퍼에서 첫 번째 문자를 읽어 반환한다. 수신버퍼가 비어있을 경우 –1을 반환한다.


그림입니다.
원본 그림의 이름: CLP00002a4c000c.bmp
원본 그림의 크기: 가로 559pixel, 세로 481pixel


A를 입력하고 [보내기] 버튼을 클릭한다.


LED ON

Serial : 1

A



7) Serial.end()


시리얼 통신을 종료할 경우 사용한다.


댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.