코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-08-13 15:10:14
통신기능은 물리적인 입력과 출력을 디지털 세계로 연결하여 보다 더 많은 활용을 가능케 합니다.
그중 시리얼 모니터는 아두이노를 이용한 다양한 프로젝트에서 핵심적인 역할을 담당합니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | 아두이노 호환보드 |
2 | 브레드보드 | 1 | 브레드보드 |
3 | 220Ω 저항 | 3 | 저항 |
4 | 점퍼 케이블 | 6 | 점퍼 케이블 |
5 | LED | 3 | 빨강:1 노랑:1 초록:1 |
부품명 | 오렌지 보드 | 220Ω 저항 | 브레드보드 | 점퍼케이블 | Red LED |
파트 | x1 | x3 | x1 | x6 | x1 |
품명 | Yellow LED | Green LED |
파트 | x1 | x1 |
아래의 코드를 아두이노 업로드 합니다.
/*
Simple LED sketch by Kocoa FAB - www.kocoafab.cc
*/
int redLED = 11; // 적색 LED 를 11번 핀에 연결
int yellowLED = 10;// 노란색 LED를 10번 핀에 연결
int greenLED = 8;// 초록색 LED를 8번 핀에 연결
void setup()
{
pinMode(redLED, OUTPUT); // 11번핀을 출력으로 설정
pinMode(yellowLED, OUTPUT); //10번핀을 출력으로 설정
pinMode(greenLED, OUTPUT); //8번핀을 출력으로 설정
// 시리얼 통신을 준비합니다.
Serial.begin(9600); // (9600)의 통신속도로 통신을 시작합니다.
Serial.flush();
}
void loop()
{
String input = "";
// 시리얼 통신으로 문자를 입력하기 위한 준비를 합니다.
while (Serial.available() > 0)// 시리얼 입력이 있을때
{
input += (char) Serial.read(); // 한번에 한문자를 읽으면
delay(5); // 5밀리초 동안 대기하고 다음 문자를 읽을 준비를 합니다.
}
if (input == "1") // 만약 1 이라는 문자를 입력 받으면
{
digitalWrite(redLED, HIGH);// 적색을 켜고
digitalWrite(yellowLED, LOW); // 나머지를 끕니다.
digitalWrite(greenLED, LOW);
}
if (input == "2") // 만약 2라는 문자를 입력 받으면
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH); //황색을 켜고 나머지를 끕니다.
digitalWrite(greenLED, LOW);
}
if (input == "3")//만약 3이라는 문자를 입력 받으면
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW); // 초록색을 켜고 나머지를 끕니다.
digitalWrite(greenLED, HIGH);
}
}
소프트웨어 & 하드웨어 설명
1.사전 설명
Serial은 아두이노 보드와 컴퓨터가 시리얼 통신을 수행하기 위해 필요로 하는 클래스 입니다.
통신에 있어 물리적 연결방법은 수신은 RX핀(D0)핀 , 송신은 TX핀(D1)핀, 그리고 GND(그라운드)를 사용합니다.
아두이노 우노의 경우 0번과 1번 핀이나 usb연결을 통해 시리얼 통신을 할수 있는데 , 만약 시리얼 통신을 사용할 경우
0번과 1번핀은 다른 용도로 사용할 수 없게 됩니다.
2.스케치 설명
Serial.begin(9600); // (9600)의 통신속도로 통신을 시작합니다.
Serial.flush();// 초기화
Serial.begin은 통신을 위한 옵션을 설정하는 명령입니다.
따라서 () 안의 숫자는 통신 속도(보율)을 나타내며,
Serial.flush()의 경우 시리얼 상의 데이터가 남아있지 않도록 초기화 시키고 대기합니다.
String input = "";
String 클래스는 문자열을 다루기 위한 클래스로 , " " 안의 문자열을 입력 받습니다.
input += (char) Serial.read(); // 한번에 한문자를 읽으면
delay(5); // 5밀리초 동안 대기하고 다음 문자를 읽을 준비를 합니다.
입력받은 문자(char)를 읽고;
5밀리초 동안 대기합니다
지연 시간이 없을 경우 정상적인 값을 반환하지 않을 수 있기 때문입니다.
if (input == "1") // 만약 1 이라는 문자를 입력 받으면
{
digitalWrite(redLED, HIGH);// 적색을 켜고
digitalWrite(yellowLED, LOW); // 나머지를 끕니다.
digitalWrite(greenLED, LOW);
}
if (input == "2") // 만약 2라는 문자를 입력 받으면
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH); //황색을 켜고 나머지를 끕니다.
digitalWrite(greenLED, LOW);
}
if (input == "3")//만약 3이라는 문자를 입력 받으면
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW); // 초록색을 켜고 나머지를 끕니다.
digitalWrite(greenLED, HIGH);
}
}
적색/노란색/초록색 을 각각 1,2,3 의 입력으로 켜고 꺼지도록 설정하였습니다.
아두이노 보드에 업로드후 시리얼 모니터를 통해 각각의 경우를 입력해보세요.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!