1

Тема: Подача припоя в рабочую зону

Добрый вечер, Вот добился таких успехов, при первом нажатии на кнопку срабатывает реле через 3 секунды двигатель делает 100 шагов и реле отключается. Но при следующем нажатия кнопки реле срабатывает, а двигатель не реагирует. Как сделать чтобы повторялось вновь и вновь

#include <AccelStepper.h>
AccelStepper Stepper1(1,13,12); 

     unsigned long mill;
     const byte btnPin = A0;
     bool btn;
     const byte relePin = 5;
     bool Myrele;
     unsigned long past;
     const unsigned long time1sec = 3000;
     unsigned long eventTime=0;

void setup() {
  
      Stepper1.setMaxSpeed(3000); 
      Stepper1.setAcceleration(1300);
      
      pinMode(btnPin, INPUT_PULLUP);
      pinMode(relePin, OUTPUT);
      digitalWrite(relePin, Myrele = 0);
      
}

void loop() {
  
       mill = millis();
        btn = digitalRead(btnPin);
        
        if (!btn) { /* если кнопка нажата*/
       
        digitalWrite(relePin, Myrele = 1); /*то вкл реле*/
        past = mill;
   }
      if (Myrele & mill - past >= time1sec) {/*если реле вкл больше 1 сек*/
       digitalWrite(relePin, Myrele = 0);/*то выкл*/
       past = mill;
   }

      if(!btn) eventTime=millis(); // засекли когда произошло событие
 
      if(eventTime && (millis()-eventTime>2000)) // проверям прошло ли XXXX миллесекунд с события
  { 
     Stepper1.runSpeed();
     Stepper1.moveTo(100);
     
     while(Stepper1.currentPosition() != 100)
     Stepper1.run();
  }
}

  

2

Re: Подача припоя в рабочую зону

Вопрос еще актуален?