BASIC4MCU | 질문게시판 | 아두이노 컴파일 오류 질문입니다!!
페이지 정보
작성자 메롱198 작성일2019-12-07 17:19 조회4,059회 댓글1건본문
#include <DS1302.h>#include <DHT.h>
#include <LiquidCrystal_I2C.h>#include <Wire.h>
const int CEPin = 5;
const int IOPin = 6;
const int CLKPin = 7;#define DHTPIN 2 // DHT11이 연결된 핀을 설정한다.
#define DHTTYPE DHT11 // 연결된 센서의 종류를 설정한다. DHT11LiquidCrystal_I2C lcd(0x3f,16,2);
DS1302 rtc(CEPin,IOPin,CLKPin);
DHT dht(DHTPIN,DHTTYPE);
int nowYear,nowMonth,nowDay,nowHour,nowMinute,nowSecond;
int pastYear,pastMonth,pastDay,pastHour,pastMinute,pastSecond;String nowWeek, pastWeek;
int nowTemp, nowHumidity;
int pastTemp, pastHumidity;char sampleTime;
int tempAverage, humidityAverage;
String dayAsString(const Time::Day day) {
switch (day) {
case Time::kSunday:return"SUN";
case Time::kMonday:return"MON";
case Time::kTuesday:return"TUE";
case Time::kWednesday:return"WED";
case Time::kThurday:return"THU";
case Time::kFriday:return"FRI";
case Time::kSaturday:return"SAT";
}
return "---";
}void setup(){
Serial.begin(9600);dht.begin();
lcd.init();lcd.clear();
lcd.setCursor(4,0);
lcd.print("final ex");
lcd.setCursor(1,1);
lcd.print("ARDUINO CLOCK");
delay(3000);
lcdDefault();
}void loop(){
readTime();
tempAndHumidityRead();
lcdDisplay();
saveOldData();
delay(100);
}void setTime(){
rtc.writeProtect(false);
rtc.halt(false);
Time t(2015,7,21,18,48,00, Time::kTuesday);rtc.time(t);
}void readTime(){
Time t = rtc.time();const String day= dayAsString(t.day);
nowWeek = day.c_str();nowYear = t.yr;
nowMonth = t.mon;
nowDay = t.date;
nowHour = t.hr;
nowMinute = t.min;
nowSecond = t.sec;
}
void tempAndHumidityRead(){
unsinged char t = dht.readTemperature();
unsinged char h = dht.readHumidity();++sampleTime;
tempAverage = tempAverage + t;
humidityAverage = humidityAverage + h;if(sampleTime >=10){
nowTemp = tempAverage /10;
nowHumidity = humidityAverage /10;
tempAverage = 0;
humidityAverage = 0;
sampleTime = 0;
};
delay(50);
}void lcdDisplay(){
if(nowYear != pastYear){
lcd.setCursor(1,0);
lcd.print(" ");
lcd.setCursor(1,0);
lcd.print(nowYear);
};if(nowMonth != pastMonth){
lcd.setCursor(6,0);
lcd.print(" ");
if(nowMonth >=10) lcd.setCursor(6,0);
else lcd.setCursor(7,0);
lcd.print(nowMonth);
};
if(nowDay != pastDay){
lcd.setCursor(9,0);
lcd.print(" ");
if(nowDay >=10) lcd.setCursor(9,0);
else lcd.setCursor(10,0);
lcd.print(nowDay);
};if(nowHour != pastHour){
lcd.setCursor(8,1);
lcd.print(" ");
if(nowHour >=10) lcd.setCursor(8,1);
else lcd.setCursor(9,1);
lcd.print(nowHour);
};if(nowMinute != pastMinute){
lcd.setCursor(11,1);
lcd.print(" ");
if(nowMinute >=10) lcd.setCursor(11,1);
else lcd.setCursor(12,1);
lcd.print(nowMinute);
};if(nowSecond != pastSecond){
lcd.setCursor(14,1);
lcd.print(" ");
if(nowSecond >=10) lcd.setCursor(14,1);
else lcd.setCursor(15,1);
lcd.print(nowSecond);
};if(nowTemp != pastTemp){
lcd.setCursor(10,1);
lcd.print(" ");
if(nowTemp >=10) lcd.setCursor(0,1);
else lcd.setCursor(1,1);
lcd.print(nowTemp);
};
if(nowHumidity != pastHumidity){
lcd.setCursor(4,1);
lcd.print(" ");
if(nowHumidity >=10) lcd.setCursor(4,1);
else lcd.setCursor(5,1);
lcd.print(nowHumidity);
};
if(nowWeek != pastWeek){
lcd.setCursor(12,0);
lcd.print(" ");
lcd.setCursor(12,0);
lcd.print(nowWeek);
};
}void saveOldData(){
pastYear = nowYear;
pastMonth = nowMonth;
pastDay =nowDay;
pastHour = nowHour;
pastMinute = nowMinute;
pastSecond = nowSecond;pastTemp = nowTemp;
pastHumidity = nowHumidity;pastWeek = nowWeek;
}void lcdDefault(){
lcd.noCursor();
lcd.backlight();
lcd.clear();lcd.setCursor(2,1);
lcd.print("C");
lcd.setCursor(6,1);
lcd.print("%");
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(13,1);
lcd.print(":");
}
컴파일 할시에
exit status 1
'Day' in 'class Time' does not name a type라는 오류가 뜨는데 이유를 당최 모르겠네요 ㅠ
댓글 1
조회수 4,059master님의 댓글
master 작성일라이브러리 좌표를 적어보세요