标题:
单片机433Mhz接收,解码后如何程序如何只处理一次?
[打印本页]
作者:
innere
时间:
2023-3-17 21:06
标题:
单片机433Mhz接收,解码后如何程序如何只处理一次?
需求,遥控按某个按键,第一次控制继电器吸,第二次控制继电器断
现情况是因为按一次,遥控会发多次,或者使用者按的时间有长有短
导致解码后不停的控制继电器分合,有什么办法在一次按键后只处理一次
解码用的是中断20uS,检测接收引脚电平那种方式能有几行代码最好
先行谢
作者:
devcang
时间:
2023-3-17 22:04
现在的程序是如何的,本坛应该也能搜索到范例去参考
作者:
innere
时间:
2023-3-17 22:13
devcang 发表于 2023-3-17 22:04
现在的程序是如何的,本坛应该也能搜索到范例去参考
搜到一个汇编的。。。很疲惫
作者:
wulin
时间:
2023-3-17 22:16
收到第一次作个标记,连续收到相同码按一次计,结束后间隔一定时间清除标记,再次收到相同码按再次计。
作者:
glinfei
时间:
2023-3-17 22:47
不知道你具体用哪个模块,一般都设成两个键,分别控制开关
作者:
人中狼
时间:
2023-3-17 23:13
单键很难解决这个问题
作者:
lmn2005
时间:
2023-3-18 07:46
4楼的朋友说得对,设置个标志位。接收到信号后进行信号分析和处理,然后清除标志位,与红外的接收道理一样。
作者:
a399288395
时间:
2023-3-18 09:34
情况没有描写清楚;433 是用的现成模块; 还是自己用单片机解码;
如果是模块 TB常用的模块 又分成自锁和非自锁以及互锁;如果是单片机解码,先把解码做好 再根据解码的返回值处理要做的动作;
原文:现情况是因为按一次,遥控会发多次, ,,, 就这个情况 ;说明解码还没有顺利做好;类似于按键防抖没有做;按一次执行多次; 简单的处理办法就是和平时学的按键差不多;设立标志位或者松手检测;
作者:
li64331218
时间:
2023-3-18 09:58
一般的按键响应应该是ms级别的。中断时间拉长点,不要频繁的进入中断。继电器吸合或者断开后有没有反馈标志。判断一下,在多长时间内认为是无效的。要根据你的具体应用场景来考虑了
作者:
lkc8210
时间:
2023-3-18 14:03
新增倒计时变量和命令变量
每次成功解码后判断倒计时变量是否零
是零才放入命令变量
並且每次成功解码后都对倒计时变量赋值(如1000ms)
並在定时中断内減一,直到零
命令变量用完后要置零
作者:
1441339146
时间:
2023-3-27 12:59
当解码到正确的遥控器信号,单片机触发继电器动作,紧接着做一个标记屏蔽解码,同时开始倒计时1s。1s时间到后解除屏蔽,接续解码新的信号。这样就能做到触发后1s内不会触发第二遍。
作者:
zch5200
时间:
2023-3-28 14:32
红外遥控器一般只发一次指令码,就算长按后面都只发引导码和空数据,单片机接收的数据里可以分析的。用标志位不是十分可靠,有可能把双击算按一次。
作者:
jzyb
时间:
2023-3-28 16:28
可以在程序中添加一个标志位,用来记录当前继电器的状态。当遥控器按下某个按键时,程序检查标志位的状态并执行相应的操作(吸合或断开继电器)。然后,你可以在程序中添加一个延时函数,在一次按键操作后延迟一段时间再接收下一次按键信号,以避免重复操作。 另外,您可以尝试使用去抖动技术来解决按键信号不稳定的问题。这种技术通过软件或硬件方法来消除按键信号中的抖动,从而提高系统的稳定性。
作者:
MCU_FANS
时间:
2023-3-29 10:50
之前做过跟这基本一样的433遥控产品:单键开关。程序逻辑:
开关断开状态 >> 解码433是否有有效值 >> 解码成功433 >> 闭合开关 >> 开关闭合状态 >> 检测433连续一段时间没有遥控信号(一堆无规则脉冲) >> 检测到没有遥控信号 >> 解码433是否有有效值 >> 解码成功433 >> 断开开关 >> 回到原点
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1