自己写时间的Arduino时钟

关注微信公众号:嵌入式基地
后台回复:智障时钟  获取资料

 

视频演示:https://www.bilibili.com/video/av34012767/

打开 FRTTZ8AIF0XXO9G 文件

你要调整的是(图中已经标出):

#define SERVOFAKTORLEFT xxx
#define SERVOFAKTORRIGHT xxx
#define SERVOLEFTNULL xxx
#define SERVORIGHTNULL xxx
#define LIFT0 xxx
#define LIFT1 xxx
#define LIFT2 xxx

  • 如果增加LIFTx数字,手臂应该靠近平台。
  • 如果增加SERVOFAKTORxxx数字,手臂会使用更大的角度
  • 如果增加SERVOXXXNULL数字,则伺服停止的点会发生变化

 

1.通过在#define CALIBRATION前面删除//,将绘图时钟设置为校准模式

2.将一个臂连接到左侧伺服,指向上方,一个臂连接到指向右侧的右侧伺服。不要拧紧螺丝。

3.启动Arduino。手臂会开始往复走动。

4.调整SERVOFAKTOR,使两臂各移动约90度。

5.调整SERVOLEFTNULLSERVORIGHTNULL,使LEFT手臂从指向左侧移动直到指向上方。并且右手臂指向正向指向右侧。

6.到目前为止对校准感到满意时,将//添加到#define CALIBRATION。这将使代码处于时钟模式。

7.上传到Arduino板。观察所有3个伺服器将向后移动并且像写入时间那样应该没有连接伺服臂。

8.关闭Arduino板的电源,然后安装伺服臂。尝试定位手臂,使笔架在扫地机位置上居中。不要收紧手臂。

9.启动Arduino,观察手臂会做类似于在板上写时间的东西......!

10.检查UP / DOWN伺服是否在字母之间向右移动。如果没有,你必须将其翻过来,并以某种方式将其安装在外壳内。

11.以小增量调整数值:LIFT0,LIFT1,LIFT2,PARKX和PARKY,以获得您喜欢的白板标记移动。

12.当您对校准感到满意时,开始测试

 

                     

1.将DS1307RTC文件夹放入Arduino程序位置的库文件夹中。

从DS1307到Arduino板的接线:

GND - GND

VCC - Arduino上的5v

SDA - 模拟引脚4

SCL - 模拟引脚5

2.运行Arduino软件。

2.现在,DS1307RTC库应显示在文件示例-DS1307RTC中

4.在File-Examples-DS1307RTC下,有一个“ReadTest”和一个“SetTime”选项。选择“SetTime”

5.上传到Arduino。记得选择合适的主板和COM端口。

6.上传后,打开Tools-Serial Monitor。(或者ctrl + shift + m)

7.如果模块连接正确,则应读取当前时间。如果这是正确的,那么你就完成了。

8.再次打开Plotclock_modded.ino。删除#define REALTIMECLOCK前面的//

9.时钟现在应使用DS1307RTC模块设置正确的时间。

如果时间和日期错误,请按照下列步骤操作:

1.打开FYIYYMOIF2WL0RM文件,同时连接时钟伺服和DS1307RTC模块。

2.上传到Arduino板。请记住检查正确的电路板和COM端口。

3.打开串行监视器。(CTRL + SHIFT + M)

4.按照说明设置时间和日期。

5.日期和时间现在应该是正确的。

6.再次上传Plot clock Arduino代码以检查时间是否正确。

 

仅使用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脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值