Arduino是一种开源电子平台,拥有类似于计算机的功能,可编程控制各种实物。其精确度和时间难以保持,所以需要使用时钟芯片来提供更准确的时间。常用的时钟芯片有DS1307和DS3231。
DS1307时钟芯片是一款低成本、高精度、I2C实时时钟,广泛应用于实际情况。但是相比于DS3231有更大的误差。
与此相比,DS3231更精确,误差比DS1307小得多,同时也有更多的功能。它可以通过一个称为TCXO的晶体器进行校准,而DS1307则使用更不精确的晶体进行校准。
DS1307时钟芯片的16个引脚可随意连接你的Arduino,其中8个用于控制时钟,2个用于读取时钟数据,另外还有连接电源或电池的引脚。
DS1307将时间、日期、星期、月、年等信息保存到内部SRAM中,使得没有外部电源的情况下,Arduino仍然可以读取并显示上次保存的时间。当 Arduino重新连接电源时,可以从 DS1307 读取时间,无需再次设置时间。主要的缺点是存在精度问题,需要根据具体的情况进行校准。
DS3231时钟芯片比DS1307更加准确,误差的范围要小得多。它的完整时间格式是年、月、日、时、分、秒。并且它还具有闹钟和温度传感器。除了一般DS1307的接口,DS3231还有一些新接口和功能,例如SQW脉冲输出和硬件中断输出。
另外,DS3231具有自动转移功能,它可以检测到主机断电,并在电源恢复时自动重置。数组和控制寄存器的所有值都可以读取和编写,同时也可以具有RAM和EEPROM的某些功能。此外,DS3231的低功耗特性可降低系统功耗,延长电池寿命,是一种非常好的选择。
在Arduino上,DS1307和DS3231是两种常用的时钟芯片,差别在于DS3231更加准确,同时具有额外的功能,如温度传感器和自动转移。尽管DS1307非常便宜且易于使用,并且仍是许多应用的不错选择,但在需要更高的精度并且需要使用其他功能的情况下,DS3231可能是更好的选择。