?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

아두이노 RTC LCD LED질문입니다

페이지 정보

작성자 김진우 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일15-11-24 16:46 조회1,874회 댓글1건

본문

#define SCK_PIN 4

#define IO_PIN 3

#define RST_PIN 2

#define PIN 7

#include

#include

 

#include

 

 LiquidCrystal_I2C lcd(0x27,16,2);

DS1302 rtc(RST_PIN, IO_PIN, SCK_PIN); 

Time t;

int date_y, date_m, date_d,date_w;

int time_h, time_m, time_s;

 

String weeks[7]={"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};

void setup()

{

  lcd.init();

  lcd.backlight();

  rtc.halt(false);

  rtc.writeProtect(false);

     Serial.begin(9600);

  pinMode(7,OUTPUT);

 //초기 날짜 설정값 업로드 후 주석처리후 업로드 하면 현재시간 그대로 출력됨

 rtc.setDOW(SUNDAY);  // 요일(대문자)

  rtc.setTime(00, 00, 00); // 시, 분, 초

  rtc.setDate(11, 22, 2015);    // 월, 일, 년

}

 void loop()

{

    t=rtc.getTime();

 

  date_y=t.year;  // 년

  date_m=t.mon; // 월

  date_d=t.date;  // 일

  date_w=t.dow; // 요일

 

  time_h=t.hour;  // 시

  time_m=t.min; // 분

  time_s=t.sec; // 초

     

    lcd.print(date_y);    

    lcd.print("/");

    

if(date_m<10){

  lcd.print("0");

}

    lcd.print(date_m);

    lcd.print("/");

    

if(date_d<10){

  lcd.print("0");

}

    lcd.print(date_d);

    lcd.print("-");

    lcd.print(weeks[date_w]);

    

    lcd.setCursor(0,1);

    

 if(time_h<10){

  lcd.print("0");

 }

   lcd.print(time_h);

   lcd.print(":");

   

    if(time_m<10){

  lcd.print("0");

 }

   lcd.print(time_m);

   lcd.print(":");

   

    if(time_s<10){

  lcd.print("0");

 }

   lcd.print(time_s);

    delay(1000);

    lcd.setCursor(0,0);     

   

    if (time_h==0 && time_m ==1){

      digitalWrite(7,HIGH);

      

      }

    else (time_h ==0 && time_m ==2);{

      digitalWrite(7,LOW);

     }

    }

소스를 이렇게 짜보앗는데요 이게 led가 delay를 주면 켜졋다꺼졋다그러고 안주면 아예 불이 안들어오는데

혹시 이게 맞는지 또 날짜부분이 어제까지 잘되엇는데 다시 업로드 하니까 2000/01/01로 맞춰집니다..

 

또 시간이 빨라지는 이유에는 어떠한게 있는지요?

그리고 왜 32.768 kHz Crystal Pin 을 쓰나요?

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

delay() 함수로 지연시간을 주지 않으면 loop() 함수가 너무 빨리 돕니다. 주의해야 합니다.
그리고 어떤 RTC 모듈을 사용하나요? 아래 자료를 일단 참고해보세요.
http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=tech_sensor&wr_id=12