В данной статье описан не единственный и не самый правильный, но рабочий метод подключения датчика 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
Код:
// 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
Код:
// 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.