这是一款采用 DS3231 实时时钟模块制作的 LCD 时钟,与 DS1307 不同,它具有报警和温度监控功能。在这种情况下,液晶显示屏会显示日期、时间、两个警报以及当前温度。最有趣的部分是时钟的完整设置以及静音警报是通过电视遥控器完成的。
建筑所需的硬件零件:
-Arduino板
-DS3231 RTC板
-20X4液晶显示器
-I2C Arduino LCD显示模块
-RC5协议红外遥控
-IR 接收器
-引领
-蜂鸣器
-220 欧姆电阻
基本代码取自 simple-circuit 网页 我做了一些更改: 为简单起见,我在 LCD 显示器上添加了一个 I2C 模块并相应地修改了代码。我还添加了一个小蜂鸣器,它可以在警报激活时产生具有给定频率的声音。
DS3231板提供5V作为20x4 LCD和IR接收器,这个5V来自Arduino板,该板和Arduino之间有3条数据线连接,SCL线连接到模拟引脚5,SDA连接到模拟引脚 4 和 INT 线连接到数字引脚 2,它是 Arduino 的外部中断引脚(INT0)。DS3231 在有警报(警报 1 或警报 2)时中断微控制器。
IR 接收器有 3 个引脚:GND、VCC 和 OUT,其中 OUT 引脚连接到 Arduino 引脚 3,即外部中断引脚 (INT1)。
连接到 Arduino 引脚 12 的 LED 用作警报指示器(警报 1 或警报 2),因此如果有警报,DS3231 会拉低中断微控制器(ATmega328P)的 INT 引脚,并且微控制器会打开 LED,这里遥控器上的按钮将 LED 和发生的警报都关闭。
我们需要解码我们的遥控器才能知道每个按钮的代码,因为我们必须将它添加到 Arduino 软件(代码)中。
本项目使用的遥控器是一个RC5协议的TV IR遥控器,如下图所示(使用的按键有编号):
按钮功能代码(十六进制格式)
1 增量 0x20
2 设置时间和日历 0x10
3 递减 0x21
4 设置闹钟 0x11
5 复位报警 0x0C
请注意,此代码必须使用具有 RC5 协议的遥控器,并且大多数此类远程设备由旧的飞利浦设备使用。下面是一个简单的代码“IR协议查找器”,它可以让您轻松确定任何遥控器的协议,以及每个按钮的值。
图为我使用的遥控器,带有标记的按键值和功能。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !