Установка индуктивного датчика SN04-N

Схема подключения датчика SN04-N к плате SKR 1.4

В данной статье описан не единственный и не самый правильный, но рабочий метод подключения датчика SN04-N к платам 3D принтеров. Схему подключения к платам типа SKR 1.4 (1.3, 1.4 Turbo) вы видите выше). Для других плат или разъёмов следует подключать также:

  • Плюс датчика (синий) к плюсу блока питания, 12 или 24в;
  • Минус датчика (коричневый) к минусу блока питания;
  • Сигнальный провод (чёрный) следует подключить к пину S (signal) соответствующего концевика через линейный стабилизатор LM7805 согласно схеме. На схеме сигнальный провод с датчика до платы оранжевый. Фиолетовый провод — минус, он подключается к пину GND разъёма концевика.

Линейный стабилизатор выполняет функцию ограничителя напряжения, которое приходит в сигнальный пин платы. Конденсатор нужен для того, чтобы резкий скачок напряжения также был погашен и не прошёл в плату. Схема работает и без конденсатора, но без линейного стабилизатора может сгореть сама плата.

Кроме самой установки датчика надо будет провести ряд модификаций в прошивке:

Надо будет выключить ENSDTOPPULLUPS для всех концевиков и включить отдельно для концевиков, на которых не используется датчик SN04-N:

// Enable pullup for all endstops to prevent a floating state
//#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
  // Disable ENDSTOPPULLUPS to set pullups individually
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

Для концевиков, использующих датчик SN04-N надо будет включить ENDSTOPPULLDOWNS:

// Enable pulldown for all endstops to prevent a floating state
//#define ENDSTOPPULLDOWNS
#if DISABLED(ENDSTOPPULLDOWNS)
  // Disable ENDSTOPPULLDOWNS to set pulldowns individually
  //#define ENDSTOPPULLDOWN_XMAX
  //#define ENDSTOPPULLDOWN_YMAX
  //#define ENDSTOPPULLDOWN_ZMAX
  //#define ENDSTOPPULLDOWN_XMIN
  //#define ENDSTOPPULLDOWN_YMIN
  #define ENDSTOPPULLDOWN_ZMIN
  //#define ENDSTOPPULLDOWN_ZMIN_PROBE
#endif

Также надо будет инвертировать концевики, использующие датчик SN04-N:

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.