현재 보드는 오렌지보드 wifi, rtc모듈은 ds1307을 이용하는 http://mechasolution.com/shop/goods/goods_view.php?goodsno=330005&category=132001 제품을 이용하고 있는데요.
모듈 테스트를 해보려고 ds1307 예제를 그대로 업로드했는데, 시리얼 모니터에 출력되는 내용이 정상이 아닌 것 같아서요. 사진 업로드가 자꾸 오류가 나는데, 시리얼 모니터에 계속
0 0 0 1 1 1 2000
만 계~~~속 반복됩니다.
예제 코드는 아두이노에서 불러올 수 있는 예제 그대로를 이용했구요. 아예 출력이 안되는건 아닌 걸 보면 모듈은 정상인 것 같은데..ㅠㅠ GND - GND, VCC - 5V, SDA - A4, SCL - A5에 연결했습니다. 제가 뭔가를 잘못한걸까요? 아니면 이게 맞는건가요?
#include
#include
int rtc[7];
byte rr[7];
int ledPin = 13;
void setup()
{
DDRC|=_BV(2) |_BV(3); // POWER:Vcc Gnd
PORTC |=_BV(3); // VCC PINC3
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
RTC.get(rtc,true);
if(rtc[6]<12){
RTC.stop();
RTC.set(DS1307_SEC,1);
RTC.set(DS1307_MIN,27);
RTC.set(DS1307_HR,01);
RTC.set(DS1307_DOW,7);
RTC.set(DS1307_DATE,12);
RTC.set(DS1307_MTH,2);
RTC.set(DS1307_YR,12);
RTC.start();
}
//RTC.SetOutput(LOW);
//RTC.SetOutput(HIGH);
//RTC.SetOutput(DS1307_SQW1HZ);
//RTC.SetOutput(DS1307_SQW4KHZ);
//RTC.SetOutput(DS1307_SQW8KHZ);
RTC.SetOutput(DS1307_SQW32KHZ);
}
void loop()
{
int i;
RTC.get(rtc,true);
for(i=0; i<7; i++)
{
Serial.print(rtc[i]);
Serial.print(" ");
}
Serial.println();
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
if (Serial.available() > 6) {
for(i=0;i<7;i++){
rr[i]=BCD2DEC(Serial.read());
}
Serial.println("SET TIME:");
RTC.stop();
RTC.set(DS1307_SEC,rr[6]);
RTC.set(DS1307_MIN,rr[5]);
RTC.set(DS1307_HR,rr[4]);
RTC.set(DS1307_DOW,rr[3]);
RTC.set(DS1307_DATE,rr[2]);
RTC.set(DS1307_MTH,rr[1]);
RTC.set(DS1307_YR,rr[0]);
RTC.start();
}
}
char BCD2DEC(char var){
if (var>9){
var=(var>>4)*10+(var&0x0f);
}
return var;
}
|
이전글 |
자이로센서를 이용한 RC카 만들기 질문입니다....
|
2017-05-29 |