Arduino Mega 2560 + RAMPS напряжение на выводе GPIO

Я использую Arduino Mega 2560 и экран RAMSP 1.4 с прошивкой Marlin для управления своей машиной (не совсем 3D-принтером). У Марлина есть G-код:

  • M42 P20 S255 ==> Включить >вывод 20 микропроцессора
  • M42 P20 S0 ==> Выключить вывод 20 микропроцессора

Я использую эту команду для включения переключателя MOSFET, подключенного к контакту 20.

Когда я не поставил щит RAMPS поверх ATmega, это работает. Вывод повышается только тогда, когда я отправляю код для его включения.

Но когда я помещаю экран поверх Mega 2560 (на RAMPS не подается питание 12 В, только 5 В от USB), когда я впервые подключаю к нему USB, я нахожу около 2 В на выводе 20 даже без отправки команды ON. при отправке M42 P20 S0 это исчезает (0 В) и получает 5 В для M42 P20 S255. Без экрана при подключении USB к Mega 2560 нет напряжения на GPIO; с экраном на выводе 2 В, и это приводит к включению переключателя MOSFET.

Откуда берется это напряжение?

Сначала я подумал, что это, должно быть, какой-то шум, поэтому добавил понижающий резистор на 10 К (поскольку это обычное значение, которое я видел во многих схемах), но это не сработало. Но установка 100 Ом работает. Это безопасно?

, 👍3


1 ответ


3

Подключение резистора 100 Ом определенно небезопасно. Эта нагрузка слишком высока для выходного вывода ATmega2560. 100 Ом при 5 В (при высоком выводе) составляет 50 мА, в то время как рекомендуемый максимум для вывода ATmega2560 составляет 20 мА (и было бы лучше оставаться значительно ниже этого максимума). Вам следует использовать понижающий резистор с более высоким значением (по крайней мере, 250 Ом, лучше было бы больше) или выяснить, откуда берется паразитное напряжение (это может быть внутреннее подтягивание ATmega, поскольку вывод 20 также является выводом SDA, который может включить Марлин).


,

Но если это связано с внутренним подтягиванием, то напряжение должно отображаться при измерении непосредственно от Mega(я имею в виду без экрана). Он присутствует только тогда, когда щит RAMPS установлен поверх Mega. Без выхода напряжение экрана на выводе равно 0, с экраном 2 В. Команда не подается , питание (12 В) на плату RAMPS не подается. В обоих случаях подключен только USB, @Athul