-시리얼 통신이란
아두이노와 디바이스 간의 양방향 통신을 말한다.
디지털 핀 0번(RX)과 1번(TX) 핀을 이용해 통신을 할 수 있다.
단, 송수신 용도로 사용할 때는 다른 목적으로 두 핀을 사용하면 안된다.
또한 보드 내의 RX,TX 라이트를 통해 송수신 상황을 알 수 있다.
RX는 수신 상황을 TX는 송신(전송) 상황을 말한다.
단,이번 프로젝크에서는 핀 사용이 아닌 송수신 통신만 한다.
구성품은
아두이노 우노, 브렛보드, LED, 연결선, 저항 입니다.
-코드는
int led1=LOW;
int led2=LOW;
int led3=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);
}
// 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();
// 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=!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' 처럼 구분을 해줘야 한다.
-회로도
-동영상
'공대생 주석마루 > 아두이노 UNO' 카테고리의 다른 글
(15) LED RGB (2) | 2018.03.18 |
---|---|
(14) Seven Segment 7세그먼트 (0) | 2018.03.15 |
(12) DHT11 온습도센서 통신 (0) | 2018.03.10 |
(10-1) Servo motor를 적용한 Wiping Mechanism (0) | 2018.03.10 |
(11) cds cell(빛 감지) 센서 (0) | 2018.03.04 |