시리얼 입력

시리얼 입력

이 문서에서는 시리얼 입력을 사용하는 방법에 대해 다룬다.

결선도

회로는 PWM 출력 예제와 동일하게 구성한다.

예제 코드

const int LED = 11;
void setup()
{
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available()){
        int input = Serial.parseInt();
        analogWrite(LED, input);
    }
}

컴파일

Ctrl+R 또는 스케치 메뉴의 확인/컴파일을 눌러 컴파일을 진행한다.

업로드

Ctrl+U 또는 스케치 메뉴의 업로드를 눌러 업로드를 진행한다.

시리얼 모니터 실행

Ctrl+Shift+M 또는 툴 메뉴의 시리얼 모니터를 눌러 시리얼 모니터를 표시한다. 시리얼 모니터의 입력창에 값을 작성한 뒤 전송을 누르면 아두이노로 입력값이 입력된다.

실행 결과

0부터 255 사이의 숫자를 입력할 경우 해당하는 숫자에 맞는 밝기로 아날로그 출력이 수행되는 것을 확인할 수 있다.

코드 설명

const int LED = 11;

프로그램에서 사용할 전역변수를 설정한다. 변동되지 않도록 const 키워드를 붙여 상수화 시킨다. 위의 변수는 PWM 출력을 수행할 핀 번호인 11번을 LED라는 이름의 변수로 저장하기 위한 코드이다.

void setup()
{
    Serial.begin(9600);
}

setup 함수에서 Serial의 전송속도를 9600bit로 설정한다. 시리얼 모니터의 보드레이트와 일치시켜야 원하는 결과를 받을 수 있다.

if(Serial.available()){
    
}

loop 함수는 지속적으로 반복되기 때문에 입력값이 들어온 경우만 원하는 코드를 수행하기 어려우므로 Serial.available 함수를 사용하여 입력값이 발생하였는지 여부를 파악한다. Serial.available 함수는 시리얼을 통해 입력된 데이터의 바이트 수를 돌려준다. 따라서 0이 아니면 조건을 충족하게 되므로 if 내부의 코드가 실행된다. (참고 : C언어 계열에서는 0이 거짓, 나머지 숫자는 참으로 인식한다)

int input = Serial.parseInt();
analogWrite(LED, input);

Serial.parseInt 함수는 시리얼 입력값을 int 형태로 변환하여 입력하는 명령이다. 이외에도 여러 가지 입력 명령들이 존재한다.

analogWrite 함수를 사용하여 입력값을 PWM 출력핀에 설정한다.

Last updated