우리는 앞의 과정에서 시리얼통신의 기본을 이용한 간단한 실험을 진행했었다. 시리얼통신을 이용하면 컴퓨터와 아두이노사이에 데이터를 송수신 할 수 있다. 이것을 이용하여 디지털포트의 입출력을 조절하는 것 또한 가능하다. 이번 단원에서는 시리얼 통신의 신호를 이용하여 LED를 제어하는 실험을 할 것이다.
실험목표
아두이노 시리얼 통신을 이용하여 LED를 제어한다.
필요부품
Arduino Uno, 브레드보드, 점프선, LED 2개, 330Ω저항 2개
시리얼통신을 하기 위한 기본적인 명령어들은 앞의 단원에서 모두 다루었다. 바로 다음 예제를 실습해보도록 하자.
다음과 같이 브레드보드에 330옴 저항과 빨간색LED 그리고 초록색LED를 연결한다. LED의 (+) 부분은 아두이노 보드의 6번핀과 7번핀에 각각 연결한다. LED의 (-) 부분은 저항과 직렬 연결 후 GND에 연결해준다. LED다리 중 구부러진 쪽이 (+)이다. 극성에 주의하며 연결하도록 하자.
프로그램 작성
if(data == '1');이전에도 한번 다뤘던 if문이지만 조건식에서 조금 생소한 것이 있을 것이다. 바로 1 앞뒤로 붙어있는 작은 따옴표이다.
위의 디지털 입력편에서는 작은 따옴표를 쓰지 않았다. 그 부분과의 차이는 바로 HIGH 혹은 LOW의 상태를 받느냐와 데이터값을 받느냐의 차이이다. 디지털 입력에서는 if(data == 1)로 썼었는데 여기서 1은 HIGH상태를 표시한 값이다. 하지만 시리얼통신에서는 HIGH라는 상태를 받는 것이 아니라 1이라는 char형 데이터값을 수신받는 것이다. 이처럼 if문에서 데이터값을 수신받을 때는 그 값을 작은따옴표로 묶어준다.
Serial.println();앞의 단원에서 시리얼통신을 다룰 때에는 Serial.print(); 함수만 사용했었다. 뒤의 ln의 유무는 단지 줄바꿈의 의미이다. Serial.print(); 함수는 문자 출력 후 줄바꿈을 하지 않지만 뒤에 ln을 붙여준다면 문자 출력 후 줄바꿈을 해주게 된다.
'아두이노' 카테고리의 다른 글
4.2 아두이노 아날로그 입력 (0) | 2019.12.18 |
---|---|
4.1 아두이노 아날로그 포트의 이해 (0) | 2019.12.18 |
3.3 디지털입력 (0) | 2019.12.18 |
3.2 아두이노 디지털 출력 초음파 센서 제어하기 (0) | 2019.12.18 |
3.2 아두이노 디지털 출력 7-segment 응용문제 (0) | 2019.12.18 |
댓글