본문 바로가기

공대생 주석마루/아두이노 UNO

(13) 시리얼(Serial) 통신

-시리얼 통신이란

아두이노와 디바이스 간의 양방향 통신을 말한다.

디지털 핀 0번(RX)과 1번(TX) 핀을 이용해 통신을 할 수 있다.

단, 송수신 용도로 사용할 때는 다른 목적으로 두 핀을 사용하면 안된다.



또한 보드 내의 RX,TX 라이트를 통해 송수신 상황을 알 수 있다.

RX는 수신 상황을 TX는 송신(전송) 상황을 말한다.

단,이번 프로젝크에서는 핀 사용이 아닌 송수신 통신만 한다.


구성품은
아두이노 우노, 브렛보드, LED, 연결선, 저항 입니다.

-코드는
int led1=LOW;
int led2=LOW;
int led3=LOW;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
}
void loop() {
  // put your main code here, to run repeatedly:
if(Serial.available())
{
  char re = Serial.read();
  if(re=='1')
  {
    led1=!led1;
    digitalWrite(11,led1);
    Serial.println("1 ON");
   
  } 
   else if(re=='2')
   {
    led2=!led2;
    digitalWrite(10,led2);
    Serial.println("2 ON");
  
  }
   else if(re=='3')
   {
    led3=!led3;
    digitalWrite(9,led3);
    Serial.println("3 ON");
   
  }
 
 
}
}

LED1~3를 LOW로 초기화

11번 핀을 LED1

10번 핀을 LED2

9번 핀을 LED3 로 두고 제어

Serial.available()은 보드(변환칩)에 송신 받은 값이 저장되어 있을 때

TRUE(1)를 나타낸다.

입력 받은 값이

'1'이면 LED1(적색) 점/멸등 "1 ON"  프린트

'2'이면 LED2(녹색) 점/멸등 "2 ON" 프린트

'3'이면 LED3(청색) 점/멸등 "3 ON" 프린트

이 되도록 설정

단, 1,2,3을 숫자가 아닌 문자로 받기 때문에 char(문자형) 변수를 사용

또한 '3', '2', '1' 처럼 구분을 해줘야 한다.


-회로도



-동영상