Для реализации остановки подвижной головки при достижении края рабочей области, вам понадобятся концевые выключатели. Они сигнализируют о том, что головка достигла края рабочей области, и позволяют остановить движение двигателя.

Код для Arduino может быть изменен следующим образом:

>
#include <Stepper.h>
#define STEPS 200

Stepper stepper(STEPS, 2, 3); // Пин 2 присоединён к контакту Direction, пин 3 присоединён к контакту Step драйвера

#define motorInterfaceType 1

const int endSwitchMinPin = 4; // Пин для концевого выключателя минимального положения
const int endSwitchMaxPin = 5; // Пин для концевого выключателя максимального положения

void setup() {
  // Максимальная скорость в шагах в секунду
  stepper.setSpeed(1000);
  pinMode(endSwitchMinPin, INPUT_PULLUP); // Устанавливаем концевой выключатель минимального положения как вход
  pinMode(endSwitchMaxPin, INPUT_PULLUP); // Устанавливаем концевой выключатель максимального положения как вход
}

void loop() {
  // Если головка находится на минимальном положении, перемещаем её вправо
  if (digitalRead(endSwitchMinPin) == LOW) {
    stepper.step(10);
  }
  // Если головка находится на максимальном положении, перемещаем её влево
  else if (digitalRead(endSwitchMaxPin) == LOW) {
    stepper.step(-10);
  }
}
>

В этом примере подключены два концевых выключателя: один для минимального положения и один для максимального. Когда головка достигает минимального или максимального положения, выключатель замыкается, и соответствующий пин читается как LOW. Если концевой выключатель срабатывает, двигатель начинает двигаться в другом направлении.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence