๋ชฉ์ฐจ
๊ธ์ ์์ํ๊ธฐ ์ ์ ๋ด๊ฐ ๋ํ์์ผ ๋ ๋ค์์์ผ๋ฉด ์ข์์ ๊ฐ์ ํ๋๊ฐ ์๋ค. ์ด์ฉ์ฑ ๊ต์๋๊ป์ ๊ฐ์ํด ์ฃผ์๋ ๊ฑด๋ฐ ํ๋ก๋ถํฐ ํ๋ํ๋ ์ค๋ช ํด ์ฃผ์๋ ์ง์ง ๋๋ฌด ์ข์ ์์์ด๋ค.
์๋์ด๋ ธ UNO ์ ๋ธ๋ฃจํฌ์ค ๋ชจ๋๊ณผ 0, 1๋ฒ์ ์ฌ์ฉํ๋ฉด ์ ๋๋ ์ด์
๊ฐ๋ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด ์๋์ด๋ ธ์ ๋ธ๋ฃจํฌ์ค ๋ชจ๋์ 0, 1๋ฒ์ ์๋ก ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์์ฑ ์ ์ปดํจํฐ์ ๋ถ๋ฆฌํ์ ๋๋ ๋ฌธ์ ๊ฐ ๋์ง ์๊ณ , ์๋์ด๋ ธ์ ์ฝ๋ฉ์ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์๋์ด๋ ธ์์ ํต์ ๋ฐฉ์์ ๋ํ์ ์ผ๋ก UART, I2C, SPI ๋ฐฉ์์ด ์๋ค. ํนํ UART๋ฅผ ์กฐ์ฌํ ์ฌ์ฉํด์ผ ํ๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋์ด๋ ธ UNO ๊ฐ์ ๊ฒฝ์ฐ UART๋ ํ ๊ฐ์ด๋ฉฐ, ๊ฐ๊ฐ 0๋ฒ ํ(RX:์์ ), 1๋ฒ ํ(TX:์ก์ )์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๋์ด๋ ธ๋ ์ด์ํ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. UART 0, 1๋ฒ ํ์ด ์ปดํจํฐ์ ์ฐ๊ฒฐ๋๋ USB ์ผ์ด๋ธ ๋ถ๋ถ๊ณผ ์ฐ๊ฒฐ๋ผ ์๋ค.
์ฐ๋ฆฌ๋ ์๋์ด๋ ธ์์ ์ถ๋ ฅ๋๋ ๊ฐ์ ์๋์ด๋ ธ serial monitor๋ฅผ ํตํด์ ํ์ธํ ์ ์๋ค. USB ์ผ์ด๋ธ์ ํตํด ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋์ง๋ง, ์ด USB ์ผ์ด๋ธ์ 0, 1๋ฒ๊ณผ ์ฐ๊ฒฐ๋ผ์๋ค. ์ ๋ฆฌํ์๋ฉด ์ปดํจํฐ์ ์๋์ด๋ ธ๋ฅผ ์ฐ๊ฒฐํ๋ ์๊ฐ ์ด๋ฏธ ์๋์ด๋ ธ์ ์ปดํจํฐ๋ ์๋ก serial ํต์ ์ ํ๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ธ๋ฃจํฌ์ค ๋ชจ๋์ 0, 1๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋น์ฐํ ์ถฉ๋ ๋๋ค. ํ์ง๋ง ๊ฐํน ์ด์ด ์ข์ ๋์ํ ์ ์์ง๋ง ์ฌ๋ฐ๋ฅธ ๋์์ด๋ผ๊ณ ํ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์๋์ด๋ ธ UNO๋ UART๋ฅผ ์ฌ์ฉํ ์ ์๋๊ฐ?
ํ๋๋ฐ์ ์๋ UART๋ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์, ์๋์ด๋ ธ๋ softwareserial๋ฅผ ์ฌ์ฉํด uart๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ช ๊ฐ๋ uart๋ฅผ ์ ์ธํด์ ์ฌ์ฉํ ์ ์์ง๋ง software๋ก ๊ตฌํ๋ผ์๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋๋ฆฌ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋์ด๋ ธ ์ฝ๋ฉ ํ ๋๋ softwareserial์ ์ฌ์ฉํ ์ ๋ฐ์ ์๊ณ , ์์ฑ ํ์ ํ๋์จ์ด serial์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๊ฒ์ ๋ํ ํ์ ๋์ค์ ์ฌ๋ฆฌ๋ ค๊ณ ํ๋ค.
*์๋์ด๋ ธ์ ๋ํ UART๋ฅผ ๋ ์๊ณ ์ถ์ผ์๋ฉด ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค.
์๋์ด๋ ธ UNO ์ ๋ธ๋ฃจํฌ์ค ๋ชจ๋(HC-05, HC-06) ์ฐ๊ฒฐ
์๋์ ๊ฐ์ด ์๋์ด๋ ธ์ ๋ธ๋ฃจํฌ์ค ๋ชจ๋์ ์ฐ๊ฒฐํ๊ณ , ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
์ฝ๋๋ ๊ต์ฅํ ๊ฐ๋จํ๋ค. ๋ธ๋ฃจํฌ์ค๋ก ์์ ๋ฐ์ ๊ฐ์ serial monitor์ ์ถ๋ ฅํ๋ ์ฝ๋์ด๋ค.
#include <SoftwareSerial.h>
#define BT_RXD 3
#define BT_TXD 2
SoftwareSerial bluetooth(BT_RXD, BT_TXD);
void setup() {
Serial.begin(115200); // ์ด์ ๊ธ ์ฐธ๊ณ
bluetooth.begin(115200); // ์ด์ ๊ธ ์ฐธ๊ณ
}
void loop() {
if (bluetooth.available()) {
Serial.write(bluetooth.read());
}
if (Serial.available()) {
bluetooth.write(Serial.read());
}
}
์ฌ๋ฐ๋ฅด๊ฒ ์ฐ๊ฒฐํ๊ณ ํ์จ์ด์ ์ฝ๋๋ฅผ ์ ํ๋ค๋ฉด, Arduino bluetooth controller๋ฅผ ์ค์นํด์ Terminal mode๋ก ํ ์คํธํ๋ค. Hello๋ฅผ ์ ๋ ฅํด๋ณด๋ฉด, Arduino IDE์ Serial monitor์์ ๊ฐ์ ํ์ธํ ์ ์๋ค.
HC-05, HC-06
๋ธ๋ฃจํฌ์ค ๋ชจ๋์ธ HC-05์ HC-06์์ LED๋ฅผ ํ์ธํ ์ ์๋๋ฐ, ์ด๋ state์ ๋ํ LED์ด๋ค.
LED ์ ๋ฉธ : ๊ธฐ๊ธฐ Pair ๊ฐ๋ฅ ์ํ
LED ๊บผ์ง : ์ฐ๊ฒฐ ์ํ
HC-05, HC-06์๋ VCC, GND, TX, RX ์ธ์๋ state, EN ๋จ์๊ฐ ์๋ค. state๋ ๋ธ๋ฃจํฌ์ค ์ํ๋ฅผ ์ถ๋ ฅํ๋ ๋จ์๋ก ์ LED์ ์ฐ๊ฒฐ๋ผ์๋ค. EN ๋จ์๋ ๋ง์ฝ ๋ธ๋ฃจํฌ์ค๊ฐ ์ฐ๊ฒฐ ์ํ๋ผ๋ฉด ๊ฐ์ ๋ก ์ ํธ๋ฅผ ์ฃผ์ด ๋ธ๋ฃจํฌ์ค ์ฐ๊ฒฐ์ ๋์ ์ ์๋ค.