加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

使用Arduino即可获得准确的时钟,DIY一个精度高的时钟

2021/03/03
765
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

仅使用Arduino显示屏和少量按钮,在16x2 LCD上显示日期的准确时钟。无需RTC模块。

硬件部件

  • Arduino Nano R3    ×    1个    
  • 字母数字LCD,16 x 2    ×    1个    
  • 触觉开关,顶部致动    ×    3    
  • 微调电位器,10 kohm    ×    1个    
  • 跳线×    1个    

最后得到了一个非常准确的时钟。运行5天后,它没有问题。

仅使用Arduino的主要问题是其内部时钟速度并非100%准确。因此,如果仅依赖于此,那么经过的毫秒数将减少一小部分,并且您正在创建的时钟将丢失或浪费时间。我的方法是测试我使用的Arduino的准确性,并确定每小时损失或获得多少毫秒。然后,所需要做的只是对速度调整进行编程,以每小时从内部跟踪的毫秒中增加或减去这种差异。

我的另一个担心是Arduino时钟是否始终不准确,但是如前所述,我编写的时钟在5天内保持了非常准确的时间,因此看来错误是一致的。

第二个问题是内部millis()函数每隔50天左右会重置一次,因此您无法操纵毫秒计数。因此,答案是使用我可以操纵的计数器替换millis()中断,该计数器将计算从午夜起的毫秒数,每天重置一次,以消除任何运行时限制。

为了评估不准确性,我假设我的计算机时钟以及因此Processing中的millis()是准确的。因此,我为Arduino创建了一个程序,每隔2秒将一次握手后经过的毫秒数发送给Processing,并编写了一个脚本供Processing处理以读取它并将其与经过的毫秒数进行比较,以显示实时结果,以及一个小时后的差值。过去。这给出了在一小时内丢失或获得的毫秒数,因此给出了时钟程序中用于速度调整的值。

附件提供了Arduino程序的代码和Processing脚本。

  • 原理图.rar
    描述:原理图截图
  • 源码.rar
    描述:源码
  • 项目详情.pdf
    描述:项目细节

相关推荐

电子产业图谱