找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3102|回复: 15
打印 上一主题 下一主题
收起左侧

使用HC32F460单片机读取K型热电偶程序@YUJINQU

  [复制链接]
跳转到指定楼层
楼主
本帖最后由 余金渠 于 2022-4-10 17:46 编辑

这篇是上一篇的续篇关于程序介绍下篇是实践篇所有代码都以GPL3协议分享HC官方的代码不在此协议范围请遵守HC官方协议在此声明!!!
这个周末写了2个库分别是NTC K型热电偶(带补偿)硬件在上篇有介绍代码和硬件有较大的联系主要是NTC和放大电路。

主要文件如果需要移植到其它芯片也是非常简单的温度范围-269~1209CODE大概需要6KB如果有需要可以裁剪比如负温度就可以裁剪掉再调整TMin这个值

如何使用
STEP 1
先将上面两个库添加到你的工程
STEP 2
分别完成这4个函数的移植注意

NTC电阻的电路是这种如果不是这样连接请重新书写

具体推导请看

STEP 3
获取温度T

这段函数参数是实际电压除X10是因为放大器放大倍数是100再加上要转化为V单位所以要X10


这里的Uvref是模拟电路电源和参考电电压的电压如果参考电压和模拟电源电源不一样需要更改程序但需要遵守GPL3
NTC推导.c
  1. #define ADCtoVoltage (Uvref/4095)
  2. Untc / U10k = Rntc / 10K
  3. ADCntc*ADCtoVoltage / ADC10K*ADCtoVoltage = Rntc / 10000

  4. ADCntc*ADCtoVoltage                Rntc
  5. -------------------  =  -----
  6. ADC10K*ADCtoVoltage                10000

  7. Rntc*ADC10K*ADCtoVoltage = ADCntc*ADCtoVoltage*10000

  8. Rntc*ADC10K = ADCntc*10000

  9.                 ADCntc*10000
  10. Rntc =  ------------
  11.                    ADC10K
  12.                   
  13.                 ADCntc*10000
  14. Rntc =  ---------------
  15.                 ADCUvref - ADCntc
复制代码


这边模拟实验一切正常我们还可以看到由于FPU的开启我们的浮点运算全部使用了F32的指令,如何开启可以看我以往的文章。

单片机代码下载: HC32F460工程模板.7z (305.17 KB, 下载次数: 25)

HC32F460ADC工程.zip

601.56 KB, 下载次数: 33, 下载积分: 黑币 -5

本周实在是没空了下周再测工程编译没有问题(已更新测试完成程序)

HC32F460增加了运算放大器补偿.zip

601.61 KB, 下载次数: 38, 下载积分: 黑币 -5

增加了关于运算放大器实际输入和理论不符问题修复

评分

参与人数 1黑币 +90 收起 理由
admin + 90 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:687759 发表于 2022-4-5 12:30 | 只看该作者
抽空测试了一下移植的程序能够正常使用大家放心使用!!!
测试环境&硬件

调试界面
我只开通了ADCI_IN0和IN1由于IN1是悬空的所以数据乱跳
IN0接了个电位器模拟放大器输入(由于PCB还没到)
下面是3张图

回复

使用道具 举报

板凳
ID:687759 发表于 2022-4-10 17:29 | 只看该作者
本帖最后由 余金渠 于 2022-4-10 17:50 编辑

在本周的测试中,PCB到了我也焊接了电路(运放的电源电压不能超过5.5V),发现实际放大出来的电压和实际测量的电压差了0.5mv*100也就是实际输入电压少了0.5mv(这里假设测量仪器是没有误差)。实验可以排除的是这和冷端无关。我怀疑是运算放大器的问题于是我换了其它型号的放大器(并且这两个运放的参数是有极大不同的)同样也差了0.5mv,于是我开始怀疑是测量仪器的问题。如果是仪器误差那么放大输出也应该只差0.5mv但是却差了0.5v*100,在此我只能归结于运放本身的问题。如果有大佬看到这个评论并知道原因麻烦回复一下。最后只能在程序当中进行补偿了。
回复

使用道具 举报

地板
ID:883242 发表于 2022-4-10 19:28 | 只看该作者
余金渠 发表于 2022-4-10 17:29
在本周的测试中,PCB到了我也焊接了电路(运放的电源电压不能超过5.5V),发现实际放大出来的电压和实际测量 ...

那么你用的是什么运算放大器?
回复

使用道具 举报

5#
ID:382454 发表于 2022-4-10 21:03 | 只看该作者
有硬件电路图嘛?
回复

使用道具 举报

6#
ID:301191 发表于 2022-4-11 14:59 | 只看该作者
顶一下
回复

使用道具 举报

7#
ID:301191 发表于 2022-4-12 22:43 | 只看该作者
顶一下
回复

使用道具 举报

8#
ID:687759 发表于 2022-5-1 10:34 | 只看该作者
Hephaestus 发表于 2022-4-10 19:28
那么你用的是什么运算放大器?

我学习了一下《op放大器电路设计》感觉是零点有漂移的问题放大器2元一个我也懒的翻型号了
回复

使用道具 举报

9#
ID:687759 发表于 2022-5-1 10:36 | 只看该作者
回复

使用道具 举报

10#
ID:687759 发表于 2022-5-1 10:47 | 只看该作者
五一小长假测试了一下代码下面是两张图给大家参考
javascript:;
javascript:;

RAHN2O3VCK@EXLY%%Q1VQ]3.png (482.54 KB, 下载次数: 126)

RAHN2O3VCK@EXLY%%Q1VQ]3.png

5TCR[)J2F@CAY4]4)L9$~@T.png (479.6 KB, 下载次数: 133)

5TCR[)J2F@CAY4]4)L9$~@T.png
回复

使用道具 举报

11#
ID:928738 发表于 2022-5-16 18:07 | 只看该作者
热电偶和热电阻是一码事吗?你是不是题目标错了
回复

使用道具 举报

12#
ID:854496 发表于 2022-11-7 13:13 | 只看该作者
感谢分享,还没接触过这款MCU,先看看K型热电偶是如何处理的
回复

使用道具 举报

13#
ID:337280 发表于 2024-1-19 14:56 | 只看该作者
首先感谢分享,用了一下楼主的热电偶部分的程序,使用过程中发现问题;
回复

使用道具 举报

14#
ID:337280 发表于 2024-1-19 15:11 | 只看该作者
问题可以说有点严重(对我来说),热电偶查表程序有问题,也很庆幸当天就出现了这个情况。当感温端热电势+冷端补偿电势的值处于第N个 与 第N+9个数之间程序正常运行,当值>第N*10+9   <(N+1)*10之间后 返回值0,数据处于该位置时条件判断不满足。

51hei截图_20240119151058.png (221.37 KB, 下载次数: 65)

51hei截图_20240119151058.png
回复

使用道具 举报

15#
ID:337280 发表于 2024-1-19 16:19 | 只看该作者
附解决办法(二分法查表)

51hei截图_20240119161903.png (76.19 KB, 下载次数: 66)

51hei截图_20240119161903.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表