아두이노 소스코드 관련 질문입니다 (내공100)
-
게시물 수정 , 삭제는 로그인 필요
저희가 대회가 얼마 안남아서 그러는데 미세먼지측정 아두이노를 만들고 있는데 자꾸 오류가 나네요
소스 코드는
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#include "emotion.h"
#include <PMsensor.h>
#define sensitivity 0.1 //먼지 센서의 민감도 수치
#define DHTPIN 6 // 온습도센서 핀 번호
#define DHTTYPE DHT11
const int sensorPin = A0;
const int sensorLED = 3;
PMsensor PM;
LiquidCrystal_I2C lcd(0x3F, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
////////////////////////측정값에 따른 이모티콘, LED 세팅///////////////////////////
void setEmoticon(float data) {
if (data > 100) { //Worst. 80 < data, Red LED
lcd.createChar(4, topAngry1);
lcd.createChar(5, topAngry2);
lcd.createChar(6, bottomAngry1);
lcd.createChar(7, bottomAngry2);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
else if (data > 50) { //Normal. 30 < data < 80, Yellow LED
lcd.createChar(4, topSoSo1);
lcd.createChar(5, topSoSo2);
lcd.createChar(6, bottomSoSo1);
lcd.createChar(7, bottomSoSo2);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
else { //Good. data < 30, Green LED
lcd.createChar(4, topSmile1);
lcd.createChar(5, topSmile2);
lcd.createChar(6, bottomSmile1);
lcd.createChar(7, bottomSmile2);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
}
void setup() {
lcd.init();// Luquid Crystal Display Custom Character Code for Arduino 16X2 Character LCD
// Dust, Temprature, Humidity Icon, Temprature measurement
byte temp[] = {
B00100,
B01010,
B01010,
B01110,
B01110,
B11111,
B11111,
B01110
};
byte humi[] = {
B00100,
B00100,
B01010,
B01010,
B10001,
B11111,
B11111,
B01110
};
byte dust[] = {
B01010,
B10101,
B00000,
B01010,
B10101,
B00000,
B01010,
B10101
};
byte C[] = {
B10000,
B00110,
B01001,
B01000,
B01000,
B01001,
B00110,
B00000
};
// Smile Emoticon Top
byte topSmile1[] = {
B00000,
B00111,
B01000,
B10000,
B10000,
B10010,
B10010,
B10000
};
byte topSmile2[] = {
B00000,
B11100,
B00010,
B00001,
B00001,
B01001,
B01001,
B00001
};
// SoSo Emoticon Top
byte topSoSo1[] = {
B00000,
B00111,
B01000,
B10000,
B10000,
B10010,
B10000,
B10000
};
byte topSoSo2[] = {
B00000,
B11100,
B00010,
B00001,
B00001,
B01001,
B00001,
B00001
};
// Angry Emoticon Top
byte topAngry1[] = {
B00000,
B00111,
B01000,
B10000,
B10100,
B10010,
B10000,
B10000
};
byte topAngry2[] = {
B00000,
B11100,
B00010,
B00001,
B00101,
B01001,
B00001,
B00001
};
// Smile Emoticon Bottom
byte bottomSmile1[] = {
B10000,
B10000,
B10100,
B10011,
B01000,
B00111,
B00000,
B00000
};
byte bottomSmile2[] = {
B00001,
B00001,
B00101,
B11001,
B00010,
B11100,
B00000,
B00000
};
// SoSo Emoticon Bottom
byte bottomSoSo1[] = {
B10000,
B10000,
B10011,
B10000,
B01000,
B00111,
B00000,
B00000
};
byte bottomSoSo2[] = {
B00001,
B00001,
B11001,
B00001,
B00010,
B11100,
B00000,
B00000
};
// Angry Emoticon Bottom
byte bottomAngry1[] = {
B10000,
B10000,
B10001,
B10010,
B01000,
B00111,
B00000,
B00000
};
byte bottomAngry2[] = {
B00001,
B00001,
B10001,
B01001,
B00010,
B11100,
B00000,
B00000
};
lcd.backlight();
lcd.createChar((byte)0, temp);
lcd.createChar(1, humi);
lcd.createChar(2, dust);
lcd.createChar(3, C);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.init(9600);
/////(infrared LED pin, sensor pin) /////
PM.init(sensorLED, sensorPin);
}
void loop() {
byte temp = dht.readTemperature();
byte humi = dht.readHumidity();
if (isnan(humi) || isnan(temp) ) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float data = 0;
int err = PMsensorErrSuccess;
if ((err = PM.read(&data, true, sensitivity)) != PMsensorErrSuccess) {
Serial.print("data Error = ");
Serial.println(err);
delay(1500);
return;
}
Serial.println(data);
delay(1500);
setEmoticon(data);
//----------------------------------------------------LCD 출력----------------------------------------------------//
lcd.setCursor(0, 0);
lcd.write(2);
lcd.print(" ");
lcd.print(data);
if (data > 100) {
lcd.print("ug");
}
else if (data > 10) {
lcd.print(" ug");
}
else {
lcd.print(" ug ");
}
lcd.setCursor(0, 1);
lcd.write((byte)0);
lcd.print(" ");
lcd.print((int)temp);
lcd.write(3);
lcd.print(" ");
lcd.write(1);
lcd.print(" ");
lcd.print((int)humi);
lcd.print("%");
lcd.setCursor(13, 0);
lcd.write(4);
lcd.write(5);
lcd.setCursor(13, 1);
lcd.write(6);
lcd.write(7);
}
입니다
어디서 오류난건진 빠른 답변 부탁드립니다.
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20180912_116/1536682648054xKtze_PNG/%BE%C6%B5%CE%C0%CC%B3%EB.png)
#include "DHT.h"
#include "emotion.h"
#include <PMsensor.h>
#define DHTPIN 6 // 온습도센서 핀 번호
#define DHTTYPE DHT11
const int sensorLED = 3;
LiquidCrystal_I2C lcd(0x3F, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
void setEmoticon(float data) {
if (data > 100) { //Worst. 80 < data, Red LED
lcd.createChar(4, topAngry1);
lcd.createChar(5, topAngry2);
lcd.createChar(6, bottomAngry1);
lcd.createChar(7, bottomAngry2);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
else if (data > 50) { //Normal. 30 < data < 80, Yellow LED
lcd.createChar(4, topSoSo1);
lcd.createChar(5, topSoSo2);
lcd.createChar(6, bottomSoSo1);
lcd.createChar(7, bottomSoSo2);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
else { //Good. data < 30, Green LED
lcd.createChar(4, topSmile1);
lcd.createChar(5, topSmile2);
lcd.createChar(6, bottomSmile1);
lcd.createChar(7, bottomSmile2);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
}
lcd.init();// Luquid Crystal Display Custom Character Code for Arduino 16X2 Character LCD
byte temp[] = {
B00100,
B01010,
B01010,
B01110,
B01110,
B11111,
B11111,
B01110
};
B00100,
B00100,
B01010,
B01010,
B10001,
B11111,
B11111,
B01110
};
B01010,
B10101,
B00000,
B01010,
B10101,
B00000,
B01010,
B10101
};
B10000,
B00110,
B01001,
B01000,
B01000,
B01001,
B00110,
B00000
};
// Smile Emoticon Top
byte topSmile1[] = {
B00000,
B00111,
B01000,
B10000,
B10000,
B10010,
B10010,
B10000
};
byte topSmile2[] = {
B00000,
B11100,
B00010,
B00001,
B00001,
B01001,
B01001,
B00001
};
byte topSoSo1[] = {
B00000,
B00111,
B01000,
B10000,
B10000,
B10010,
B10000,
B10000
};
byte topSoSo2[] = {
B00000,
B11100,
B00010,
B00001,
B00001,
B01001,
B00001,
B00001
};
byte topAngry1[] = {
B00000,
B00111,
B01000,
B10000,
B10100,
B10010,
B10000,
B10000
};
byte topAngry2[] = {
B00000,
B11100,
B00010,
B00001,
B00101,
B01001,
B00001,
B00001
};
byte bottomSmile1[] = {
B10000,
B10000,
B10100,
B10011,
B01000,
B00111,
B00000,
B00000
};
B00001,
B00001,
B00101,
B11001,
B00010,
B11100,
B00000,
B00000
};
byte bottomSoSo1[] = {
B10000,
B10000,
B10011,
B10000,
B01000,
B00111,
B00000,
B00000
};
B00001,
B00001,
B11001,
B00001,
B00010,
B11100,
B00000,
B00000
};
byte bottomAngry1[] = {
B10000,
B10000,
B10001,
B10010,
B01000,
B00111,
B00000,
B00000
};
B00001,
B00001,
B10001,
B01001,
B00010,
B11100,
B00000,
B00000
};
lcd.backlight();
lcd.createChar(1, humi);
lcd.createChar(2, dust);
lcd.createChar(3, C);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
PM.init(sensorLED, sensorPin);
}
byte temp = dht.readTemperature();
byte humi = dht.readHumidity();
Serial.println("Failed to read from DHT sensor!");
return;
}
float data = 0;
int err = PMsensorErrSuccess;
if ((err = PM.read(&data, true, sensitivity)) != PMsensorErrSuccess) {
Serial.print("data Error = ");
Serial.println(err);
delay(1500);
return;
}
delay(1500);
setEmoticon(data);
//----------------------------------------------------LCD 출력----------------------------------------------------//
lcd.setCursor(0, 0);
lcd.write(2);
lcd.print(" ");
lcd.print(data);
lcd.print("ug");
}
else if (data > 10) {
lcd.print(" ug");
}
else {
lcd.print(" ug ");
}
lcd.write((byte)0);
lcd.print(" ");
lcd.print((int)temp);
lcd.write(3);
lcd.write(1);
lcd.print(" ");
lcd.print((int)humi);
lcd.print("%");
lcd.write(4);
lcd.write(5);
lcd.write(6);
lcd.write(7);
}
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20180912_116/1536682648054xKtze_PNG/%BE%C6%B5%CE%C0%CC%B3%EB.png)
#아두이노 소스코드 #아두이노 소스코드 추출 #아두이노 소스코드 합치기 #아두이노 소스코드 사이트 #아두이노 소스코드 업로드 #아두이노 노래 소스코드 #아두이노 스마트팜 소스코드 #아두이노 rc카 소스코드 #아두이노 미세먼지 측정기 소스코드 #아두이노 led 소스코드