风筝
发表于: 2020-4-10 12:01:51 | 显示全部楼层

在本篇文章中,我们将学习如何使用Arduino和LDR设计基于RTC的路灯控制。该项目的概念基于低能耗。在本文中,路灯根据实时时钟模块DS3231控制的昼夜定时开启或关闭。通过编程设置定时,以确定ON和OFF时间。同样,LDR用于检测光量,并在此基础上控制路灯照明强度。


路灯的主要优点是可以提高安全性并防止事故。通常,路灯会在晚上打开,并且会一直亮到早晨。这可能会导致不必要的能源使用,因为灯会一直以全亮度发光。通过使用路灯的自动强度控制,可以依据照明条件下控制光的强度。


所需的组件

●    Arduino UNO开发板

●    DS3231 RTC模块

●    LDR光敏电阻

●    1602 LCD显示屏

●    按钮

●    连接线

●    面包板


连接电路图

Circuit-Diagram-1.jpg


首先将DS3231 RTC模块的SDA和SCL引脚连接到Arduino的A4(SDA)和A5(SCL)引脚。10KΩ电阻和LDR以分压器形式连接,其输出提供给Arduino的A0引脚。


1602 LCD模块的数据引脚,即D4 – D7分别连接到Arduino的5、4、3和2引脚。 RS和E引脚连接到引脚12和11。


电路的工作过程

使用Arduino和LDR的基于RTC的路灯控制项目以两种模式运行,即RTC模式和LDR模式。在RTC模式下,路灯会根据代码中设置的“ON Time”自动打开,并根据“OFF Time”关闭。在LDR模式下,路灯根据LDR附近环境光的强度进行控制。


代码上传后,项目将以RTC模式运行。代码中设置了两个时间,即“ON TIME”和“OFF TIME”。


Arduino将ON TIME与RTC模块的时间进行比较,当它们匹配时,LED点亮。此后,Arduino等待OFF TIME,一旦RTC模块的时间达到OFF TIME,LED就会关闭。


但是在此操作的任何时候,如果按下按钮,Arduino就会进入LDR模式。在这种模式下,Arduino根据落在LDR上的光量读取LDR的值,然后调整LED的强度。为了切换回RTC模式,您需要再次按下按钮。

RTC-Based-Street-Light-Control-Using-Arduino-LDR.jpg


源代码/程序

在上传代码之前,请先下载RTC库,下载地址:DS3231 RTC库。下面给出了使用Arduino和LDR进行基于RTC的路灯控制的代码: main.rar (1.47 KB, 下载次数: 25)

跳转到指定楼层
发表于: 2020-4-11 10:03:07 | 显示全部楼层

你好,请问把DS3231换成DS1307有影响吗
回复

使用道具 举报

风筝
发表于: 2020-4-11 10:12:58 | 显示全部楼层

人生若只如初见 发表于 2020-4-11 10:03
你好,请问把DS3231换成DS1307有影响吗

没有影响 RTC库需要更换一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-22 10:52 , Processed in 0.053927 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表