[아두이노] 아두이노와 PC 시리얼 통신




안녕하세요. 디바이스마트 대짜이찐입니다.


이번에는 PC와 아두이노간에 Serial 통신을

ComPortMaster 프로그램을 통해 해보겠습니다.



이전 포스팅~

https://devicemart.blogspot.com/2019/04/comportmaster.html


시리얼 통신

시리얼 통신(Serial Communication)은 한번에 한 비트씩 데이터를
지속적으로 주고 받는 직렬 통신을 의미합니다.
USB포트를 통해 PC에서 아두이노로 소스를 업로드하는 것
또한 시리얼 통신 입니다. (아두이노 D0,D1핀)



시리얼 통신을 통해 아두이노와 PC 혹은 다른 디바이스와 통신을 할 수 있습니다.
필요한 제품은 USB to TTL 컨버터와 아두이노, 점퍼선만 있으면 됩니다.
아두이노 - 컨버터 -PC로 연결해 줍니다.



제가 사용한 제품은 CH340G USB to TTL 컨버터 모듈 [SZH-EK092] 입니다.



점퍼가 포함되어 있어서 3V와 5V를 선택할 수 있는 제품입니다.






소스 코드




// SoftwareSerial 라이브러리 호출
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // SoftwareSerial 이름을 mySerial로 선언
// 2번핀 RX로, 3번핀을 TX로 설정
// 실제 연결하는 Device와 Rx, Tx는 cross 시켜서 연결


void setup()
{
// 통신속도 9600bps로 시리얼 통신 시작
Serial.begin(9600);
// 시리얼 통신 테스트 문자 출력
Serial.println("Serial converter test!!!");
// 통신속도 9600bps로 SoftwareSerial 시리얼 통신 시작
mySerial.begin(9600);
}
void loop()
{


if (mySerial.available()) // PC에서 데이터가 입력되면
  Serial.write(mySerial.read()); // 시리얼 모니터에 데이터를 출력
if (Serial.available()) // 시리얼모니터에서 데이터를 입력하면
  mySerial.write(Serial.read()); // PC로 데이터 전달


}



아두이노에는 Serial 통신 포트가 존재하고 있습니다.

바로 D0번과 D1번인데요 이 포트들은 하드웨어 시리얼이라고 불리며,

 PC에서 아두이노로 코드를 업로드할 때 사용되고 있습니다.

그래서 아두이노에 소스 코드 업로딩중에 다른 Device와 연결이 되어있다면,
아두이노로 소스 코드 업로드가 되지 않습니다.

그래서 아두이노에는 Serial 포트가 모자랄 때를 대비하여,

SoftwareSerial 라이브러리가 있습니다.
이 라이브러리를 사용하면 다른 디지털 핀으로 시리얼 통신이 가능합니다.



회로도


준비물: USB to TTL 컨버터, 아두이노, 점퍼선x 4


아두이노
USB to TTL 컨버터
비고
GND
GND
Ground
5V
Power
VCC
D2
Tx
mySerial Rx
D3
Rx
mySerial Tx

USB to TTL 컨버터의 Rx,Tx는 아두이노에서 

SoftwareSerial로 할당한 Rx,Tx와 Cross시켜서 연결해야합니다.


제대로 연결이 되었는지 확인해 보겠습니다.

장치 관리자에서 포트(COM & LPT)를 보시면
아두이노 Uno가 Com포트 16번에,
CH340칩을 쓰는 USB to TTL 컨버터는 Com포트 6번에 잡혔네요


그럼 아두이노 먼저 COM포트 16번을 잡아주세요.

그 이후 시리얼 모니터를 열어주시면, 이렇게 테스트 문자가 출력됩니다.




시리얼 모니터는 아두이노 IDE오른쪽 위 돋보기 모양을 클릭하시거나

툴 - 시리얼 모니터 혹은 Ctrl + Shift + M 을 누르시면 됩니다.



ComPortMaster도 실행시켜주신후 'COM6'을 선택합니다.
통신속도는 소스코드에서 한것과 같이 '9600'으로 맞춰주세요.
그리고 'Open port'를 클릭해줍니다. 
Send창에서 아두이노 쪽으로 보내실 데이터를 저처럼 미리 써도 됩니다.



ComPortMaster와 아두이노 시리얼 모니터를 통해,
데이터를 서로 제대로 주고 받는지 확인하시면 됩니다.

감사합니다.

댓글 쓰기

0 댓글