본문 바로가기

아두이노(arduino)

아두이노 Serial.print 함수(시리얼 프린트 함수)

Serial.print(시리얼 프린트)가 뭔가요?

예를 하나들어볼께요. 만약에 우리가 세탁기를 하나 만들었다고 가정을 해보겠습니다.

이 세탁기는 전원버튼 이외에 시작버튼 정지 버튼 밖에 없습니다.

세탁을  시작하고나서 세탁시간이 얼마나 남았는지 그리고 세탁도중 무슨일이 일어나도 원인을 찾을 수가 없습니다.

그래서 우리는 세탁기에 입을 달아주기로 합니다.

 

 

 

위 사진과 아래 사진을 비교해보면 세탁기의 상태라던지 세탁기가 하고 있는 행동들이 얼마나 시간이 흘렀는지 혹은 남아있는지, 또는 어떠한 이상이 있는지 우리는 눈으로 볼 수가 있습니다. 

 

 

아두이노 역시 단순히 아두이노에 각종 센서(입력)와 엑추에이터 및 스피커 led등(출력)을 설치하고 구동시켜도 작동은 하고 있지만 얼마나 원한는 행동을 했는지 중간에 문제가 생기면 왜 문제가 발생했는지 알 수 가 없습니다.

 

그래서 우리는 아두이노의 정보를 Serial.print() 함수를 통해 알 수가 있습니다.

 

요약 :  아두이노를 통해 일어나고 있는 정보를 사람이 시각적으로 판단할 수 있도록 사용하는 함수.

 

 

빨간색 박스 아이콘 클릭

 

 

 

 

Serial.print 함수 사용하기 전 설정

 

Serial.print 함수를 사용하기 전 아두이노에게 먼저 사용하겠다고 이야기를 해줘야 합니다.

 

 

void setup() {

 

Serial.begin(9600);   // 시리얼 프린터를 사용하겠다. 

}

 

근데 궁금한게 있습니다. (9600) 괄호안 9600 이라는 숫자가 궁금합니다.

해당 숫자는 아두이노가 컴퓨터로 정보를 보낼때 어느정도 속도로 보낼지 설정하는 것입니다.

9600이라는 숫자는 초당 9600비트를 보내는 속도이며 시리얼 포트를 통해 문자 하나를 보내는데 10비트를 필요로 합니다.  1초에 9600이면 9600/10=960

 

1초에 보낼 수 있는 문자의 갯수는 960개가 되겠습니다.

 

* 비트 ( 0 또는 1을 담을 수 있는 최소 단위)는데이터를 저장할 수있는 가장 적은 단위.

 

 

Serial.print 사용하기

간단히 증가하는 숫자를 프린트 할 수 있도록 코드를 작성했습니다.

 

 

 

 

시리얼모니터를 확인해볼까요?

 

 

 

 

 

숫자가 차례대로 올라가는 걸 확인할 수 있습니다. 

 

하나 꼭 지켜야할 사항이 있습니다.

 

만약에 내가 시리얼모니터에 나타내는 정보의 속도를 초당 9600으로 한다고 설정했으면 시리얼 모니터에도 똑같이 설정해줘야지 정상 작동합니다.

시리얼 모니터 아래에 보드레이트를 아두이노 스케치에서 설정한 9600으로 맞춰줍니다.

아주 중요합니다.

 

만약에 보드레이트(정보를 보내는 속도)를 다르게하면 어떻게 되는지 살펴볼까요?

 

 

위 영상과 같이 ???가 뜨거나 혹은 정보 자체가 안나올 수도 있고 때로는 이상한 문자도 출력하게 됩니다.

그러니 보드레이트 속도는 소스코드와 동일하게 설정한 후 사용하시기 바랍니다.

 

 

Serial.print와 Serial.println의 차이점

백번 이야기 하는 것 보다 한번 보는것이 더 이해가 빠르겠죠?

 

print를 사용했을 경우

 

 

println을 사용했을 경우

 

 

위 그림에서 보듯이 print는 줄을 바꾸지 않고 왼쪽에서 오른쪽으로 출력이 되는것을 의미하며 println은 한번 출력을 하고 난뒤 줄을 바꾸고 바꾼 줄에서 다시 출력 하는 것을 의미합니다.