Включение ШД по нажатию кнопки

artcom5
Offline
Зарегистрирован: 14.09.2016

Здравствуйте

Помогите пожалуйста новичку рразобраться. Задача такая чтобы шаговый двигатель включался по нажатию кнопки и отключался по так же по нажатию кнопки. В процессе написание понял что самому не разобраться.

Вот код, как заставить его работать? Верно ли я мыслю или нет?

#include <Stepper.h>

const int stepsPerRevolution = 300;// change this to fit the number of steps per revolution
const int BUTTON = 2;                // for your motor
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean motorOn = false;

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  pinMode (BUTTON, INPUT);
 }
  boolean debounce (boolean last)
{
  boolean current = digitalRead (BUTTON);
  if (last != current)
  {
    delay (5);
    current = digitalRead(BUTTON);
    return current;
  }
  {
  myStepper.setSpeed(640);
  // initialize the serial port:
  Serial.begin(9600);
    }
  }

void loop() {
  currentButton = debounce (lastButton);
  if (lastButton == LOW && currentButton == HIGH)
  {
    motorOn =! motorOn;
    }
    lastButton = currentButton;
    myStepper.step(stepsPerRevolution);
  delay(0);
}

vvadim
Offline
Зарегистрирован: 23.05.2012

нажали кнопку - поставили флаг, ещё раз нажали - опустили.
при поднятом флаге шаговик работает, при опущенном стоит.