지금까지의 문자, 문자열 입력에 대해 생각해보자.
마우스 이전에는 모두 키보드로 입력 했다.
키보드 입력의 형태는 알고 있듯이 두개다.
콘솔모드에서 입력 후 엔터, 혹은 엔터 없이 입력이다.
엔터 없이 입력의 좋은 예는 게임이다.
여러분들이 게임 할때 미사일 누르고 엔터 이러지는 않는다. 그냥 미사일 이다.
조이스틱 우로 누르고 엔터 하면 이상 하지 않는가.
그렇다 엔터의 유무가 대표적인 입력의 형태이다.
아두이노에서 비슷하다.
본인이 시리얼 입력을 할때 엔터 없이 할것인지 엔터 입력하고 입력을 받을지 정해야 한다.
그런데 아두이노 시리얼입력은 엔터를 기본 입력으로 하기 때문에 그냥 입력 + 엔터를 하자.
void setup()
{
Serial.begin(115200);
}
// the loop function runs over and over again forever
void loop()
{
if(Serial.available())
{
char a = Serial.read();
switch(a)
{
case 'x':
Serial.println("x.");
break;
case 'y':
Serial.println("y.");
break;
default:
Serial.println("값을 입력하세요.");
break;
}
}
delay(100);
}
|
위 코드의 문제점은 무엇일까 ?
입력하고 엔터를 치기 때문에 엔터가 연속해서 입력 된다.
그래서 값을 입력하세요가 여려번 출력되는것이다.
이제 다르게 생각해보자.
시리얼모니터는 컴퓨터와 아두이노가 하는 아주기본적인 통신이다.
컴퓨터 - USB- COM- 시리얼 - 아두이노의 순서가 될것이다.
컴퓨터 프로그램이(시리얼모니터)가 아두이노와 통신을 담당하는 프로그램이다.
다른 통신프로그램을 사용한다고해도 비슷하다.
사용자가 엔터를 입력했다고해서 꼭 아두이노에게 보내라는법은 없다.
마치 거짓말 쟁이 처럼 다른값을 보낼수도 있다.
그렇다 PC프로그램에서 보내지 않으면 위코드는 문제가 없다.
만약 아주 정직한 PC프로그램이 있다면 무조건 보낼것이다.
이런경우는 아두이노쪽에서 처러해야 한다.
꼭 아두이노에서 처리할 필요는 없지만, 그래도 아두이노에서 처리하는법도 배워두는것도 좋을것이다.
'아두이노' 카테고리의 다른 글
아두이노 문자와 문자열-#5 (0) | 2020.06.20 |
---|---|
아두이노 문자와 문자열-#4 (0) | 2020.06.20 |
아두이노 문자와 문자열-#2 (0) | 2020.06.20 |
아두이노 문자와 문자열-#1 (0) | 2020.06.20 |
아두이노 이더넷 클라이언트의 시작-#6 (0) | 2020.06.10 |
댓글