点钟, 经验值


点钟

描述

从一个像 讨论区 通过Oriolo20, 论坛成员, 我开发了这个项目, 如果我们要这样称呼. 实际上,这并不是一个完整的项目,而只是一个想要证明一个书面程序的实验证明.
我称它为XP,意味着环境项目…. 实际上,我们注意到这不是确定的编辑, 但仅用于证明所使用的所有程序和其他材料的功能. 特别是,我可以注意到保持白色LED亮起的最佳频率,而没有注意到闪烁.

开发基于草图,该草图必须管理一系列 分子. 就我而言,我更喜欢安装简单的白色LED. 但是,草图的方向是无需更改即可管理的数码管也有任何差异.

一方面是为了监督,另一方面是因为我发现它更便宜, 我安装了一个CD-1028的1对10解码器. 实际上,我的疏忽是我安装了公共阴极, 而不是驱动数码相机的阳极.

我必须说,该草图无法在未安装ATmega328p的其他Arduino型号上移植. 实际上,该草图直接处理了微控制器的寄存器.

如果通过显示串行监视器的USB连接供电,组装的单元可以工作, 但不包括引脚D0和D1上的其他连接, 或我安装的电源分配器.
特别要注意的是,电源线非常安全,甚至多条, 因为跨接线的功能不是很强,而且连接器的触点也会产生电阻或误触点.
有关解决消失的连接问题的说明. 我找到 “跳线” 它们不是很可靠,镀锡铜导体. 轻松停止.

 

架构图

我注意到两个连接器,它们可以将通信扩展到保持时间表准时所需的信息源. 我以为在您要编程或编辑Arduino草图时可以安装跳线.

我也为ESP模块上的程序做过另一项开发-01 它通过I2C总线进行通信并发送从 odulo DS3231并通过WiFi同步到服务器 NTP.
我无法通过UART通信, 但我认为在I2C中会更好.

如您所见,它还连接到Arduino串行线. 这样您就可以通过该来源发送其他时间来源. 我准备的程序包包括一个草图示例,该草图希望以预定格式从序列中获取数据. 为了能够从GPS或其他设备获取信息,应扩展此附件以将接收到的数据转换为我在下面解释的格式.

格式 必须包含 6 字节, 但是缓冲区确实 8. 这六个字节描述了时间和日期

H:MM:SS 一小时 GG:多发性硬化症:机管局 对于日期. 其他 2 字节可用于将来的开发,其中可能包含数据传输的毫秒差. 但是,当前不包括.

程序

该程序用英语评论. 对于那些不习惯的人, 我可以把它翻译成副本, 虽然我的野心是即使对于那些不懂意大利语的人也能透露它,因为它是国际化的,这是合理的.

在第一部分, 按照我的习惯,收集了几个定义 (限定) 决定如何根据需要编译草图.

  • 到线 32, Arduino地址在I2C总线上定义为从站, 万一可以更改.
  • 到线 33, 矩阵的更新周期以毫秒为单位. 我认为不可能进一步增加, 除非您更改计时器预分频器参数 1. 或切换到使用TimerOne库.
  • 到线 38, 您可以选择一些调试级别, 从 0 一个 4. 通过这种方法,您可以使用串行信息和液晶显示器. 液晶设备具有集成了74HC595的并行串行接口. 因此,您可以选择使用Arduino SPI方法还是ShiftOut方法.
    我不得不说我没有太多时间来完全验证此阶段. 我修改了所用接口模型的库, 如图所示. 为此,我将它们统一为使用相同类型的串行适配器.
  • 到线 39, 如果将串行信息寻址到接受ANSI转义字符的终端,或者它是一个简单的串行接口,则可以预期.
  • 到线 41, 有一个安全值,就是您要更改的时间不能及时返回.

关于液晶显示器的连接选择, 这也意味着您要连接1-on-10解码器的位置有所不同. 显然,如果要在输出D8〜D11上显示LCD (使用SPI), 将无法从该端口连接解码器, 因此在程序中选择输出A0〜A3.

反之,如果要在输出D8〜D11上使用解码器, 然后显示器将连接到输出A0〜A2, 但有可能选择其他自由输出.

该程序相当精简,预计我们还可以添加其他源代码的管理,在这里您可以花一些时间来精确到秒,而不必担心会损失几秒钟.

支撑件

该项目的其余部分计划提供确切时间的来源. 为此,我通过micropython实现了管理 (MP, 下面) 安装在ESP上-01.

我解释说,选择使用MP的原因是购买所提供的固件不够稳定.

也许还由于该模块不稳定地安装在面包板上的事实. 取而代之的是,必须注意触点的安全性,并允许ESP在与路由器的连接阶段中要求的电流峰值. 为此,我将其与必要的附件一起安装在millefori板上,以便能够对模块进行重新编程.

我还组装了用于I2C总线的电平适配器. 也许并非绝对必要, 但在众多测试中, 我不明白为什么Arduino没有收到发送给它的信号.

但是该电路非常简单,我在几分钟内就完成了. 鉴于从侧面 5 伏特,我没有放上拉电阻,因为它们已经存在于RTC模块中.

我进行的其他测试是连接我的SBC (修补匠板) 发送时间表数据. 一切都很优雅. 如果您有兴趣,可以找到要运行的python脚本. 我尝试安装 臂章, 为什么尝试与 Archlinuxarm 无法正确找到巴士.
关于这些单板电脑, 测试连接并发送数据并不难. 软件包中还有一个Python脚本,可与Raspberry或可连接到I2C总线的计算机一起使用.
必须以管理员权限发送命令, 因为它必须访问I2C总线硬件, 这将是一个像:

须藤./sendtime02.py 60 europe.pool.ntp.org

您可以在名称后排除两个参数, 那么将使用默认值. 这两个参数定义一个查询和另一个查询到NTP服务器之间的暂停. 而第二个参数定义要连接到的服务器.

包是 在我的驱动器上可用.
如果您需要任何其他信息或说明, 我很高兴能够发表意见

如果您有兴趣,我也做了 小视频 演示.

0 回复

发表评论

想加入讨论?
随意贡献!

发表评论