检测完ADC输入之后,下面我们将其改成板载的Microchip自家的MCP9700A模拟温度传感器。
MCP9700AT-E/TT是3引脚SOT-23封装的低功耗线性有源热敏电阻。它包括将温度转换为模拟电压的模拟温度传感器。这款低成本传感器在0℃至70℃的温度范围内具有±2℃的精度。MCP9700A不需要额外的信号调理电路。通过实现这种低成本器件,可以避免热敏电阻解决方案的偏置电路开发开销。电压输出引脚(VOUT)可以直接连接到微控制器的ADC输入,其特点特性如下:
其模拟输出的电压和温度关系为:
其中Ta和V0的值为如下,可以看到电压的单位都是使用mV,因此后面测量和计算都使用mS为单位。
下面为其典型应用
原理图上可以看到其封装和链接设计如下
而在MCU那边则是接到了PB6引脚
查询WBZ45的手册可以看到PB6可以作为ADC的AN2输入端口。
因此,可以将前面的PB1(AN5)改成PB6(AN2)进行温度检测。
首先打开工程的MCC,并在Project Graph找到ADCHS点击
然后在右侧的配置选项中点开,将下面对应的地方进行相应的配置。其中特别要选择好AN2的通道及其参数。然后Generate生成代码。
修改代码,首先是参考电压,将其从3.3V改成3300mV
然后就是主函数了,首先是将通道从5改成2,即ADCHS_CH5改成ADCHS_CH2。然后计算ADC的电压并计算温度值,最终通过 串口log打印。
需要注意的是,GPIO初始化的下面两句代码,如果GPIO的PPS配置没有做的话需要还原回来。
编译下载,运行,打印的ADC值、电压值以及当前温度值。
还不确定是MPLAB X的问题还是电脑的问题,每次打开MCC都是载入非常的卡,甚至几分钟的都出不来,最后不得已强行关闭。如此造成还是比较浪费时间的,体验不好。我想如果是软件问题,希望能优化优化。
引用: Jacktang 发表于 2023-8-27 21:43 每运行一次,镊子切换输入电压 高,这镊子用处挺广
哈哈哈,简单粗鲁