遇到DS3231.h库的问题

时间:2017-10-30 03:43:30

标签: arduino arduino-uno

亲爱的Stack Exchange社区。

我是初学者Arduino用户,我正在尝试复制在https://diyhacking.com/arduino-alarm-clock-using-real-time-clock-lcd-screen/的教程中演示的24小时闹钟。

我下载并安装了与DS3231实时时钟模块相关的所有最新库。

当我尝试运行以下程序时(我不是此代码的作者,因为它直接取自我上面链接的页面),我遇到一个错误,似乎是因为错过了一个键图书馆。

有谁能告诉我需要安装哪些库来消除错误?

#include <DS3231.h>
#include <Wire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
DS3231  rtc(SDA, SCL);
Time  t;
#define buz 11

int Hor;
int Min;
int Sec;
void setup() {
  Wire.begin();
  rtc.begin();
  Serial.begin(9600);
  pinMode(buz, OUTPUT);
  lcd.begin(16,2);
  lcd.setCursor(0,0);
  lcd.print("DIYHacking.com");
  lcd.setCursor(0,1);
  lcd.print("Arduino Alarm ");
  delay(2000);
}

void loop() {
  t = rtc.getTime();
  Hor = t.hour;
  Min = t.min;
  Sec = t.sec;
  lcd.setCursor(0,0);
  lcd.print("Time: ");
  lcd.print(rtc.getTimeStr());
  lcd.setCursor(0,1);
  lcd.print("Date: ");
  lcd.print(rtc.getDateStr());
  if( Hor == 11 &&  (Min == 32 || Min == 33)) {
    //Comparing the current time with the Alarm time
    Buzzer();
    Buzzer();
    lcd.clear();
    lcd.print("Alarm ON");
    lcd.setCursor(0,1);
    lcd.print("Alarming");
    Buzzer();
    Buzzer();
  }
  delay(1000);
}

void Buzzer() {
  digitalWrite(buz,HIGH);
  delay(500);
  digitalWrite(buz, LOW);
  delay(500);
}

编译和运行此程序时返回的错误如下:

sketch_oct29c:17: error: no matching function for call to 
'DS3231::DS3231(const uint8_t&, const uint8_t&)'

 DS3231  rtc(SDA, SCL);

                 ^

有人可以建议修复此问题吗?

以下库是我安装的库:

  • DS3231,
  • MD_DS3231,
  • Rtc_by_Makuna,
  • RTClib,
  • RTCtime

干杯!

1 个答案:

答案 0 :(得分:0)

遇到同样的错误,不得不在谷歌上搜索了几天才能解决。似乎问题是由图书馆引起的。

您需要下载 Rinky Dink DS 3231 库。您可以从 here

下载

下载后,解压 DS3231 文件夹并将其放入 Arduino 的库文件夹中。一旦你这样做了,运行程序,它就会工作。希望。