用arduino 做一个万年历
每月下旬的四到五天有一个工作量的低谷期,利用这段时间,我们再折腾一下arduino。这次我们做一个万年历。
一、所需材料
根据我们就地取材的原则,这次我们还是要充分利用现有材料:
材料表:
1、一个带I2C的LCD1602显示屏,用于显示日期、时间、星期等信息。
之所以要用带I2C的屏,是因为单独的LCD1602需要接12条线,除了VVC和GND外,占6个接口,而且还需要一个10K的电位器来调整屏的亮度,而使用带I2C的,一共有四条线就足够了一条VVC,一条GND,一条SDA,一条SCL,而且自带调节屏幕亮度的电位器。能让我们的万年历系统简洁不少。
2、一块arduino nano单片机。其它版本的也行,我一直用nano不是l因为我喜欢它,主要是上次一次买了五个,一直在杂物盒时放着。
3、一个DS3231时钟模块,用来为arduino提供时钟。
我用的是DS3231。这是一款高精度I2C实时时钟模块,带一个纽扣电池,用于在系统掉电时能够保存时间信息。这个模块具有集成的温度补偿晶体振荡器。它的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。还有月末日期和闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。我们的万年历需要从DS3231中取出年、月日、星期、时、分、秒及温度数据。
4、一个小喇叭,用来为闹钟发声用,这是我从一个旧收音机上拆下来的。
5、两个轻触按键开关配套两个220欧的电阻,用于手工设置日期时间的。
6、一块锂电池和一个充电模块,充电模块有两个作用:一是通过5v的手机充电器为锂电池充电,二是将锂电池的3.7v电压升到5v为单片机供电。
7、一个开关,用于控制电源通断。
二、连接示意图
1、供电系统示意图:
正常情况下,电池向充电板的5v输出提供电源,通过一个mini USB口给arduino供电,当我们用micro usb线给电池充电时,也会同时给arduino供电。
2、arduino和各模块的连接图:
三、程序源码
源码下载地址:
https://pan.baidu.com/s/1XuRiTCtXlPuleMD6E4Inbg
提取码:k63v
四、运行效果和操作说明
系统通电后,会在LCD显示相关信息,第一行为日期和星期缩写,第二行为时间和温度。但显示的日期时间为2000-01-01 00:00:00 星期一。这是DS3231的初始时间,我们需要自己设置时间。
长按设置键,2000的年份数字就会闪烁,按调整键就可以增加这个值,到99后再按就会回到00,完成后再次按设置键,就能设置月度,然后是日期、星期、时、分、秒都可以设置。
还有,DS3231可以保存两个闹钟,我们也可以设置闹钟时间,手机没电,就不拍图片了,各位自己折腾吧。
- 一个农历的万年历代码
- 用12864液晶作了一个万年历
- 学习了一下基础的java完成了一个万年历
- 使用DHT11制作一个Arduino温度数据记录仪
- 基于ci框架 修改出来了一个带农历的万年历。
- 如何制作一个Arduino温度数据记录仪
- Arduino 用4位共阴数码管造一个计数器
- 用java做一个简单的万年历
- 用jquery写的一个万年历(自写)
- java 实现一个简单的万年历
- C语言实现的一个简单的万年历
- 用Arduino+OSC建立一个iPad铁路王国巡视机
- 如何使用 Arduino 制作一个绘图仪 | Linux 中国
- arduino LWIP 向yeelink增加一个数据点的实例
- 使用PHP制作一个万年历
- 旧DVD驱动器没用了?DIY一个Arduino Mini数控绘图机吧
- 用Arduino Uno和W5100做一个iphone推送提醒装置
- 推荐一个Arduino学习模拟器: 123D Circuites
- 使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED
- 如何用java代码制作一个万年历