# 시리얼 통신
시리얼(Serial) 통신은 직렬 통신이라고 하며, 데이터를 순서대로 전송하는 방식이다. 예를 들어 숫자 5를 직렬 통신으로 전송한다면, 5의 이진수인 0101 신호를 하나의 포트에서 0, 1, 0, 1을 순서대로 보낸다.
직렬 통신과 반대 개념인 병렬(Parallel) 통신은 여러개의 포트에 신호를 동시에 보내는 방법이다.
시리얼 통신은 USB(Universal Serial Bus), 이더넷(Ethernet), MIDI 에서 사용된다.
시리얼 통신을 하기 위해서는 신호를 보내는 포트(Transmit Port, Tx)와 신호를 받는 포트(Receive Port, Rx)를 구분하며, 통신 속도(Baud Rate, 보 레이트)를 먼저 정의해야 한다.
컴퓨터와 아두이노간의 시리얼 통신은 9,600baud 를 사용한다.
아두이노와 MIDI간의 시리얼 통신은 31,250baud 를 사용한다.
# 시리얼 모니터에 메시지 출력하기
목표 : 시리얼 모니터에 간단한 메시지를 출력한다.
준비물 : 아두이노 키트
## 코드
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Hi! ");
Serial.print("My name is ");
Serial.println("Gil-Dong");
Serial.print("What's your name?");
}
# 버튼 누른 횟수를 시리얼 모니터에 출력하기
목표 : 버튼을 누른 횟수를 시리얼 모니터에 출력한다.
준비물 : 아두이노 키트, 푸쉬버튼, 10k옴 저항
## 하드웨어
## 코드
int count = 0;
void setup(){
pinMode(2, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(2) == 1){
count = count + 1;
Serial.print("count: ");
Serial.println(count);
delay(200);
}
}
## 시뮬레이션
# 버튼을 누르면 10초 카운트 다운 하기