zoukankan      html  css  js  c++  java
  • 简易温控器的开发

    很简单的温度控制器,控制思想是:

    1.高温模式 : 环境温度 大于设定温度,控制器工作,否则不工作

    2.低温模式 : 环境温度 小于设定温度,控制器工作,否则不工作

    环境温度也是测得的温度,是个温度探头,内部是NTC 10K的电阻。设定温度由电位器设置。控制器工作就是输出继电器。

    先说说这个电位器吧,在网上随便买了几个电位器-西班牙电位器,拿回来用,发现扭动到各处摩擦多不一样,扭起来有的地方紧,有的地方松。 扭到一个点比如是52K,回到这个点是55K,这里紧紧是举个例子,如果这个电位器外面装个大的塑料转盘旋转设定温度,线路板安装多不完全相同,转盘和周围工件有摩擦,这个滞回会更多,所以选继电器的时候要选好点的电位器,滑动平滑过多,外壳安装装上转盘后转动也要平滑,有紧的就有意外的误差了。    后来找了宏韵的电位器,这个电位器却是比较好,100K的。价格4毛一个(20%),5%的5毛。 另外本人还发现,这类电位器是有段非线性区域。比如我这个100K的电位器,比如能转200度,扭到电位器,使其电阻增大到100K,前面有段小区域电阻是为0的,就是这段区域,之后一段是随角度线性增加的。

    设定温度是旋转电位器设定的,比如可以设定0-90度等 ,原理是取电位器电压值 ,过单片机AD,AD值取前7位。AD参考电压是取VCC 5V。在使用的过程中,发现电位器的AD值总是用1位的跳动,写了个电位器消抖程序,电位器AD值波动大于2位的时候才有效果(电位器AD值是先相加16次,求平均值) 比如原来是AD值  23H  ,  上下跳动1位不起作用, 跳动2位以上起作用,比如跳动到了25H,好了跳动大于等于2位 ,这个时候我定义了一个参数Q,Q=25H,如果再跳动2位,在把相应的值赋值给Q。(另外可以这样,对于正方向增加,23H->25H ,Q=24H; 负方向的减少 23H-21H-> Q=22H) 

    看下面图片 反方向跳动后首次要由大于2的跳动, 感觉这个算法 又是多余的,鸡肋的。  

  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/linkfeel/p/2258457.html
Copyright © 2011-2022 走看看