admin 管理员组文章数量: 1086019
2024年4月27日发(作者:八位颜色代码查询)
ELECTRONICS WORLD
・
技术交流
基于Arduino智能电子钟系统设计与实现
江海职业技术学院机电汽车学院 张丽红 方 婷
5G的到来,物联网的应用会越来越广泛,家具生活用品
也需要联网,时钟是我们生活中离不开的物品,单片机作为
一个具有CPU的集成控制芯片,作为控制器被广泛使用,基
于Arduino单片机的智能电子时钟系统开发成本低,具有人机
对话简单,操作方便,显示清晰等特点。
随着ABC(Artificial intelligence,Big data,Cloud
computing)(/s?id=72
732367&wfr=spider&for=pc)时代与5G的到来,物联网就会
随处可见,要想非电物品相连,那么每个物体都离不开计算
机技术,单片机这款最小的计算机就大有可为,生活中的各
种智能物品、现代工业自动化测控领域都会有其身影,在工
业4.0标准下,单片机已成为智能控制系统的核心。Arduino
(柯博文,Arduino完全实战:电子工业出版社,2016)单
片机是软件硬件开源的单片机系统开发平台,可以通过常用
的编程语言C语言进行程序的开发,开发成本低,Arduino还
可通过各种各样的传感器来采集数据,处理数据,所以利用
Arduino作为控制器实现智能电子时钟的系统是可行的。
DS1302和4个独立按键,实现实时时钟与闹钟的设定,设计方案硬件框图
如图1所示。
1.2 硬件电路图设计
根据硬件框图,利用Proteus软件绘制了基于Arduino的智能电子钟控
制系统原理图,如图2所示。其中Arduino的数据输入输出口分配如下:
D12、D11、D5、D6、D9、D10接液晶屏1602,后4个接1602的数据口,
D11接液晶屏的使能端,D12接片选端;Arduino的D2、D3、D4分别接
DS1302的RST、SCLK、I/O上,DS1302的晶振使用32.768KHz,3V电
池用于芯片备份电池,主电源关闭后,时钟还可正常运行;按键采用
4个,分别实现时钟设置、闹钟设置、加1键、减1键的功能,考虑到
Arduino模拟量输入端口的数量有限问题、且按键数量不太多,保证运
行稳定有效等因素,最终Arduino和按键的连接方式采用AD式键盘;
Arduino的端口A0接AD式键盘;AD式键盘依次接了4个电阻,通过电阻
分压来区分4个按键;Arduino的数据端D7接温度采集传感器DS18B20的
数据输出端2脚。
图1 硬件框图
1 基于Arduino智能电子钟硬件电路设计
1.1 设计方案
Arduino UNO开发板,有32个端口,除去电源与时钟
端口后,模拟量输入端口(ANALOG IN)有6个,数字量
(DIGITAL)输入输出端口有14个,由于资源少,端口数
量少,所以外围芯片采用常用的1602液晶屏、DS18B20、
图2 电子钟控制系统硬件电路图
2 基于Arduino智能电子钟控制系统的软件设计
利用Arduino单片机的专门程序编译软件IDE进行程序的编制与调
试,编程思路主要是采用模块式结构,分别编制并调试各个功能模块程
•
114
•
ELECTRONICS WORLD
・
技术交流
序,如液晶显示模块程序、时钟读取模块程序、温度采集模块程
序、按键读取并处理模块程序。利用串口调试工具和硬件仿真等方
法调试各个模块的单独程序后,再集成在一个程序里进行联调。集
成调试时要注意各个模块之间的时序问题,以及要把相应的初始
化程序全部放到初始化安装setup()函数中,需实现的主要的功能的
程序放到主循环loop()函数中。arduino库文件中有大量的库函数可
用,大部分程序的细节不需自己编制,使用时根据需要可调用修改
使用,编制系统程序时大部分时间是了解掌握所用函数的使用方
法,也就是要知道这些函数需要什么参数和表达式,输入输出数据
的类型、状态等。
2.1 1602液晶显示程序
1602液晶显示程序包含的LiquidCrystal.h头文件中已编写了操
作液晶的许多函数,根据相关函数功能调用即可,方便程序编制,
如LiquidCrystal lcd(12,11,5,6,9,10)函数参数要根据液晶屏1602与
Arduino单片机IO接口进行设定。显示程序如下:
#include
LiquidCrystal lcd(12,11,5,6,9,10);
void setup()//初始化函数,用于启动LCD以及用了串口进行调
试
{ (16,2);sor(0,1);(16,2);
(“I LOVE YOU”);}//打印字符串
void loop()
{(millis()/1000);(“ Second”);}
2.2 读取时钟信号程序
读取1302芯片时钟信号程序的调试是通过Arduino自带的串口
调试功能实现的,编制了串口调试时钟程序,主要利用两个串口操
作函数:(9600) 和n(buf)实现的。通过串口调
试确定1302芯片时钟信号格式、类型等状态后,再把相应的时钟程
序合成到显示程序中,最终使1302的实时时钟信号按照一定的格式
通过1602显示出来。
2.3 按键处理程序
从AD键盘电路图中知道,不同的按键会接通不同位置的电
阻,从而会产生不同的输出电压,通过对比电压值的范围来确定相
应的按键,这些电压值的范围可通过串口程序调试出来,所以先编
制了AD键盘串口调试程序,找出各个按键的电压数据区间,通过
数据区间利用if语句读出键值,注意每个按键对应的电压值是个数
据区间,不是一个固定值。根据各按键需要实现的功能编制了按键
处理函数,主要是利用switch分支与语句实现的,并送1602进行相
应的时钟显示。
2.4 温度的读取与显示
DS18B20温度传感器通过单总线一条口线接在Arduino单片机
的D7上,实现双向通信,温度读取程序要包含OneWire.h头文件,
先通过串口调试工具进行DS18B20温度值的读取,找出温度值的数
据特点,然后再通过Arduino单片机进行温度值的处理,并把读取
的温度值在液晶显示屏1602上进行显示。
3 基于AArduino的智能电子钟系统调试结果
利用搭建好的基于Arduino单片机的电子钟控制系统硬件电
路,在Arduino单片机IDE开发环境下,通过Arduino单片机自带的
串口调试工具进行各个程序模块的调试后再进行硬件仿真,逐一完
成后通过整合、系统规划调整、不断的仿真调试,最终完成了系统
程序的调试仿真,基于Arduino单片机的智能电子钟控制系统调试
结果如图3所示。其中液晶屏上分两行进行显示:首行显示的是星
期、室内实时温读、秒,第二行显示的是年、月、日、时、分,
秒。
图3 智能电子钟控制系统调试结果
4 总结
利用Arduino单片机开发项目,比利用51单片机要简单快速,
容易上手,但是以有一定的单片机系统开发能力为前提的。根据智
能电子钟控制系统的电路图,通过串口调试工具先形成各个模块程
序,然后组织整合模块程序形成电子钟控制系统程序,通过实践调
试,基于Arduino单片机的智能电子钟控制系统达到了设计要求,
并具有窗口界面简单、时钟调整方便等特点。
基金项目:江苏省教育厅高校哲学社会科学研究基金项目(批
准号:2018SJA1189);江苏省大学生创新创业训练项目(项目编
号:2Y)。
作者简介:张丽红(1973—),女,硕士研究生,副教授,江
海职业技术学院教师,研究方向:自动控制技术。
•
115
•
版权声明:本文标题:基于arduino智能电子钟系统设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714209219a669905.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论