数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3376|回复: 31

[STM] STM8S写的汽车自动空调温控器电瓶电压显示EC11调节CRC校验

[复制链接]
发表于 2021-9-5 22:14:39 | 显示全部楼层 |阅读模式
本帖最后由 1588858 于 2021-9-5 22:32 编辑

小妹的买菜车是手动空调的,经常说是在雨天或者晚上的时候不开吧有点热,开了又有点冷,要不时的手动开启关闭AC非常烦人,叫我研究研究,淘宝上现成的模块倒是很多而且还很便宜,但是不好看也不好用啊,都是按键式的不方便操作啊。就想用单片机自己搞,屏幕用oled炫酷一些吧,调节用EC11实现,就只用到一个所以没有开板(其实是不会画PCB)直接洞洞板,买的最小板的stm8s开发板。这还是我第一次玩单片机,以前没有玩过。感觉挺好玩。初写着代码不好看就不放了,基本上都是if switch 函数指针乱七八糟一堆,放个HEX固件吧。温度传感器采用DS18B20加入CRC校验,万一校验不通过 那么显示上一次的温度,过2秒后继续获取温度,不可能永远CRC校验错误吧。
开启了看门狗,万一程序跑飞,自动重启复位。补充,型号是STM8S103F3
先说说功能
供电电压显示 也就是12V电瓶的电压
自动保存上一次的设置。上下限温度调节16-33,温差设置0.3-3.0,自动控制模式 和 只显示温度和电压。每两秒更新一次。EC11实时响应。
只有温度和电压显示界面(这个时候继电器默认不吸合,继电器是串联在AC信号中常闭状态,不影响原车AC开关)
1,第一次刷进去都是0,这时候转动ec11,温度调节到16以上,按按键调节温差到0.3以上,就会自动保存了,下一次启动就是上一次设置的值
2,在设定温度和实时温度显示界面的时候转动EC11是调节的设定温度,比如设定22,那么实际温度到了21.9,继电器闭合AC信号断开 压缩机不工作,如果这时候温差设置的是0.3,那么到了22.3继电器不吸合AC信号接通 压缩机工作。
3,在设定温度和实时温度页面按EC11的按键进入温差调节,范围0.3-3.0,这个页面下按按键回到主页,如果不按也没有关系,没有操作7秒后自动回主页
4,在设定温度和实时温度页面长按EC11按键后进去只显示温度和电压的模式,继电器不介入工作,一直吸合状态,所以可以原车AC直接控制开和关,只当温度计使用。并且保存当前的设置,下一次开机也是这个只显示温度的状态下,,这个状态下只有长按转换自动控制和只显示温度,短按和旋转EC11没有用;
5,在只显示温度的页面下长按EC11,启动控制模式同时显示设定的温度(左边)和实时温度(右边),并且保存当前设置,下一次启动也是记忆当前的模式。
6,在自动控制的模式下,屏幕中间最下方显示的*号是表示继电器释放也就是AC闭合表示压缩机工作中,中间最下面不显示*号表示继电器吸合也就是AC断开 压缩机不工作状态

还需要一个带光耦的12V低电平触发的继电器模块。PA3输出经过一个电阻和8050连接,8050控制继电器模块工作,原来看手画的图吧。


电压检测采用PD3脚经过10K接地,100K接供电脚。
再说一下继电器的常闭是串联到AC开启信号中,不是直接控制的压缩机 这样就算单片机坏了那么默认AC信号是常闭,等于没有影响原车AC开关控制,继续手动控制。
还有上电的时候默认是继电器吸合也就是AC信号断开。这时候如果实际的温度大于设定的温度+温差那么继电器不吸合AC信号接通,压缩机工作,实际温度小于设定的温度+温差 那么继电器继续保持吸合AC断开 压缩机不工作直到实际温度高于设定的温度+温差后启动。
在只显示温度的模式下 继电器一直是不吸合状态 也就是继电器常闭,压缩机工作,通过原来一样手动开启或者关闭AC开关
不插DS18B20 显示00.0度


//////////////////////////////////////////////////////////////////////////////////         
//              GND    电源地
//              VCC   接5V或3.3v电源
//              PB4    SLK  屏幕时钟
//              PB5   SDA   屏幕信号
//              PC4   接DS18B20传感器信号脚
//              PA3   输出控制继电器
//              PC3   KEY  EC11按键
//              PC6   A   EC11A
//              PD2   B   EC11B
//              PD3   电压检测脚
//******************************************************************************/。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 3家元 +45 收起 理由
听雨亭 + 10
261307853 + 15 謝謝分享
游泳的鸟儿 + 20 優秀文章

查看全部打赏

发表于 2021-9-5 22:24:38 来自手机浏览器 | 显示全部楼层
沙发,这个牛叉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 22:25:48 | 显示全部楼层

第一次玩单片机,怕拿不出手 见笑了:loveliness:
回复 支持 反对

使用道具 举报

发表于 2021-9-5 22:33:04 来自手机浏览器 | 显示全部楼层
1588858 发表于 2021-9-5 22:25
第一次玩单片机,怕拿不出手 见笑了

要是能加个按键来切换Auto,然后再控制一下风量调节就更完美了,因为原车带自动空调的,切换到AUTO模式就是先加大出风量然后温度降下来了,自动降低出风量
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 22:36:11 | 显示全部楼层
261307853 发表于 2021-9-5 22:33
要是能加个按键来切换Auto,然后再控制一下风量调节就更完美了,因为原车带自动空调的,切换到AUTO模式就 ...

你的原车带自动空调就没有必要搞这个了吧,
而且原车的自动空调是真正意义上的,压缩机变频的 不停机的,
我们这个搞法只是代替了手去按AC开关
回复 支持 反对

使用道具 举报

发表于 2021-9-5 22:41:53 来自手机浏览器 | 显示全部楼层
1588858 发表于 2021-9-5 22:36
你的原车带自动空调就没有必要搞这个了吧,
而且原车的自动空调是真正意义上的,压缩机变频的 不停机的, ...

我的不是自动空调,但我这个可以调节温度,温度和风量调节旋钮是数字编码器,温度显示就是在旋钮上一圈小灯一格一格的,达到调节的温度压缩机停机,我就是想搞个温度显示
回复 支持 反对

使用道具 举报

发表于 2021-9-5 22:45:19 来自手机浏览器 | 显示全部楼层
1588858 发表于 2021-9-5 22:36
你的原车带自动空调就没有必要搞这个了吧,
而且原车的自动空调是真正意义上的,压缩机变频的 不停机的, ...

要是能搞到这样的旋钮改装挺好的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2021-9-5 23:57:17 来自手机浏览器 | 显示全部楼层
你这个第一次玩单片机……伤害性不大侮辱性极强…
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 00:40:08 | 显示全部楼层
触景情伤 发表于 2021-9-5 23:57
你这个第一次玩单片机……伤害性不大侮辱性极强…

真的,以前没有 玩过单片机,不过C基础有点点  汇编现在是它认识我,我不认识它了。。。
回复 支持 反对

使用道具 举报

发表于 2021-9-6 07:06:46 来自手机浏览器 | 显示全部楼层
1588858 发表于 2021-9-6 00:40
真的,以前没有 玩过单片机,不过C基础有点点  汇编现在是它认识我,我不认识它了。。。 ...

太低调了
回复 支持 反对

使用道具 举报

发表于 2021-9-6 08:00:09 | 显示全部楼层
触景情伤 发表于 2021-9-5 23:57
你这个第一次玩单片机……伤害性不大侮辱性极强…

言之有理,扮猪吃老虎的感觉
回复 支持 反对

使用道具 举报

发表于 2021-9-6 08:57:19 | 显示全部楼层
你这个第一次玩单片机……伤害性不大侮辱性极强…:sweat::sweat::sweat:
回复 支持 反对

使用道具 举报

发表于 2021-9-6 09:14:09 | 显示全部楼层
DS18B20的分辨率很高,但是精度拉胯,一般实际应用中认为其精度只有正负1度左右,小数点后的数据基本上没法用,建议你换个精度更高的温度传感器。
一般自动空调都是以0.5度为间隔设置温度的,然后以风量大小控制车内温度,频繁启停AC,对压缩机是有害的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 11:03:55 | 显示全部楼层
帝都老司机 发表于 2021-9-6 09:14
DS18B20的分辨率很高,但是精度拉胯,一般实际应用中认为其精度只有正负1度左右,小数点后的数据基本上没法 ...

18b20的精度是一般,精度一般体现的就是和实际温度不是很准 有误差,小数点的数据还是有用的啊,结合设定的温度以及温差和实际的温度的对比,本来想用PT100,成本太高了,没有必要,18b20对于这种要求够用了。结合合理的设置温差,压缩机不会太频繁的,手动的改只能这样,控制风量没有啥效果,压缩机照样一直工作,风量大小没有什么用, 原车带的那种是压缩机降低功率,同时风量降小。这样效果才好。
我是这么理解的,对不对就不知道了:lol:
回复 支持 反对

使用道具 举报

发表于 2021-9-6 11:29:37 | 显示全部楼层
1588858 发表于 2021-9-6 11:03
18b20的精度是一般,精度一般体现的就是和实际温度不是很准 有误差,小数点的数据还是有用的啊,结合设定 ...

举个例子,假设实际温度26.4度,你的设置的温度为26度,温差0.3度,此时按照你的程序逻辑,理应启动AC。而DS18B20误差范围正负1度,假设此时DS18B20的读数结果是25.9度,程序判断不满足启动条件,不启动AC。这时候你看,小数点后的数字还有意义吗?是对比了,但这个对比的没有意义。
回复 支持 反对

使用道具 举报

发表于 2021-9-6 18:06:11 | 显示全部楼层
1588858 发表于 2021-9-5 22:25
第一次玩单片机,怕拿不出手 见笑了

别怕被见笑,发出来让大佬帮忙看看怎么改改,是个学习进步的过程。
回复 支持 反对

使用道具 举报

发表于 2021-9-6 18:32:50 来自手机浏览器 | 显示全部楼层
1588858 发表于 2021-9-5 22:36
你的原车带自动空调就没有必要搞这个了吧,
而且原车的自动空调是真正意义上的,压缩机变频的 不停机的, ...

自动空调的压缩机也是停机的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 18:45:04 | 显示全部楼层
帝都老司机 发表于 2021-9-6 11:29
举个例子,假设实际温度26.4度,你的设置的温度为26度,温差0.3度,此时按照你的程序逻辑,理应启动AC。 ...

怎么会没有意义,那个误差是误差,小数点是小数点,误差在可接受范围,你就当真实温度就行了啊,而且也没有绝对的准确温度。
回复 支持 反对

使用道具 举报

发表于 2021-9-6 22:16:00 | 显示全部楼层
编码器出来 接 R3 C4  数值有点大,会不会导致稍快点转EC11 会跟不上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 22:19:59 | 显示全部楼层
hf325600 发表于 2021-9-6 22:16
编码器出来 接 R3 C4  数值有点大,会不会导致稍快点转EC11 会跟不上

不会,实测 不论转多块 ,转多慢都不影响使用不丢步不延迟,补充 是一定位一脉冲 ,20定位20脉冲的ec11
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-19 18:51 , Processed in 0.374400 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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