在这个项目中,我们设计了一个基于Arduino的带闹钟的实时时钟。实时时钟(RTC)是一种电池供电的时钟,即使在没有外部电源或微控制器重新编程的情况下也能测量时间。
RTC显示具有所有计时功能的时钟和日历。连接到RTC的电池是一个独立的电池,与主电源没有关联或连接。
当电源恢复后,RTC显示实时时间,与断电时间无关。这种实时时钟在计算机中很常见,通常被称为CMOS(互补金属氧化物半导体)。
大多数微控制器和微处理器都内置计时器来计时。但它们只有在微控制器接通电源时才能工作。
当电源打开时,内部计时器重置为0。因此,在数据记录器等应用程序中包含一个单独的RTC芯片,当电源关闭或重置时,它不会重置为0。
实时时钟通常在数据日志记录应用程序、时间戳、警报、计时器、时钟构建等方面很有用。在本项目中,设计了一个实时时钟,它可以显示精确的时间和日期,并具有报警功能。
在这个项目中,与Arduino一起使用的是一种常用的RTC芯片DS1307。下面将详细介绍其电路、设计和工作原理。
线路图
组件的要求
组件描述
DS1307
DS1307是一种常用的实时时钟(RTC)集成电路,用于时钟和日历。clock函数提供秒、分和小时,而calendar函数提供日、日、月和年的值。
该时钟可以在12小时AM/PM指示或24小时格式中运行。RTC上必须连接3V的备用电池,以便IC在掉电时自动切换到备用电源。一个
32.768 KHz晶体连接到DS1307的振荡器端进行1 Hz的振荡。
电路设计
单片机与RTC IC DS1307之间的通信采用串行I2C双向总线。I2C协议是主模式下速度较快的设备(在本例中为Microcontroller或Arduino)和从模式下速度较慢的设备(RTC)之间的通信方法。
Arduino上有两个引脚I2C通信.模拟引脚4和5将充当SDA(串行数据)和SCL(串行时钟)。
它们分别连接到RTC的SDA和SCL引脚。这两个引脚的RTC是拉高使用10KΩ电阻。
一个液晶显示器用来显示时钟。LCD的6脚必须连接到Arduino。LCD的RS、E、D4、D5、D6、D7(引脚4、6、11、12、13、14)与Arduino的2、3、4、5、6、7连接。
设置闹钟有三个按钮。这些按钮连接到Arduino的8、9和10引脚。一个蜂鸣器连接到Arduino的引脚11上,起到报警的作用。
工作
这个项目的目的是创建一个实时和闹钟一起打卡特性。项目的工作原理如下所述。
所有的连接都按照所示的电路图进行。上传Arduino代码,LCD显示当前日期和时间。
为了设置闹钟,我们按下设置键。它将进入警报模式并询问时间,同时显示当前时间。必须按下增量键才能改变时间。
由于时钟为24小时制,所以小时数将在0到23之间递增。一旦闹钟的时间设置好,我们必须按下一个按钮进入分钟选项卡。
再次按下增量键来更改分钟数。输入闹钟时间后,按下设置键,闹钟就设置好了。
作为告警输入的值存储在Arduino的EEPROM中。这些数值不断地与当前时间进行比较。
当存储值与当前值匹配时,触发告警蜂鸣器。为了停止报警,下一个按钮被按下。
输出视频
代码
请注意
- 本课题利用Arduino和RTC IC设计了一个具有报警功能的简易实时时钟。
- 时间和报警将持续运行,因为RTC有备份电源,报警存储在Arduino的内部EEPROM中。
- 通过修改Arduino的代码可以添加贪睡、多个闹钟等功能。
49岁的反应
我需要电路图。你能发送吗?
完全阅读这篇文章,给出了电路图
你能把报警代码发过来吗?
我们很快会上传的。
代码请! !
代码在哪里?
请检查文章
我怎么能设置多个闹钟!????
如何设置多个闹铃??
我也需要。至少四次报警
先生,这行int tmp,Inc,hor,mIn,add=11;有什么用?是否有其他按钮连接arduino的pin 11 ?
Arduino的引脚11连接到Buzzer,但它被声明为“#define buzz 11”。“line int tmp,Inc,hor,mIn,add=11;”声明了一些整数变量。
图书馆在哪里?
我记错时间了,请帮帮我
任何一个帮助请我已经使这个项目的所有电路是完整的,当我打开电池lcd是在,但没有显示,像没有数字显示。有人能解决这个问题吗?
你好,请再检查一下线路。调整连接到LCD的电位器以改变对比度。
你能把这里使用的RTC库寄给我吗?我如何一次设置多个闹钟(最多10个)?
RTC模块的库可以从这里下载https://github.com/adafruit/RTClib
我能用Arduino Mega做这个吗??
因为我从学长那里借了一个Arduino Mega模块,不想不必要地买UNO ??
是的。您可以使用Arduino Mega为这个项目。
你能给我看看报警密码吗?
项目的代码上传在页面中。另外,您可以从这里下载代码https://gist.github.com/elktros/c10418217c7348c26760ed9fbb5ff244#file-arduino-alarm-clock
这是完整的工作代码吗
既然这只表你贴的是24小时,我怎么把它调到12小时?谢谢你!
你能补充一些注释吗?
先生,
你能发送多闹钟的arduino代码吗?Plzzz……
我可以下载这个电路的Eagle CAD文件吗??
代码的解释请?并给出了多个报警的代码
这要花多少钱
先生,请告诉我多个闹钟的密码。
谢谢你的编码!!
我的液晶显示器上显示的时间与当前时间相差12小时。我该怎么办?我急需帮助。
为什么这些按钮是连着地面的?
当按下按钮时,为了检测相应引脚上的LOW。
当我在ISIS PROTEUSE 7中使用这个时,LCD不会显示我的时钟,请您的建议
可爱的小项目,但不幸的是没有完成。在这篇文章下面的所有愚蠢问题中,有一个非常突出,那就是:“我记错时间了,请帮帮我!”
如果没有办法设置时钟,而你完全避免了它,那么这个项目就是无用的。
的帮助!我下载了上面给出的程序,我没有运气,它一直给我。
C:\Users\cameron\Documents\Arduino\ alarm_clock_new \ alarm_clock_new。ino:3:20:致命错误:RTClib.h:没有这样的文件或目录
# include
编译终止。
退出状态1
单板Arduino/Genuino Uno编译错误。
我知道我需要一个实时时钟,但每次我添加它似乎不工作,我将把RTC时钟文件和我如何解决它?
你好,
您需要从此链接下载“RTClib”库https://github.com/adafruit/RTClib在zip格式。解压内容,你会得到一个名为“RTClib-master”的文件夹。复制此文件夹并粘贴到Arduino libraries目录中(在本例中,路径将为C:\Users\cameron\Documents\Arduino\libraries)。
希望这将解决您的错误。
谢谢。
我该如何将这些按钮开关连接到arduino以及如何接地这些开关?把这些开关连接起来的技术是什么?
如果我想设置多个闹钟,请发送代码
由于该程序不允许设置RTC,它的使用是非常有限的,因为日光节约开关需要一个最小的时间变化。
显然,有一些程序可以改变RTC上的时间,但这需要重新编程arduino每次时间需要校正。
因此,将设置RTC添加到程序中是最受欢迎的。
我可以用RTC DS3231代替DS1307吗?我已经尝试用“RTC_DS3231 RTC;”替换行“RTC_DS1307 RTC”,并有DS3231的库,但它似乎不工作。我得到错误“RTC_DS3231没有命名类型”。
请帮忙,谢谢!
如何设置时钟?
你好。请帮个忙podría指示牌como puedo poner en hora y la fecha actual。谢谢
你好,
设置日期和时间由代码负责。当你将代码上传到Arduino时,当前的日期和时间会从系统中提取出来并上传到RTC。
我可以用rtc3231代替rtc1307吗?
我可以用Rtc DS3231代替DS1307吗
怎么改到12点后回到1点你能解释一下吗
arduino闹钟有哪些应用
嗨
你的代码显示了一些错误,我编辑了代码,只有一个错误
希望你能帮助我
类RTC_DS3231没有名为isrunning的成员