Тема: Подача припоя в рабочую зону
Добрый вечер, Вот добился таких успехов, при первом нажатии на кнопку срабатывает реле через 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();
}
}