极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18318|回复: 3

如何DS1302时间模块使用闹钟功能?

[复制链接]
发表于 2016-10-28 16:16:03 | 显示全部楼层 |阅读模式
本帖最后由 idiot0303 于 2016-10-28 16:38 编辑



目前已经写出将ds1302的时间印在lcd上,另外把DHT11模块也印在上头,不过我查询国外网站老外

有关于DS1302的时间闹钟功能,却都没看到,只看到过DS1307的时间模块

也只有搜寻到台湾人用DS1307写的闹钟功能


试着去改写,结果一直失败,也查询过论坛上有关于DS1302的时间模块

只看到有人询问,却没有看到CODE

我目前想做的就是定时一到,运转马达,也想把定时功能印在LCD

求大神拯救。


新手没法贴连结跟代码,所以我复制在下一楼贴文
回复

使用道具 举报

 楼主| 发表于 2016-10-28 16:20:52 | 显示全部楼层
#include <Time.h>
#include <TimeAlarms.h>
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

void setup()
{
    Serial.begin(9600);
    Wire.begin();
    RTC.begin();
    if (! RTC.isrunning())
    {
        Serial.println("RTC is NOT running!");
        //下列這行將會設定RTC時間為電腦Compile的當前時間。
        //RTC.adjust(DateTime(__DATE__, __TIME__));
    }

    DateTime now = RTC.now();
    //將RTC的時間設定給AlarmClockTime使用
    setTime(now.hour(),now.minute(),second(),now.day(),now.month(),now.year());

    // 創造時鐘
    Alarm.alarmRepeat(8,30,0, MorningAlarm);  
    Alarm.alarmRepeat(dowSaturday,8,30,30,WeeklyAlarm);  
    Alarm.timerRepeat(15, Repeats);         
    Alarm.timerOnce(10, OnceOnly);         
}

void  loop(){  
    digitalClockDisplay();
    Alarm.delay(1000);
}
// functions to be called when an alarm triggers:
void MorningAlarm(){
    Serial.println("Alarm: - turn lights off");   
}
void WeeklyAlarm(){
    Serial.println("Alarm: - its Monday Morning");      
}
void Repeats(){
    Serial.println("15 second timer");         
}
void OnceOnly(){
    Serial.println("This timer only triggers once");  
}
//顯示目前時間
void digitalClockDisplay()
{
    // digital clock display of the time
    Serial.print(hour());
    printDigits(minute());
    printDigits(second());
    Serial.println();
}
//如果顯示0~9的話,前面會加一個0
void printDigits(int digits)
{
    Serial.print(":");
    if(digits < 10)
    Serial.print('0');
    Serial.print(digits);
}


http://www.tabbymeow.com/%E6%A8%B9%E5%B1%8B%E9%AD%9A%E4%B8%BB%E4%BA%BA%E8%A8%88%E7%95%AB5-rtc%E6%99%82%E9%90%98%E6%A8%A1%E7%B5%84/
回复 支持 反对

使用道具 举报

发表于 2016-10-28 19:33:09 | 显示全部楼层
用EEPROM保存你要设置的时间变量,初始化的时候读取储存的变量。然后时时的判断当前的时间,如果符合你设置的条件,就输出,或者关闭。。。就可以。。。然后显示大lcd上就可以。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-31 09:04:00 | 显示全部楼层
本帖最后由 idiot0303 于 2016-10-31 12:26 编辑

Paderboy兄
这个对我这入门新手难度太高了

还有没有比较简单的用法?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 17:47 , Processed in 0.039048 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表