小爱同学控制风扇风速-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4847|回复: 14

[已解答] 小爱同学控制风扇风速

[复制链接]
发表于 2021-6-10 16:18 | 显示全部楼层 |阅读模式
本帖最后由 BigStudent 于 2021-6-13 17:32 编辑

使用了红外发射模块连接到Node mcu(8266)上,通过小爱同学来控制风扇,现在可以正常地开启和关闭,但是在调节风速上不知怎么处理?

#include <Blinker.h>
#include <IRremote.h>

void miotLevel(uint8_t level)
{
     BLINKER_LOG("need set level: ", level);
     // 0:AUTO MODE, 1-3 LEVEL

     setLevel = level;

     BlinkerMIOT.level(level);
     BlinkerMIOT.print();
}

上述代码中的参数level不知怎么用?美的风扇似乎无法获取当前处于几档,所以直接和小爱说调到几档似乎不得行。
有没有让小爱调大风速或者调小风速的回调函数呢




发表于 2021-6-13 00:44 | 显示全部楼层
BigStudent 发表于 2021-6-13 00:39
谢谢回复。不过我还有个疑问。例如我设置风扇挡位level = 3,但是我又无法获知当前风扇的挡位是多少,如 ...

自己在程序用个全局变量记录下
发表于 2021-6-11 16:57 | 显示全部楼层
level为当前挡位,可以是1、2、3,您使用if判断后根据挡位做出相应的控制即可
 楼主| 发表于 2021-6-13 00:39 | 显示全部楼层
点灯官方 发表于 2021-6-11 16:57
level为当前挡位,可以是1、2、3,您使用if判断后根据挡位做出相应的控制即可 ...

谢谢回复。不过我还有个疑问。例如我设置风扇挡位level = 3,但是我又无法获知当前风扇的挡位是多少,如何用红外调节(发射一次红外信号可以升一档或者降一档)

点评

自己在程序用个全局变量记录下  详情 回复 发表于 2021-6-13 00:44
 楼主| 发表于 2021-6-13 09:30 | 显示全部楼层
奈何col 发表于 2021-6-13 00:44
自己在程序用个全局变量记录下

这个方法也不太好,因为风扇有记录挡位的功能,我打开风扇后,就已经处于上次的挡位了。而且如果有一次红外发射后风扇没有收到,但是全局变量却变化了,就会导致二者的量对应不上。没有办法获取风扇反馈的状态还是太行。

有没有直接让小爱调大风速或者调小风速的回调函数呢?没有开发文档提到这方面,有点无从下手

点评

没看懂你说的,这只是个很基础的编程知识,都是这么做的。。。。  详情 回复 发表于 2021-6-14 10:27
发表于 2021-6-14 10:27 | 显示全部楼层
BigStudent 发表于 2021-6-13 09:30
这个方法也不太好,因为风扇有记录挡位的功能,我打开风扇后,就已经处于上次的挡位了。而且如果有一次红 ...

没看懂你说的,这只是个很基础的编程知识,都是这么做的。。。。
发表于 2021-6-14 20:59 | 显示全部楼层
首先你的遥控器上得有这个加挡减挡功能,然后学习这两个按键的红外编码,然后可以在level 等于1时候让红外模块发送加挡指令,level等于3的时候发送减挡指令。
 楼主| 发表于 2021-6-15 09:07 | 显示全部楼层
renshuang 发表于 2021-6-14 20:59
首先你的遥控器上得有这个加挡减挡功能,然后学习这两个按键的红外编码,然后可以在level 等于1时候让红外 ...

你的意思是说让“调为一档”的语音指令来代替“调低风速”,“调为3档”代替“调高风速”是吧
 楼主| 发表于 2021-6-15 09:14 | 显示全部楼层
奈何col 发表于 2021-6-14 10:27
没看懂你说的,这只是个很基础的编程知识,都是这么做的。。。。

很简单啊,就是全局变量记录的数值和风扇的真实挡位是可能对应不上的。因为发射红外信号后发射端并没有接到反馈是否红外信号发射成功,并非可靠的方式,即使接收端没有收到,全局变量也会自增自减。
所以当出现发射红外信号后,如果风扇被东西挡到而无法获取红外信号,并没有调档时,其实全局变量也是会进行自增或自减的。由此,全局变量的值就和风扇真实挡位出现偏差,之后的代码就都乱了。

点评

看起来,和blinker没有关系,状态都需要自己记录和处理  详情 回复 发表于 2021-6-20 23:04
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 12:46 , Processed in 0.106711 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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