我正在尝试计算脉冲/秒。在〜5至100Hz范围内的微控制器引脚上。µC 可以在 5V 输入下工作,所以我必须安全地降低电压电平。
想到一个简单的电阻器,但它会使任何浪涌直接打开到 µC 引脚-meh。
我遇到了这个答案,但问题仍然是该电路是否能够“快速”100Hz 变化。
是否有一种经过验证的、可靠的方法(可能通过 IC?)将 5V 或 3.3V 引脚连接到“脏”的12V 输入?我有 12V 和 5V 可用于驱动任何“现成”IC。
我正在尝试计算脉冲/秒。在〜5至100Hz范围内的微控制器引脚上。µC 可以在 5V 输入下工作,所以我必须安全地降低电压电平。
想到一个简单的电阻器,但它会使任何浪涌直接打开到 µC 引脚-meh。
我遇到了这个答案,但问题仍然是该电路是否能够“快速”100Hz 变化。
是否有一种经过验证的、可靠的方法(可能通过 IC?)将 5V 或 3.3V 引脚连接到“脏”的12V 输入?我有 12V 和 5V 可用于驱动任何“现成”IC。
使用这样的电路:

R1、R2决定电压范围,进行初始分压。这些电阻器必须能够提供一定的功率。典型值为MELF 0.4W。所有其他可以是贴片电阻器/电容器。
R3 防止任何浪涌对施密特触发器造成伤害。R4 和 R5 是可选的,以防止任何浮动信号。
但是,如有必要,R3/R4 组合也可用于调整阈值。
C1 和 C2 决定最大速度。组合 R3/C2 可以过滤慢。C1 过滤瞬变。
使用单独的施密特触发器,因为您可以使它们变得非常小且便宜。它还可以防止通过长走线路由弱信号。同时也是大浪涌的牺牲品。
我根据我在 PLC 内部看到的内容设计了这个电路。上述电路适用于 24V。根据 IEC61131-2 调整电阻以匹配 12V。

该标准的概念是确保输入在将其视为“1”之前必须吸收最小量的电流。这三种类型指定了多少,并根据环境噪声应用。这可以防止毛刺接触它或附近的继电器。缺点是 R1/2 必须具有不错的额定功率和低电阻。
如果信号电平为 GND 和 12V(或 >5V),最简单且 100% 安全的方法是:

如果它真的符合您的目的,取决于 12V 信号的实际阻抗(应该远低于 R1)以及“脏”的含义。
此外,正如@MichaelKaras 正确指出的那样,μC 输入上的低电平可能会上升到 12V 信号加上二极管 Vf 的低电平(最高约 0.7V)。您应该检查这是否是您的问题。如果是,您仍然可以尝试使用 Vf 约为 0.35V 的肖特基二极管。
我会使用一个电阻分压器,然后用一个 5.1v 齐纳二极管保护 uC
如果您将齐纳二极管与引脚和地之间的齐纳二极管与一个 10k 下拉电阻器并联,然后将您的分压信号馈入……齐纳二极管足够快,而且便宜/容易。
我经常这样做,并在齐纳位之前用一个电位器划分信号。
其他选项与链接一样,如果您真的担心可以使用光电器件,如果它不是安全问题,我会选择上面的方法,或者将引脚从 5V Vcc 拉到低电平,然后用场效应管将其拉低(从我的头顶上掉下来) 2N7000 应该可以工作) - 但它不如齐纳选项简单。