Marlin 1.1.9: недоворот сервопривода для переключения сопел
Сделал 'качалку' для переключения экструдеров с использованием сервопривода 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]Просьба подсказать, как дописать код, чтобы нужная мне команда выполнялась два раза подряд.
По расчетам качалка должна переключаться на первый экструдер при угле поворота 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]Просьба подсказать, как дописать код, чтобы нужная мне команда выполнялась два раза подряд.
Популярные вопросы
Стоит ли собирать 3D принтер самому
Вот возникла в голове такая мысль собрать из качественных комплектующих самому. На стальной раме. Стоит ли в это ввязываться ? Так то вроде руки...
MKS TinyBee v1.0 первый самосбор
Здравствуйте! Начал сборку своего первого принтера и столкнулся с непонятным багом платы управления:
помогите выбрать 3Д принтер
нашел четыре недорогих принтера. по описанию только на АНЕТ А6 много инфы а вот на остольные н
почти нету! подскажите какой из переч...
почти нету! подскажите какой из переч...
Комментарии и вопросы
Являюсь владельцем данной плат...
Интересный эффект получается к...
Сейчас мало кто режет , в осно...
Добрый день, принтер Creality...
На картинке видно что слой нем...
Господа, товарищи, братья, обл...
Купил двухсторонний коврик A и...