시리얼 통신(Serial communication)

아두이노를 통해 경험하고 배우려는 것은 아두이노 조작법이 아니라 디지털문해력이다. 혹자는 이렇게 말한다. “내연기관을 몰라도 운전하는데 전혀 지장이 없는 것처럼 개발자를 제외하고는 코딩을 몰라도 디지털 세상을 사는데 아무런 문제가 없다”고... 그런데 그 말을 틀렸다.

지금까지는 글로 세상을 표기하고 표기한 글을 읽어 세상을 알 수 있었다면 앞으로의 글은 과거의 지식을 해체하고 새로운 지식체계의 조합과 통합을 확인할 수 있는 글로 진화할 것이다. 코딩은 지식체계를 새로운 조합으로 시도해 볼 수 있고 또 통합할 수 있는 글로 된 도구다. 세상을 글로 쓰고 읽던 시대를 넘어 세상을 글로 동작 시킬 수 있는 시대가 되었다. 그래서 코딩을 모른다는 것은 읽고 쓸 줄 모르는 것처럼 이미 다가온 4차산업혁명 시대에 세상을 읽고 쓰고 동작 시키는 글을 모르는 디지털문맹이란 의미이다. 낯설더라도 코딩이라는 것과 인사를 하자!

시리얼 통신(Serial communication)

시리얼 통신 또는 UART Universal Asynchromous Receiver/Transmitter는 통신 방법이 마치 사람이 대화 하는 것과 같은 원리를 가지고 있다. 시리얼 통신을 하기 위해서는 Rx(데이터 수신)과 Tx(데이터 송신) 그리고 GND가 아래 그림과 같이 서로 연결이 되어야 하며 비동기 통신이기 때문에 둘 간의 직렬 전송의 변조 속도 baud rate(1초간에 전송되는 신호의 수)를 일치 시켜주어야 한다. 9600bps bps(bit per second)란 초당 전송할 수 있는 bit가 9600이란 의미이다.

시리얼 통신은 아두이노와 컴퓨터 또는 아두이노와 다른 디바이스간 통신에 사용할 수 있으며 컴퓨터와는 USB로 연결하거나 디지털 핀 0(RX)과 디지털 핀 1(TX) 그리고 GND를 이용하여 통신할 수 있다. 물론 이 기능을 사용하는 중에는 디지털 핀0과 핀1은 디지털 입출력 핀으로 사용할 수 없다. 아두이노 우노의 경우 시리얼 통신은 아래 점선표시 부분이다.

Serial 통신 예제

그럼 시리얼 통신을 이용해서 컴퓨터로 아두이노에 “C”라는 문자를 보내고 다시 메아리처럼 C라는 문자를 컴퓨터로 받는 통신을 해보자.

 

Serial 통신 예제 프로그램

unsigned char c; // variable to store the received character

void setup() {

Serial.begin(9600); // setup serial

}

void loop() {

if(Serial.available() > 0){

c = Serial.read(); // read the character

Serial.write(c); // echo

}

}

 

----------------------

  • 내용 중 DIY 따라 하기가 잘 안 되거나 질문이나 아두이노 등 교구에 대한 문의가 있다면 직접crebizias@naver.com 로 질문하시면 답변 드리겠습니다.

 

  • 강좌를 위한 설문을 하고 있습니다. 설문(https://goo.gl/3S23du)에 참여하시면 기사에 수록하지 못한 자료와 연습문제, 오프라인 강좌정보를 보내 드리도록 하겠습니다.
저작권자 © 디트NEWS24 무단전재 및 재배포 금지