用于让自动车库门开启器知道我在墙上控制面板上按下了哪个按钮的协议名称是什么?

电器工程 沟通 控制 遥控 协议
2022-01-10 21:59:53

我车库里的有线墙壁控制面板只有 2 根电线连接到它。然而不知何故,当我按下大“门”按钮时,它的作用与按下“灯”按钮或“锁定”按钮时不同。那对电线连接到头顶自动车库门开启器。

许多不同的顶置式自动车库门开启器和许多不同的墙壁控制面板都相互兼容。我怀疑它们是兼容的,因为它们都以相同的方式区分按钮。那条路叫什么名字?如果在实际车库中使用了几种不同的、不兼容的方式或协议,那么这些方式的名称是什么?

(我拥有哪个特定的开门器并不重要,因为我想知道大多数开门器使用的方式的名称,即使这与我的特定门的方式不完全相同。但作为一个例子,我目前使用的是 张伯伦 LiftMaster 车库门开启器 )。

这是来自 BlueMate.com 网站的 2 家竞争公司(以及一些不兼容的公司)的一些明显兼容的 2 按钮和 3 按钮墙壁控制面板的示例:

几个 2 按钮和 3 按钮墙壁控制面板的照片

像许多其他人一样,我正在设计和制造一个连接到相同的 2 根电线的小工具,当我开车离开时,它会告诉自动车库门开启器为我滚下车库门,但忘记滚下它。使用光耦合器和 MOSFET 调试车库门开启器电路通过 Arduino 激活车库遥控器将遥控器按钮与 GPIO 和晶体管短路;等等)。如果我的小工具使用适用于许多或大多数车库门的标准方法,那就太好了。如果我的小工具也可以像墙壁控制面板那样激活和停用顶灯,那就太好了。

用于让自动车库门开启器知道我在墙上控制面板上按下了哪个按钮的协议名称是什么?

我正在寻找一个更像“它被称为 HART 通信协议;主要品种是……”的答案,而不像那些善意的帖子那样建议“只需用示波器查看信号,并假设如果您的原型在您家中的 Mosaic Netscape 中的 ActiveX 控件中工作,那么它将适用于所有人”。

4个回答

我用我的示波器在我的 Chamberlin liftmaster pro 一级方程式开瓶器电线上做了一点探测。有 2 根电线连接到 3 按钮墙壁开关(门开/关、灯开/关、锁开/关)。这是一个 PWM 编码的直流信号,高约 18v。当没有按下任何按钮时,会有一个持续 200us 的 80Hz 周期的低脉冲。当按下灯按钮时,两条墙线连接到一个 1uF 电解电容器,该电解电容器将 PWM 信号更改为具有约 3ms 的低周期。锁定按钮上面有一个 22uF 的电容,所以低信号会更长。按下门按钮时,电线短路(0V,无PWM)。

另外值得注意的是,当开启器“锁定”时,墙壁开关 LED 会闪烁。现在在线上有 2 个 PWM 信号非常有效:一个宽的低脉冲,以便我们人类可以看到 LED 关闭,以及在高周期(LED 亮)期间用于壁板按钮检测的常规 80Hz 脉冲。

鉴于所有这些,他们有两种可能的方法来衡量这一点。一种是开启器中的数字采样电路,它测量低脉冲的宽度以检测按钮按下。另一种是使用 ADC 输入引脚来测量下降沿/放电的斜率。较大的上限会更慢。

我没有任何其他开瓶器可供采样,但我怀疑它们都可能不同。它们可能都使用 PWM 编码,因为壁板只有 2 根电线,但使用的脉冲模式很可能不同。因此,您可能无法制造一种可以控制所有设备的设备。

对于我的解决方案,我购买了一个家庭安全簧片开关,当附近有磁铁时连接(称为常开 (NO))。我把磁铁装在门上,门上的簧片开关卡住了。一个开关引脚接地,另一个连接到我的微控制器上的输入引脚,该引脚配置为具​​有内部上拉电阻。这样,当门关闭时,开关关闭,输入引脚变为零。请记住,您可能希望在微控制器代码中进行某种去抖动检测,因为簧片开关可以在稳定之前反弹。由于门控制只是将两条控制器线短接在一起,因此这是通过由微控制器控制的简单继电器完成的。

至于控制灯光,您需要为微控制器获取某种光检测器以了解灯光的状态。要控制灯光操作,您需要实现另一个继电器,但这个继电器有一个 1uF 电容与继电器串联。就像墙壁开关一样,这几乎可以完美地模拟不同的 PWM 信号。

要知道开启器处于什么锁定状态,您需要在微控制器内部构建一个 PWM 检测器来寻找那些非常宽的低脉冲(LED 关闭)。向开启器发送锁定命令就像电灯开关一样,但串联一个 22uF 的电容。

一个例子,回答标题问题而不是你的特定设备:

Genie 系列 II 壁挂式控制台

两线,5V,白色为中性线

  • R1, 121 欧姆
  • R2, 82 欧姆
  • 引领

  • 锁定 = R2

  • 解锁 = R2 + R1 + LED
  • 灯(按钮切换)= R1 + R2(按钮使 LED 短路)
  • 打开/关闭(按钮切换)=(按钮关闭电路)

首先,你只需要模拟当你想关门时按下按钮。您不需要知道按钮何时被其他人按下。

如果控制面板和车库门控制器之间只有两条线,那么正如其他人所说,必须进行某种多路复用,或者使用二极管等的某种组合、电压电平、直流脉冲或交流信号叠加在直流电上。无论如何,尝试找出多路复用方案然后模拟这些方案可能比它的价值更麻烦。

相反,如果您可以打开外壳并到达按钮的端子,然后模拟按下按钮,您可以使用您在问题中链接的电路,使用晶体管或光隔离器,或者您可以使用簧片继电器(我的偏好)因为它很容易连接到 Arduino,事实上他们制作继电器屏蔽只是为了这个目的。

不过,似乎没有人解决的是,您首先需要有一种方法来检测车库门是已经向上还是向下由于在控制面板上似乎只有一个按钮可以操作门,因此它用作拨动开关(如果门关闭,则打开门,如果门打开,则关闭门)。

所以模拟按下按钮并不能保证门会关闭——事实上,如果你确实记得在离开车道的路上用遥控器关门,那么x分钟后,你的电脑就将再次打开它。

所以你需要一些类型系统来确定门是向上还是向下。这可能是机械的(一个带有长臂的微型开关,就像这个),或者是一种光学解决方案——要么通过在门路径两侧使用红外发射器和检测器来破坏光路,要么安装一个红外发射器和检测器在天花板上的一个角度,在门的顶部有某种反光贴片。

或者,您可以在靠近车库地板的门底部使用这些解决方案中的任何一种,但我认为将其放在车库开门器本身附近是一个更好的解决方案。这意味着从车库门开启器区域连接两条电线到您的 Arduino。

假设您在谈论有线的-无线的使用RF和代码等。

注意:我将其添加为答案,但只是为了从此处的 eBay 列表中获取照片(因为它们不会持久)。看起来它可能是顶部两个开关的电阻器或二极管,而底部开关只是将两个端子短路在一起。也许那里也有一些LED。

在此处输入图像描述 在此处输入图像描述

最简单的方法是将电路板弹出并追踪它。非常简单,无论如何。

如果您想知道“如何”使用电阻器或二极管来检测开关闭合,主单元将有效地测量电阻器的电阻,或翻转极性并测量连续性。显然,如果按下向上/向下开关,它就无法检测到其他任何东西——你没有 n 键翻转。