基于AVR64DD32 Curiosity Nano的温度监测报警
本片文章分享我在Funpack第二季第四期活动中使用AVR64DD32 Curiosity Nano开发板进行温度监测报警的流程及效果展示
标签
嵌入式系统
Funpack活动
AVR64DD32 Curiosity Nano
反正都一样
更新2023-05-05
428

FqVvM6celU-yz-ppRM0EXd0ZryRy

项目介绍

这里是我参加Funpack第二季第四期活动的任务总结报告,我所完成的是基于AVR64DD32 Curiosity Nano的温度监测报警,开发板时刻检测温度传感器的数据,若高于设定值,则蜂鸣器发出警报声

 

主要硬件介绍

AVR64DD32 Curiosity Nano的微控制器hiAVR单片机产品线中的最新的一员,它的内部结构灵活、性能强大,有着比较丰富的外设和存储资源。该系列采用了最新的不依赖内核的外设,能够以非常低的功耗、在多种电压输入输出之间进行安全的双向通信,事件系统、可配置逻辑CCL、智能模拟外设,比如12位的ADC和过零检测都使得AVR DD系列非常适用于传感、IoT终端节点以及其它需要信号调理及电平转移的应用。

FvoPg7QTX07lR06zeUv4oJxdFWRM

温度传感器使用的是TMP235,该传感器可提供与温度成比例的输出电压,精度高,非常适合用于各种模拟温度感应应用。0°C至+70°C的典型精度为±0.5°C和±1°C,将TMP235传感器从类似引脚兼容器件中区分开来。TMP235的电源电压范围为2.3V至5.5V,在-40°C至+150°C整个温度范围内正斜率输出为10mV/°C。通过9µA典型静态电流和 800µs典型上电时间实现电源循环架构,最大限度地降低电池供电设备的功耗。

FvIIrs1Y2GMI5KxyyoA7m2n1Ga4gFq5bNd4naOPIwULWD-cCNjUpw8GP

在报警方面,则是使用一个无源蜂鸣器,直接通直流电就可以工作,接在io口上,直接高电平也即可。

FtgMDYxEFXhD1_zQVQSPTrhOZaDR

 

主要软件介绍

                            FjDmKtvJ8VggAwKlrqVhcMMG2cr2

在软件开发上,虽说官方可以使用MPLAB® X IDE和Microchip Studio进行开发,但发现arduino上已经有这个单片机的支持库了,所以直接使用arduino进行开发,快捷简单。

#include <Arduino.h>
#include "SoftwareSerial.h"
SoftwareSerial myserial(PIN_PD5,PIN_PD4);
//宏定义
#define led_1 PIN_PF5
#define temperature PIN_PF2
#define beep_1 PIN_PA5
float temperature_value=0;
void setup() {//初始化
  myserial.begin(115200);
  pinMode(LED_BUILTIN,OUTPUT);
  pinMode(beep_1,OUTPUT);
  analogReadResolution(10);//
}
void get_value(){
  int value=0;
  value=analogRead(temperature);
  temperature_value=value*(3.0/1024);
  myserial.print(temperature_value);
  myserial.print("V,");
  temperature_value=100*temperature_value-50;
  myserial.print(temperature_value);
  if(temperature_value>21){
    digitalWrite(beep_1,1);
  }else{
    digitalWrite(beep_1,0);
  }
  myserial.print("度\n");
}
void loop() {//主循环
  // put your main code here, to run repeatedly:
  digitalWrite(led_1,1);
  get_value();
  delay(500);
  
  digitalWrite(led_1,0);
  get_value();
  delay(500);
}

上面代码中,setup函数对led及蜂鸣器的io口初始化,设置为输出模式,设置模拟口的分辨率为10,因为本身板子的adc是有10bit,12bit两个分辨率的。在loop主循环中,则是不断的对温度传感器读取模拟量,将数值进行处理,便可得到温度值了。最后对温度值进行比较,若高出设定值,则蜂鸣器响起。

 

总结

在本次活动中,学习了AVR64DD系列单片机怎么使用,毕竟这相较于其他的avr芯片有些其他更加使用的外设。在过程中遇到的问题,通过百度搜索都能找到适合的答案,使自我得到了提升感谢硬禾学堂平台。

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