1. 시리얼 통신
* Seeial 클래스
- 아두이노에서 시리얼 통신을 수행하기 위해 필요한 클래스
* Serial.begin()
* Serial.print()
* Serial.println()
* Serial.write()
* Serial.read()
* Serial.available()
- 아두이노 시리얼 통신을 수행하기 위해 필요한 Serial 클래스의 메소드
* read()와 available() 의 차이점
2. 문자 송수신
// 키보드 문자로 부저 제어
#define BUZZER 13
void setup() {
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
Serial.println("Please type k, i, m");
}
void loop() {
if (Serial.available()) {
char c = Serial.read();
if (c == 'k') {
tone(BUZZER, 262, 500);
} else if (c == 'i') {
tone(BUZZER, 330, 500);
} else if (c == 'm') {
tone(BUZZER, 392, 500);
}
}
}
3. 문자열 송수신
// 키보드 문자열로 LED 점멸 제어
#define LED 6
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
Serial.println("Please enter <on> or <off>");
}
void loop() {
if (Serial.available()) {
String s = Serial.readStringUntil('\n'); // 수신된 문자열 데이터
if (s.equals("on")) { // 수신된 데이터가 'on' 일 때
digitalWrite(LED, 1);
}
if (s.equals("off")) { // 수신된 데이터가 'off' 일 때
digitalWrite(LED, 0);
}
}
}
* String 클래스
* Serial.readSringUtil()
* 시리얼 모니터의 전송 모드
* equals()
4. 정수 송수신
// 수신된 데이터 중 정수 3개 추출
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
int r = Serial.parseInt();
int g = Serial.parseInt();
int b = Serial.parseInt();
if (Serial.read() == '\n') {
Serial.print("red: ");
Serial.println(r);
Serial.print("green: ");
Serial.println(g);
Serial.print("blue: ");
Serial.println(b);
}
}
}
* Serial.parseInt()