一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
楼主: xda-flame

关于STC-T12的控制器

  [复制链接]
 楼主| 发表于 2012-7-4 00:17 | 显示全部楼层
回复 67# goodcode


    这个时候调节电位器调节不过来,放大倍数不够。
回复

使用道具 举报

发表于 2012-7-4 07:43 | 显示全部楼层
回复  fujiachun
   这个倒是没考虑过, 因为stc的参考电压等于vcc 所以总放大倍数不可能很小. 不知 ...
goodcode 发表于 2012-7-3 16:28 https://www.yleee.com.cn/images/common/back.gif

358的开环增益好像是10的5次方,对于直流放大200倍没有问题,但是布线和干扰要求就比较高,毕竟噪音也放大200倍。
回复

使用道具 举报

发表于 2012-7-4 07:48 | 显示全部楼层
回复  goodcode


    这个时候调节电位器调节不过来,放大倍数不够。
xda-flame 发表于 2012-7-4 00:17 https://www.yleee.com.cn/images/common/back.gif

短路输入端,测量一下358的输出电压,在软件中先减去这个电压看看。
回复

使用道具 举报

发表于 2012-7-4 07:50 | 显示全部楼层
xda-flame 先试试这个串口版本, R30短接, 你要重新打样的时候就重新设计放大部分吧 按付老师说的 或者干脆就 ...
goodcode 发表于 2012-7-3 18:46 https://www.yleee.com.cn/images/common/back.gif

如果改硬件,直接把358做虚地当双电源用试试,这样可以硬件把失调调到零
回复

使用道具 举报

 楼主| 发表于 2012-7-4 08:45 | 显示全部楼层
回复 73# fujiachun


    失调电压不同的IC有的在20多mv有的在50多60mv左右,用的是进口的LM358。
回复

使用道具 举报

 楼主| 发表于 2012-7-4 08:47 | 显示全部楼层
回复 72# fujiachun


    如果是布线等的问题那么刷串口版的固件还是会一样的干扰。
回复

使用道具 举报

 楼主| 发表于 2012-7-4 08:50 | 显示全部楼层
回复 74# fujiachun


    如果用到双电源或换更高级的运放不知道能否用到仪用电路?
回复

使用道具 举报

 楼主| 发表于 2012-7-4 09:01 | 显示全部楼层
回复 63# goodcode


    不知道是否是因为正常版本数码管的驱动电流对ADC造成的影响?因为刷串口版本的时候数码管是不亮的,等下设置好温度后把数码管去掉试试。
回复

使用道具 举报

发表于 2012-7-4 10:41 | 显示全部楼层
回复  fujiachun
    失调电压不同的IC有的在20多mv有的在50多60mv左右,用的是进口的LM358。
xda-flame 发表于 2012-7-4 08:45 https://www.yleee.com.cn/images/common/back.gif

确定其中的一片,然后修改程序来测试,这样,最多每次串口刷一下这个数据就好了。比如测量值是50毫伏,然后在程序的ADC值中先去掉这个50毫伏,再计算温度分度,这样如果温度分度基本准确的话,可以测量这个失调,然后用串口刷进单片机,后面不是就都准确啦。
这个毕竟是烙铁,用不到仪表级的芯片,这个毕竟只是烙铁。双电源的运放也可以使用虚地的方式工作在单电源下的。
回复

使用道具 举报

发表于 2012-7-4 12:05 | 显示全部楼层
回复 78# xda-flame


新串口版本中, 注意增加的设置, "失调修正", "放大增益"
失调修正

设置失调修正为0, 设定温度为1, 命令 "开始加热" 烙铁保持室温(或者短接第一级输入)
看日志, max adc值就为修正值. 在软件中填入失调修正就可以了

放大增益
就是热电偶放大部分的总增益值, 程序会用他还原出原始热电偶电压

  1. //使用长整形运算
  2. unsigned int ReadTemperature(void)
  3. {
  4.     /*功能: 获取当前T12热电偶的温度*/
  5.     unsigned int TL431Result, T12Result;
  6.     unsigned char NTCResult, NTCTemper;
  7.     unsigned long voltageScale, vin;

  8.     //读取AD值
  9.     TL431Result = GetADCResultFilter(TL431_ADC);
  10.     T12Result = GetADCResultFilter(T12_ADC);
  11.     NTCResult = GetADCResult(NTC_ADC, 0) + config.NTCFixValue;
  12.     //当前室温
  13.     NTCTemper = ADCToTemperature(NTCResult);

  14.     //调试信息输出
  15.     DBG(dbgInfo.TL431Result = TL431Result;);
  16.     DBG(dbgInfo.T12Result = T12Result;);
  17.     DBG(dbgInfo.NTCResult = NTCResult;);
  18.     DBG(dbgInfo.NTCtemper = NTCTemper;);

  19.     //获得当前每AD每bit对应电压单位 (uv) 扩大TL431电压mv->uv
  20.     voltageScale = ((unsigned long)config.TL431Voltage*1000) /(unsigned long)TL431Result;
  21.     //获得热电偶放大后电压(uv)
  22.     vin = voltageScale * (unsigned long)(T12Result-config.AMPFixValue);
  23.     //获得当前热电偶实际电压(uv)
  24.     vin = vin / (unsigned long)config.AMPGain;
  25.     //实际查表电压值 公式 热电偶当前电压值 + 上冷端电压 单位uv;
  26.     vin = vin  + TemperatureToVoltage( NTCTemper);
  27.     //转换热电偶电压值为温度值的十倍
  28.     return VoltageToTemperature( (unsigned int)vin);
  29. }
复制代码


代码中
config.AMPFixValue 为失调修正值
config.AMPGain为运放增益

这个跟老版本不兼容, 可以全从软件上来修正温度. 所以电位器可以短路,或者改变放大部分的电路.
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-25 19:03 , Processed in 0.039773 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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