์๋ ์๋ฆฌ์ผ ํต์ ์ ์ด๋ฐ๋ถ์ ์์ธํ ์๊ฐ ํ์ด์ผ ํ๋๋ฐ ํ๋ก์ธ์ฑ+์๋์ด๋ ธ ์ฐ๊ฒฐ์ ํ๋ฉด์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ฉด ์๋ ๊ฒ ๊ฐ์์ ์ด์ ์์ผ ์๊ฐํ๊ฒ ๋์๋ค์. ์ผ์ ๋ถํ๋ฅผ ๋ค๋ฃฐ๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋๋ฐ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋์ค์ ๋ธ๋ฃจํฌ์ค ํต์ ์์๋ ์ฌ์ฉํ๋๊น ์์ ์ฐธ๊ณ ์ถ์ฒ๋ฅผ ๋งํฌํ ์๋์ด๋ ธ ํํ์ด์ง์ ๋ ํผ๋ฐ์ค๋ฅผ ์ ์ดํด๋ณด์๊ธฐ ๋ฐ๋์. ์ค๋์ ์๋ฆฌ์ผํต์ ๊ธฐ๋ณธ๋ง ์๊ฐํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆผ์์ ๋ณด๋ฏ์ด ์๋์ด๋ ธ IDE ์๋ฆฌ์ผ๋ชจ๋ํฐ์์ ์๋์ด๋ ธ๋ก "123"์ด๋ ๊ฐ์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์๋์ด๋ ธ๋ ์ด ๊ฐ์ ์ฝ์ด์ ๋ค์ ์๋์ด๋ ธ IDE๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์๋ฆฌ์ผ๋ชจ๋ํฐ๋ก ๊ทธ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
void setup() {
Serial.begin(9600); //์๋ฆฌ์ผ ํต์ 9600 ํต์ ์๋๋ก ์์
}
void loop() {
if (Serial.available() > 0) { //๋ฐ์ดํฐ๊ฐ ์์ ๋๋์ง ํ์ธ
char ch = Serial.read(); //1byte ์ฝ์
Serial.println(ch); //1byte ์ฝ์๊ฑฐ ์ถ๋ ฅ
}
}
๊ธฐ๋ณธ ์์ค์ ์ฃผ์์ ๋ค ๋ฌ์์ต๋๋ค. ์ฃผ์๋ง ์ฝ์ผ์๋ฉด ๋์ถฉ ์ด๋ป๊ฒ ํต์ ์ด ์ด๋ฃจ์ด์ง๋ ์์๊ฒ ์ง์.
์ ์ด๋ฏธ์ง์์ 123์ ๋ณด๋ด๋ฉด ์๋์ด๋
ธ์์ 1, 2, 3 ์ด๋ ๊ฒ ํ๋์ฉ ์๋์ด๋
ธ IDE์ ์ถ๋ ฅ๋๋ ์ด์ ๊ฐ ๊ณผ์ฐ ๋ญ๊น์. ์ด๊ฒ์ 123์ ์ ์กํ๋๋ฐ byte ๋จ์๋ก ์ฝ๊ณ char(๋ฌธ์ํ) ๋ณ์ ch์ 1byte ๋ฌธ์๊ฐ ์ ์ฅ๋๋๋ฐ "123" ๊ฐ์์ ์์ฐจ์ ์ผ๋ก '1','2','3'์ ์ ์ฅํ๊ณ ์์์ฒ์ผ๋ก Serial.println('1'), Serial.println('2'), Serial.println('3') ์ด๋ ๊ฒ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค.
์ด๊ฑธ ์ ์ํ์ผ๋ก ๋ฐ์ผ๋ฉด
์ ํจ์์ค์์ abailable()ํจ์๋ง ์ข ๋ ์ดํด๋ณด๋๋ก ํ์ฃ .
์์ )
๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋์ง ์ํ๊ฐ์ ํ์ธํ๋๊ฒ available()ํจ์๋ผ๊ณ ํ์ฃ . ๊ทธ๋ฌ๋ฉด ์ ํํ ์ด๋ค๊ฐ์ด ๋ค์ด์๋์ง ์๋ฆฌ์ผ ๋ชจ๋ํฐ์ ์ถ๋ ฅ์ ํด๋ดค์ต๋๋ค. 'a'๋ผ๋ ๋ฌธ์๋ฅผ ๋ณด๋ด๋ฉด ์๋์ด๋
ธ๋ available()ํจ์์ ์์ ์ด ๋๋ฉด ์์ ๋์๋ค๊ณ 1์ ์ํ๊ฐ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด if๋ฌธ์ด ์ฐธ์ด๊ณ ์ฒซ๋ผ์ธ์์ ์ถ๋ ฅ์ด '1'์ด ๋์ค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ค์ read()ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ ์์ ์ผ๋ก ์๋ฆฌ์ผ๋ชจ๋ํฐ๋ก 'a'๊ฐ ๋๋ฒ์งธ๋ผ์ธ์ ์ถ๋ ฅ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐ์ดํฐ๋ฅผ read()ํจ์๋ก ์ฝ์๋ค๋ฉด ๋ค์ available()ํจ์์ ์ํ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์๊ธฐ ๋๋ฌธ์ ์ง์์ง๊ณ ์ํ๊ฐ์ '0'์ด ๋ฉ๋๋ค ์ฆ, read()์ผ๋ก ์ฝ๊ณ ๋๋ฉด์ abailable()์ ์ด๊ธฐํ ์ํ๊ฐ ๋๋ ๊ฒ์ด์ฃ . ๊ทธ๋์ ์ธ๋ฒ์งธ ๋ผ์ธ์ด 0์ด ์ถ๋ ฅ ๋ฉ๋๋ค.
์ฝ๊ฒ ๋งํด์, ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ฉด available() ํจ์๋ '1'์ ์ํ๊ฐ ๋๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๋๋ฉด '0'์ ์ํ๊ฐ ๋ฉ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด ์ข ๋ ์ฝ๊ฒ ์ดํด๊ฐ ๋์๊ฒ ์ง์.
begin(), available(), read(), print(), println() ์ ๋๋ง ์ฐ์ ์์๋์๊ณ ์๋์์ ์๊ฐํ๋ ํจ์๋ค ์ฝ๊ธฐ์ ์ถ๋ ฅ์ ๋ํด ๋ช๊ฐ์ง ์๊ฐ๋ง ํ๊ณ ๋๋จธ์ง๋ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์. ๋์ค์ ์ผ์๊ฐ์ ์ด๋ป๊ฒ ์ฝ๊ณ ์ด๋ป๊ฒ ์ถ๋ ฅํ ์ง ๊ทธ ์ผ์์ ๋ฐ๋ผ์ ํํ์ด ์ข ๋ฌ๋ผ์ง๋๊น์ ๋ ํผ๋ฐ์ค๋ฅผ ๊ผญ ๋ด์ฃผ์ ์ผ ํด์. ๊ฐ์์๋ฎฌ๋ ์ดํฐ์์๋ ์ 5๊ฐ์ง ํจ์๋ง ๊ธฐ๋ณธ ๋ฒ ์ด์ค๋ก ์ดํดํ์๊ณ ์ฌ์ฉํ์๋ฉด ์ฝ๊ฒ ์คํํ์ค ์ ์์๊บผ์์.
์ฃผ์ :
์ ๊ทธ๋ฆผ์์ ๋ณด๋ ๊ฒ ์ฒ๋ผ print()ํจ์๋ '7'์ด๋ ๊ฐ์ ์ ์กํ ๋ '55'๋ผ๋ ์์คํค์ฝ๋๊ฐ์ผ๋ก ์ ์กํ๊ณ ๊ทธ ๊ฐ์ด ์ถ๋ ฅ๋๋ ๊ฑธ ๋ณด์ค๊บผ์์. ํ์ง๋ง write()ํจ์๋ '7'์ ๊ทธ๋๋ ์ ์กํ๊ณ ๋ฐ๋์ชฝ์์๋ '7'์ ์์คํค์ฝ๋๊ฐ์ผ๋ก ์ฌ๊ธฐ๊ณ ์ถ๋ ฅ๋๋ค๋ ์ฐจ์ด์ ์ ๋ณด์ ๋๋ค. ๋ ์ฐจ์ด๋ฅผ ์ ๋น๊ตํ์ธ์.
๊ทธ์ธ๋ ์ฌ๋ฌ ํจ์๋ค์ด ์๋๋ฐ ์ค๋ ์๊ฐํ ํจ์๋ค๋ ๋ช๊ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ฐ์์๋ฎฌ๋ ์ดํฐ์์๋ ๊ทธ๋ฅ ๋จ์ํ๊ฒ read(), print(), println()์ ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ์ ๋๋ง ํฉ๋๋ค.
- if(Serial.available()) { }
- while(!Serial){ }
- Serial.read()
- Serial.print()
- Serial.println()
์ด์ ๋ ํจ์๋ง ์ธ์๋์๋ฉด ๊ธฐ๋ณธ์ ์ธ ํต์ ์ ํ ์ ์์ต๋๋ค. ๋์ค์ ์ผ์๋ฅผ ์ด์ฉํ ํน์ ๊ฐ์ด๋ ๋ถํ์ ์ ์ดํ๋ ํต์ ์ ํ ๊ฒฝ์ฐ์๋ ๋ ํผ๋ฐ์ค๋ฅผ ์ดํด ๋ณด์ ์ผ ๊ฒ ์ง๋ง ์ฐ์ ์ ์๋ฆฌ์ผํต์ ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง๋ง ์ดํด๋ณด์ธ์.