很简单的温度控制器,控制思想是:
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的跳动, 感觉这个算法 又是多余的,鸡肋的。