우선 흔히 사용하는 아두이노 우노를 사용하지 않고 왜 메가를 사용할까?
그거슨 바로 핀의 개수가 모자라기 때문이다.
물론 우노에 다른 모뎀을 연결해서 포트 확장을 하는 방법이 있는 것 같지만 그 또한 제한적이라 시원하게 메가로 바꿔주었다.
다른 설정 없이 기본적으로 아두이노 우노는 디지털 핀의 개수를 12개(PWM포함)밖에 사용하지 못하지만
메가2560은 디지털만 약70개를 사용할 수 있다.
간단한 프로젝트를 진행 할 때 3~4개의 모듈사용은 기본인데 7-segment만 해도 디지털포트 8개를 잡아먹는다.
따라서 오픈소스도 많고 배우기 쉬운건 아두이노 우노지만 추후에 확장성을 고려한다면 메가를 피할수 없을 것이다.
이 글에서는 메가를 사용하면서 처음으로 어려움을 겪은 블루투스 연결에 관해 적어보려 한다.
아두이노 우노(UNO)
우선 아두이노에서 흔히 사용하는 블루투스 모듈은 HC-06이다.
포트 구성을 보면 위에서부터 RXD, TXD, GND, VCC라고 적혀있다.
「포트 연결 구성」
HC-06 | 아두이노 우노 |
RXD | D7 |
TXD | D8 |
VCC | 5V |
GND | GND |
「소스코드」
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(8, 7); //RX, TX //그 BTS아님....bluetooth serial약자임....
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop() {
if (BTSerial.available()) //블루투스 모듈에서 신호가 입력되면
Serial.write(BTSerial.read()); //아두이노 시리얼로 출력해라
if (Serial.available()) //아두이노에 신호가 입력되면
BTSerial.write(Serial.read()); //블루투스 시리얼로 출력해라
}
※주의사항※
HC-06 모듈의 RX, TX와
아두이노 보드의 RX, TX는 반대로 연결해 준다.
즉, 모듈에서 RX단자는 보드의 TX포트로 연결,
모듈의 TX단자는 보드의 RX포트와 연결한다.
[결과]
아두이노 메가(MEGA) 2560
「포트 연결 구성」
HC-06 | 아두이노 메가 2560 |
RXD | 18(TX1) |
TXD | 19(RX1) |
GND | GND |
VCC | 5V |
메가 보드에서는 친절하게 RX와 TX가 구분되어있어서 우노와 마찬가지로 반대로 연결해 주면 된다.
「소스코드」
#include <SoftwareSerial.h>
void setup() {
Serial.begin(9600);
Serial1.begin(9600); //Serial1 == 18 19번핀, Serial2 == 16 17번핀, Serial3 == 14 15번핀
Serial.println("HELLO!");
}
void loop() {
if (Serial1.available()) {
Serial.write(Serial1.read());
}
if (Serial.available()) {
Serial1.write(Serial.read());
}
}
[결과]
'아두이노 > 예제' 카테고리의 다른 글
[아두이노] 메가2560 lcd(I2C모듈) 출력하기 (1) | 2021.06.30 |
---|---|
[아두이노] 멀티태스킹 & 다중작업 millis() (0) | 2021.06.29 |