Arduino Mega 2560 + GPIO 引脚上的斜坡电压

3D打印 马林鱼 坡道
2021-04-25 17:46:38

我正在使用带有Marlin固件的 Arduino Mega 2560 和RAMSP 1.4 扩展来控制我的机器(不完全是 3D 打印机)。马林有 G 代码:

  • M42 P20 S255 ==>打开微处理器的销20
  • M42 P20 S0     ==>关闭微处理器的引脚 20

我正在使用此命令打开连接到引脚 20 的 MOSFET 开关。

当我没有将 RAMPS 防护罩放在 AtMega 之上时,此方法有效。只有当我发送代码打开它时,引脚才会变高。

但是,当我将屏蔽罩放在 Mega 2560 的顶部时(RAMPS 没有提供 12 V 电源,USB 仅提供 5 V 电源),当我第一次将 USB 连接到它时,即使没有发送 ON,我也会在 Pin 20 上发现大约 2 V命令。发送时M42 P20 S0这个消失(0V),并得到5 V的M42 P20 S255没有屏蔽,USB 连接到 Mega 2560 时没有电压;带屏蔽时,引脚上有 2 V 电压,这会导致 MOSFET 开关打开。

这个电压从哪里来?

首先我认为这一定是一些噪音,所以添加了一个 10K 下拉电阻(因为这是我在许多电路中看到的常见值),但它没有用。但放置一个 100 欧姆的工作。这安全吗?

1个回答

连接 100 欧姆电阻器绝对不安全。这个负载对于 AtMega2560 输出引脚来说太高了。5 V 时的 100 欧姆(当引脚为高电平时)为 50 mA,而 AtMega2560 引脚的推荐最大值为 20 mA(最好保持远低于此最大值)。您应该使用更高值的下拉电阻器(至少 250 欧姆,更多会更好)或找出杂散电压的来源(它可能是 AtMega 上的内部上拉,因为引脚 20 也是 SDA马林可能启用的引脚)。