#include core_build_options.h
#include swRTC.h
#include LiquidCrystal_I2C.h LiquidCrystal 헤더 파일 선언
LiquidCrystal_I2C lcd(0x3F,16,2); set the LCD address to 0x3F for a 16 chars and 2 line display
swRTC rtc;
int piezo = 10;
int switchPin = 9;
int temp;
AM PM을 구분해 주는 함수
void Set_AMPM(int hour) {
if(hour =12)
lcd.print(PM);
else
lcd.print(AM);
lcd.print(hour, DEC); 시간 출력
}
10보다 작은수를 출력할때 앞에 0을 출력하게 하는 함수
void Set_lowThanTen(int time) {
if(time 10) {
lcd.print(0);
lcd.print(time);
}
else
lcd.print(time);
}
유효한 알람시간인지 체크하는 함수
int checkTheAlarmClock(int time) {
if(time100 24 && time 0 60) {
Serial.println(Success);
return time;
}
else {
Serial.println(Failed);
return 0;
}
}
알람이 울릴시간인지 체크하는 함수
void checkTheAlarmTime(int alarmHour, int alarmMinute) {
if(alarmHour == rtc.getHours() && alarmMinute == rtc.getMinutes()) {
analogWrite(piezo, 128);
}
}
void setup() {
lcd.init(); LCD 출력준비
lcd.backlight(); LCD 백라이트 ON
Set the time and date
rtc.stopRTC(); 정지
rtc.setTime(14,51,20); 시간, 분, 초 초기화
rtc.setDate(23, 11, 2017); 일, 월, 년 초기화
rtc.startRTC(); 시작
pinMode(piezo, OUTPUT);
pinMode(switchPin, INPUT_PULLUP);
Serial.begin(9600); 시리얼 포트 초기화
Serial.begin(9600); 시리얼 통신 초기화
}
void loop() {
int day;
lcd.setCursor(0,0); 커서를 0,0에 지정
1초 단위로 갱신하며 현재시간을 LCD에 출력
Set_AMPM(rtc.getHours());
lcd.print();
Set_lowThanTen(rtc.getMinutes());
lcd.print();
Set_lowThanTen(rtc.getSeconds());
날짜를 LCD에 출력
lcd.print([);
Set_lowThanTen(rtc.getMonth());
lcd.print();
Set_lowThanTen(rtc.getDay());
lcd.print(]);
세팅된 알람시간을 LCD에 출력
lcd.setCursor(0,1);
lcd.print(Alarm );
Set_AMPM(temp100);
lcd.print();
Set_lowThanTen(temp0);
1초마다 LCD갱신
lcd.print( ); 전 글씨 삭제
delay(1000);
알람이 울릴 시간인지 체크
checkTheAlarmTime(temp100, temp0);
스위치버튼이 눌렸을 경우 피에조센서의 소리를 0으로 하고 알람시간을 초기화 한다
if(!digitalRead(switchPin)) {
temp = 0;
day = 0;
analogWrite(piezo, 0);
Serial.println(Alarm clock initialize);
Serial.println(AM000);
}
시리얼 통신을 통해 알람시간을 입력받고 시리얼 모니터에 출력
char theDay[4];
int i = 0;
if(Serial.available()) {
while(Serial.available()) {
theDay[i] = Serial.read();
i++;
}
day = atoi(theDay);
if(day100 = 12) {
Serial.print(PM);
Serial.print((day100)-12);
}
else {
Serial.print(AM);
Serial.print(day100);
}
Serial.print();
if(day0 10)
Serial.print(0);
Serial.println(day0);
temp = checkTheAlarmClock(day);
}
}
-----------------------------------------------------------------------------------------------------------------
C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\조병옥\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\조병옥\AppData\Local\Temp\arduino_build_57696 -warnings=none -build-cache C:\Users\조병옥\AppData\Local\Temp\arduino_cache_668958 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files\Arduino\hardware\tools\avr -verbose C:\Users\조병옥\Desktop\마프다\new1\new1.ino
보드 Arduino/Genuino Uno 컴파일 에러.
위에는 코드고 밑에는 컴파일에러입니다. 다른 코드들도 마찬가지고 아두이노프로그램에 있는 예제파일도
똑같은 에러뜨네요. 어떻게 조치해야하는지 알려주시면 감사하겠습니다.
|