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的跳动, 感觉这个算法 又是多余的,鸡肋的。  

  • 相关阅读:
    Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录
    Django学习笔记(15)——中间件
    JAVA—API和SPI概念
    mybatis 映射器(mappers) 配置说明 加载映射文件方式
    Java的三种代理模式
    如何选择分布式事务形态(TCC,SAGA,2PC,补偿,基于消息最终一致性等等)
    什么是分布式系统中的幂等性
    js date 前一天
    getCanonicalFile与getAbsoluteFile区别
    Mybatis 示例之 SelectKey
  • 原文地址:https://www.cnblogs.com/linkfeel/p/2258457.html
Copyright © 2011-2022 走看看