Funpack2-4 基于AVR64DD32的温度采集显示与恒温控制系统
本项目是基于MicroChip公司的AVR64DD32 Curiosity Nano开发板实现的恒温控制与温度监控系统,主要功能包括加热功率调控、温度监测、实时温度变化曲线、温度偏离设定温度±3°C彩灯变为红色等。
标签
嵌入式系统
Funpack活动
显示
AVR64DD32
小屁孩06
更新2023-05-06
453

基于AVR64DD32的温度采集显示与恒温控制系统

一、 项目简介:

本次设计主要使用AVR64DD32 Curiosity Nano评估板和硬核学堂的功能扩展板 ,单片机AVR64DD32主要实现信息采集,用户UI显示和逻辑控制相关功能,硬核学堂的功能扩展板实现按键,旋扭控制与指令灯,LCD显示等相关物理功能。

此交项目设计主要完成任务2 实现一个恒温自动控制系统并包含温度曲线显示相关功能,IOBV3功能扩展板上有一处加温电阻,并通过温度传感器感知板上温度的变化,测温以及在LCD屏上的温度显示,使用按键设定目标温度,并且通过程序控制加热功率,使得温度尽快尽量稳定的维持在目标温度。温度偏离设定温度±3°C彩灯变为红色。

Fje6Nr8iRQauHc27sfR0GG1_A3_5

 

二、 硬件组成与方案:

本项目主控为Microchip公司出品的新品AVR单片机AVR64DD32 Curiosity Nano开发板,板载了一个功能非常完善的8位单片机,外设资源也相当丰富。

核心微控制器:

AVR64DD32:Multi-Voltage I/O

AVR DD系列是Microchip公司AVR单片机产品线中的最新的一员,它的内部结构灵活、性能强大,有着比较丰富的外设和存储资源。该系列采用了最新的不依赖内核的外设,能够以非常低的功耗、在多种电压输入输出之间进行安全的双向通信,事件系统、可配置逻辑CCL、智能模拟外设,比如12位的ADC和过零检测都使得AVR DD系列非常适用于传感、IoT终端节点以及其它需要信号调理及电平转移的应用。运行速度最高 至 24 MHz,并具有 64 KB 闪存、8 KB SRAM 和 256B EEPROM。
AVR64DD32 产品支持四个多电压 I/O 通道,能够双向 与在高于或低于以下电压下运行的外部设备的通信 MCU 本身。MVIO 系统使 AVR® DD 成为电路板的完美器件 控制、传感器应用、物联网终端节点和其他尺寸受限 应用,以及大型系统中的传感器融合。

相关功能及引脚外设如下图所示:

FlnbzCUZw49-vw5WOWv6z2IIGygc

 

本次设计主要实现 温度采集显示和恒温自动控制系统,主要由以下内部分组成: 温度采集模块、指示显示模块、加热控制模块和 按键、旋钮操作识别模块组成:

温度采集模块- 实现对于实时温度曲线进行显示,温控开启与关闭状态显示 和 温差状态指示显示功能,目标温度与当前温度相差大于3显示红灯,目标温度与当前温度相差小于3度显示绿灯指示;
温度采集模块 通过NST112温度采集传感器使用IIC通信对于实现温度进行采集;
加热控制模块 使用MOS管的栅极驱动加热阻对 温度部分进行加热,使用PWM占空比控制加热强度;
按键、旋钮操作识别模块 通过使用AVR64DD32 ADC功能对于不同的按键、旋钮操作产生的电压进行模数转换并识别。

Fn1THsK3SCZFHBjJq3Xhv1-4ykLL

方案设计流程框图如图所示:首先,进行IIC、SPI、按键控制ADC、LCD初始化,然后在主循环中 进行不断读取当前温度值,通过读取按键根据用户输入与调节进行目标温度调节,同时进行显示更新与指示状态更新等

FlrgXwiu69tU1btiJsmfXgt09zt-

三、 相关模块与功能实现:

  • 显示模块代码实现,基于LCD厂商源代码修改创建LCD_init.h文件,通过PA4、PA5、PA6、PA7实现SPI功能并添加RES、DC、BLK接口,修改如下部分:
#include "Arduino.h"
#include "lcd_font.h"
#include <SPI.h>
#define SDA PIN_PA4
#define SCL PIN_PA6
#define CS PIN_PA7
#define RES PIN_PF2
#define DC PIN_PF3
#define BLK PIN_PF4
Fk8neSfLN3W3nGqPzlspo28E5jVt
Fk8neSfLN3W3nGqPzlspo28E5jVt
  • 温度控制使用PWM占空比调节加热强度,如下代码初始化配置TCA0外设PWM功能初始化,使用PD2接口作为PWM输出接口:
FtgTP_pfsa0BSQXHpuanOm3SWWsu
配置TCA0.SPLIT.CMP2调节占空比:
Fp582zSPptixOIpbiF0LojlJMB_V
  • 温度读取模型,使用IIC接口对于实时温度进行读取:

FrvHpIqJGhsihl4lXxScJ6vzdqZX

Fm7YRf8G8wUe5TClJ7fdS3gqGVr5

  • 按键、旋钮读取,使用ADC :

FhN4GyGbXXNdYuV0xgDBmuo4MkA0

  • 根据温差进行PWM控制部分:

FhN4GyGbXXNdYuV0xgDBmuo4MkA0

四、 效果展示:

空闲状态下,STATE:OFF, 当前温度控制模式关闭:

FoxNH2b2Oc_kIuLPU8gfdi2vEFdZ

温度控制模式开启状态下,进行恒温控制,温度曲线在目标温度上下轻微波动:

FimP3IYAKjmRazwKlk4eCJXLVn0K

温度控制模式开启状态下,温差小于3度,绿灯亮:

FllxYZjy2JGRQqALcaVF1Raav2tv

温度控制模式开启状态下,温差大于3度,红灯亮:

Fjc3luwQQuIvcVdb2_HYA3vq8t1J

五. 心得体会与总结:

 

1.  硬件开发工具的使用体验很重要:本次使用Ardunio  IDE对avr64dd32这款单片机进行了相关功能开发与应用,方便快速地进行相关开发和验证,简化了开发流程,减少了出错机会。同时也体验了官方的IDE编辑器提供了MCC图形化配置界,图形化配置工具会越来越普及,可以进一步减轻工程师的工作量,专注于功能开发,越来越好用。
2.  技术交流与互助是学习进步的关键。这次Funpack活动的完成离不开技术交流群里朋友的帮助与指导。通过交流可以扩展视野,避免走弯路,节约时间。希望Funpack这样的技术活动可以持续举办,促进更多技术交流。
3.  尝试新的技术与产品,磨练快速学习的能力。这次体验AVR64DD32 8bit单片机,锻炼了快速掌握一款新器件的能力。虽然产品不同,但熟悉的开发流程和工具可以快速上手,Funpack活动也为大家提供了尝试新技术的平台。 

非常感谢硬禾学堂与Digikey联合举办的第四期Funpack活动,希望硬禾学堂与Digikey电子越来越好!!

附件下载
AVR64DD32-TEMP.zip
团队介绍
硬核小匠
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号