nema 17 кнопка и лампочка

Тема в разделе "Arduino & Shields", создана пользователем demoni12, 26 дек 2018.

  1. ostrov

    ostrov Гуру

    Вот примерно так работает биполярник, если через знакомые функции:
    Код (C++):
    void stopStep() { // выключение двигателя
      Step(0, 0, 0, 0);
    }

    void rotateR() // 24 шага по часовой стрелке = 1 оборот оси = 1 мм движения штока вниз
    {
      for (byte i = 0; i < 6; i++) { // один такой блок сдвигает шток на 1/6 мм
        Step(1, 0, 1, 0);            // один такой шаг сдвигает шток на 1/24 мм
        Step(0, 1, 1, 0);
        Step(0, 1, 0, 1);
        Step(1, 0, 0, 1);
      }
    }

    void rotateL() // 24 шага по часовой стрелке = 1 оборота оси = 1 мм движения штока вверх
    {
      for (byte i = 0; i < 6; i++) { // один такой блок сдвигает шток на 1/6 мм
        Step(1, 0, 0, 1);            // один такой шаг сдвигает шток на 1/24 мм
        Step(0, 1, 0, 1);
        Step(0, 1, 1, 0);
        Step(1, 0, 1, 0);
      }
    }

    void Step(boolean a, boolean b, boolean c, boolean d) // один шаг
    {
      digitalWrite(A, a);
      digitalWrite(B, b);
      digitalWrite(C, c);
      digitalWrite(D, d);
      delay(delStep);
    }
     
     
  2. demoni12

    demoni12 Нуб

    как-то так нечто не греется




    #include <Stepper.h>
    #include <Bounce2.h>
    Bounce debouncer = Bounce();
    uint8_t LED = 13;
    int KNOPKA = 4; // пин кнопки

    long KNO1 = 0; // Исходное значение для таймера.
    long KNO2 = 2000; // 200 миллисекунд предотвращения повторного нажатия

    const uint8_t myStepper3 = 10; // количество шагов
    Stepper Steppe(myStepper3, 8, 9, 10, 11);


    void setup() {
    Steppe.setSpeed(40);
    pinMode(KNOPKA, INPUT_PULLUP);
    debouncer.attach(KNOPKA);
    debouncer.interval(5);
    pinMode(LED,OUTPUT);


    }

    void loop() {



    unsigned long r = millis();
    if(digitalRead(KNOPKA) == 0){

    debouncer.update();
    int KNOPKA= debouncer.read();


    if(r - KNO1 > KNO2){
    for (int i=0; i < myStepper3; i++){
    if ( i == HIGH)

    digitalWrite(LED,LOW);
    else
    { digitalWrite(LED,HIGH);}
    Steppe.step(1); };

    {digitalWrite(LED,LOW);

    digitalWrite(LED,HIGH);}
    delay(1500);

    { Steppe.step(-12);
    digitalWrite(LED,LOW);

    pinMode( 8, LOW);
    pinMode( 9, LOW);
    pinMode( 10, LOW);
    pinMode( 11, LOW);

    };

    KNO1 = r;
    }
    }
    }