本次分享的项目是由Pulsar2设计完成的多功能加热与温度监控系统,增加项目功能的趣味性,完成了5个UI界面的设计,分别实现了不同的功能,是观赏度很高的项目,值得一看这也是我们Funpack第二季第四期活动最后一个项目分享,如果有帮助记得点赞收藏哦。
项目已上传电子森林:https://www.eetree.cn/project/detail/1697项目简介本项目是基于AVR64DD32平台的加热与温度监控系统,主要功能包括加热功率调控、温度监测、实时温度变化曲线、温度曲线截图的保存与显示等。
本项目主控为Microchip公司出品的新品AVR单片机开发板AVR64DD32 Curiosity Nano此开发板板载了一个调试器,从而无需外部的调试工具即可对MCU进行编程和调试另外此开发板还板载了一个机械按键(可复用为复位按键或者用户按键)和一个用户LED,可用于提示程序运行状态。
本项目的另一块主体电路板为硬禾学堂出品的IO扩展板,此扩展板包含了诸多外设,本项目使用到的外设包含:1.44吋LCD屏幕(像素128*128,驱动芯片ST7735)、IIC接口的温度测量芯片NST112、三色RGBLED、可通过PWM调节加热功率的加热电路、xy轴摇杆、带按键的旋转编码器以及两个机械按键。
硬件设计整体硬件连接框图如下图所示,以AVR64DD32 Curiosity Nano评估板为核心,以IO扩展板上的LCD和按键、旋转编码器及摇杆搭建人机交互环境,用来选择与查看相应功能展示IO扩展板上的加热电路、RGBLED和温度计用来完成主要功能。
软件模块介绍软件完成的功能为:使用摇杆来切换当前菜单界面,点击旋转编码器按键作为确认按键,以选择当前展示功能,两个机械按键分别作为设置和返回按键,旋转编码器的正、反转用来调节部分页面的数值大小目前完成了以下五个模块的功能设计。
1LCD显示模块············LCD显示模块直接由AVR64DD32评估板片内硬件SPI驱动,在使用摇杆、按键等切换菜单、进出菜单时执行页面初始化pageinit(page),初始化后则在主循环内执行页面刷新pagerefresh(page)。
2加热模块············加热模块使用片内定时器TCA0产生PWM波来控制加热功率,软件每次复位时会自动将加热功率调节为1% ,防止温度过热加热功率在“功率调节”页面内调节,旋转编码器顺时针旋转时增加功率,逆时针旋转时则减小,按下旋转编码器按钮确认功率并自动退出页面,如果不确定直接按下返回按键则功率保持之前的数值不变。
3温度检测模块············温度监测模块使用片内硬件IIC直接读取温度温度监测芯片NST112可配置高低温警报,超出温度范围是INT脚产生中断信号,检测到报警变化后还需判断当前温度是高温报警还是低温报警,然后点亮相应的LED灯,高温亮红灯、低温亮蓝灯,正常时则亮绿灯。
4按键与编码相应模块············IO扩展板上的按键与编码器响应模块搭建了一个电阻网络,在按下不同按键或者转动编码器的时候检测点的电压会有不同的变化,软件上只需使用片内ADC检测当前ADC转化值的大小变化即可响应相应动作。
5摇杆响应模块············IO扩展板上使用了一颗四运放芯片搭建了一个PWM波生成电路,摇杆的x轴与y轴的阻值变化分影响PWM波的周期与占空比,软件上使用GPIO中断配合定时器实时计算当前PWM波的周期与占空比即可响应摇杆动作。
各模块主要实现代码可点击文末“阅读原文”查看。实现功能展示1、各菜单页面展示
2、温升曲线菜单功能展示,点击确认键(旋转编码器按键)截图当前页面,截图保存后可在相册菜单内查看。
3、功率调节菜单功能展示,转动旋转编码器可调节功率大小,按下确认键加载当前功率值并自动退出,直接返回则保持进入菜单之前的功率。
4、相册功能,进入相册菜单,按下确认按键即可显示图片。
以上就是该项目的全部内容介绍啦,该项目针对GUI相关部分设计了很多花样,项目观感很不错!如果你想了解更多项目细节可点击“阅读原文”,查看完整项目报告ps:将“硬禾学堂”微信公众号设为星标,随时可查看优秀项目和最新活动详情。
END硬禾学堂硬禾团队一直致力于给电子工程师和相关专业的同学,带来规范的核心技能课程,帮助大家在学习和工作的各个阶段,都能有效地提升自己的职业能力。
硬禾学堂我们一起在电子领域探索前进关注硬禾公众号,随时直达课堂
点击阅读原文查看更多