极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Ansifa

Arduino学习笔记A8 - Arduino 连接 DS1302时钟模块

  [复制链接]
发表于 2016-11-22 11:06:41 | 显示全部楼层
关于DS1302我使用纽扣电池供电,arduino控制,第一次程序中设定时间运行,中间断电上电,,程序还是从程序设置时间的地方执行,这样时间又相当于返回初始状态了,不能自动记忆
回复 支持 反对

使用道具 举报

发表于 2016-11-22 11:14:40 | 显示全部楼层
你好,我想一次设置后,后面再上电还是正确的时间,不是开始设置的时间,已使用纽扣电池,该怎么做?
回复 支持 反对

使用道具 举报

发表于 2016-12-21 18:26:57 | 显示全部楼层

验证无问题,如下程序else部分,不是明白
//以逗号分隔分解comdata的字符串,分解结果变成转换成数字到numdata[]数组
for(int i = 0; i < comdata.length() ; i++)
        {
            if(comdata == ',' || comdata == 0x10 ||

comdata == 0x13)
            {
                j++;
            }
            else
            {
                numdata[j] = numdata[j] * 10 + (comdata -

'0');
            }
        }
假设输入2016,12,09,09,36,40,5,开始j=0,则第一次循环numdata[0]=2,第二次循环numdata[0]=0,至程序检测到,号前,numdata[0]=6,检测到,号后,numdata[1]=numdata[1]*10+1,numdata[1]是多少?
感觉这样分析不对?

另外我将时间写入SD卡存储有问题,一通过串口设置时间就会输出乱了,您帮忙看一下
http://www.geek-workshop.com/thread-27995-1-1.html
回复 支持 反对

使用道具 举报

发表于 2017-2-16 16:23:12 | 显示全部楼层
弘毅 发表于 2012-4-1 17:19
新版的。。。这个还没研究,1.0改动太大不好用,所以我们大部分还在用0022,0023

0022、0023是在1.0之前?我以为0022是0.2版本?
回复 支持 反对

使用道具 举报

发表于 2017-2-16 16:29:05 | 显示全部楼层
lionelg 发表于 2012-4-18 23:38
用这个库,改了改原版的代码,结果总是报错,能帮忙看看什么问题么?刚开始研究,比较小白,谢谢。
我的 ...
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <DS1302.h>

  4. uint8_t CE_PIN   = 5;
  5. uint8_t IO_PIN   = 6;
  6. uint8_t SCLK_PIN = 7;


  7. char buf[31];
  8. int numdata[3] ={0}, j = 0, mark = 0;
  9. /* 创建 DS1302 对象 */
  10. DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);


  11. void print_time()
  12. {
  13.    /* 从 DS1302 获取当前时间 */
  14.     Time t = rtc.time();
  15.     snprintf(buf, sizeof(buf), "%02d:%02d:%02d", t.hr, t.min, t.sec);
  16.     Serial.println(buf);
  17. }


  18. void setup()
  19. {
  20.     Serial.begin(9600);
  21.     rtc.write_protect(false);
  22.     rtc.halt(false);
  23. }

  24. void loop()
  25. {
  26.     print_time();
  27.     delay(1000);
  28. }
复制代码

给你修改了
回复 支持 反对

使用道具 举报

发表于 2017-2-16 16:40:01 | 显示全部楼层
thomas 发表于 2012-5-1 02:26
用这个段代码刷一下看看行不行,如果不行,换下附件的库试试。

怎么没有loop()
回复 支持 反对

使用道具 举报

发表于 2017-3-23 16:20:30 | 显示全部楼层
时间可以正常走,但在串口上怎么无法修改时间,是什么原因? 求大神指教。。。
回复 支持 反对

使用道具 举报

发表于 2017-3-28 21:43:54 | 显示全部楼层
请问,哪些版本的IDE可以用?我怕不兼容
回复 支持 反对

使用道具 举报

发表于 2017-7-10 20:18:11 | 显示全部楼层
为什么我的不能调整时间呢?而且串口输出的时间也是固定没变,求助
回复 支持 反对

使用道具 举报

发表于 2017-8-23 21:17:42 | 显示全部楼层
我输入2017,8,23,21,05,50,4,为什么给我调到2043了呢
回复 支持 反对

使用道具 举报

发表于 2017-9-14 10:25:36 | 显示全部楼层
教程看了好几天,才来评论,真的是对不住了
回复 支持 反对

使用道具 举报

发表于 2017-10-8 15:45:08 | 显示全部楼层
我在测试的时候,无法通过串口修改!!请问问题在什么地方呢?
You inputed : 2011,11,17,11,22,40,5
Sunday 2001-01-03 01:00:00
Sunday 2001-01-03 01:00:01
Sunday 2001-01-03 01:00:00
Sunday 2001-01-03 01:00:41
Sunday 2001-01-03 01:00:00
回复 支持 反对

使用道具 举报

发表于 2018-1-19 09:34:24 | 显示全部楼层
你好楼主,我在做一个早上5点定时驱动电机的时候用到了DS1302,本来想直接用arduino内部程序计时,但是好像不精确,所以想到用时钟模块,但是在电脑串口能输出时间,但是我无法将时间提出出来进行IF判断,(单个提取不出来,整个时间字符串IF判断进过实验发现不行)来进行我的电机驱动程序,我尝试过改库文件,由于技术不佳没有成功,您有办法吗,我仅需将,秒,分,时,三个数据提取出来。
回复 支持 反对

使用道具 举报

发表于 2018-2-9 17:30:10 | 显示全部楼层
zwayu 发表于 2015-12-6 22:24
**** 作者被禁止或删除 内容自动屏蔽 ****

太感谢了,翻了很多帖子
回复 支持 反对

使用道具 举报

发表于 2018-3-4 18:31:02 | 显示全部楼层

顶,希望多做些适合我们这些新手的。,对我这样的硬件小白非常有帮助
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 02:06 , Processed in 0.043134 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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