1. 프로젝트 사용한 보드 종류
아두이노 UNO
2. 사용한 개발 프로그램명
아두이노 IDE
3. 사용한 센서 모델명
DHT11
4. 연결한 회로 설명 (또는 이미지)
5. 소스코드 (주석 필수)
#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial mySerial1(2, 3); // rx = 2, tx = 3
SoftwareSerial mySerial2(8, 9); // rx = 8, tx = 9
SoftwareSerial mySerial3(12, 13); // rx = 12, tx = 13
int rPin = 10; // RGB LED 레드 핀
int gPin = 11;// RGB LED 블루 핀
int str_H=0; // 습도
int str_T=0; // 온도
float str_D = 0; // 미세먼지
float dust_Val=0; // 미세먼지 벨류값
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while(!Serial) { }
mySerial1.begin(9600);
mySerial2.begin(9600);
mySerial3.begin(9600);
pinMode(rPin, OUTPUT); // RGB LED 레드핀
pinMode(gPin, OUTPUT); // RGB LED 블루핀
lcd.begin();
lcd.backlight();
}
void setColor(int r, int g) {
analogWrite(rPin, r);
analogWrite(gPin, g);
// RGB 설정 함수
}
void loop() {
// put your main code here, to run repeatedly:
mySerial1.listen();
if(mySerial1.available() > 0) {
char in = mySerial1.read();
str_H = in;
Serial.print("H");
Serial.println(str_H);
}
mySerial2.listen();
if(mySerial2.available() > 0) {
char in = mySerial2.read();
str_T = in;
Serial.print("T");
Serial.println(str_T);
}
mySerial3.listen();
if(mySerial3.available() > 0) {
char in = mySerial3.read();
str_D = in;
Serial.print("D");
Serial.println(str_D);
}
lcd.home();
lcd.print("H: ");
lcd.print(str_H);
lcd.print("% ");
lcd.print("T : ");
lcd.print(str_T);
lcd.print("℃");
lcd.setCursor(0, 1);
lcd.print("Dust : ");
lcd.print(str_D);
delay(500);
}
구현했는데
mySerial1 ~ mySerial3을 동시에 하면 시리얼모니터나 lcd에 출력이 안되고요.
혹시나 해서 mySerial1 ~ mySerial3을 2개씩 묶어서도 해봤는데 안되고 있고요..

mySerial1 ~ mySerial3을 각각 하나씩만 구현하면 출력이 됩니다.

소프트웨어시리얼 예제를 보면 저렇게 하면 가능하다는데
저는 왜 안되는지 알수가 없어서 찾아왔습니다
|