Металл2024 Реклама
Метобр2024 Реклама

Marlin 1.1.9: недоворот сервопривода для переключения сопел

booroondook
Идет загрузка
Загрузка
06.09.2018
930
2
Вопросы и ответы
Сделал 'качалку' для переключения экструдеров с использованием сервопривода MG90S.

По расчетам качалка должна переключаться на первый экструдер при угле поворота 180 градусов, а на второй - при угле 0.

Соответственно, забил в Configuration.h следующее:[CODE]#define SWITCHING_NOZZLE_SERVO_ANGLES { 180, 0 } // Angles for E0, E1[/CODE]При работе наблюдается 'недоворот' сервопривода до заданного угла. То же самое происходит и при ручной подаче команды, например,[CODE]M280 P0 S180[/CODE]Однако, если послать ту же самую команду повторно (т.е., два раза подряд те же самые 'M280 P0 S180'), то сервопривод доворачивает качалку до нужного положения (по факту - до механического упора).

В-общем, нужно как-то заставить принтер при смене экструдера выполнять команду два раза подряд.

Я нашел в Main.cpp следующий код:[CODE]#if ENABLED(SWITCHING_NOZZLE)

inline void move_nozzle_servo(const uint8_t e) {

const int16_t angles[2] = SWITCHING_NOZZLE_SERVO_ANGLES;

planner.synchronize();

MOVE_SERVO(SWITCHING_NOZZLE_SERVO_NR, angles[e]);

safe_delay(500);

}

#endif[/CODE]Просьба подсказать, как дописать код, чтобы нужная мне команда выполнялась два раза подряд.
Ответы на вопросы
Кремень КБ Реклама
Кремень КМ Реклама