#include <MobaTools.h>
const byte stepPin = 2;
const byte dirPin = 5;
const byte enablePin = 8;
const int stepsPerRev = 200;
int IRSensor = 9;
const int open = 1;
const int close = 0;
const int sourcePIN = 10;
MoToStepper stepper(stepsPerRev, STEPDIR);
bool stepperBack;
bool sourceOn = false;
void setup() {
Serial.begin(115200);
stepper.attach(stepPin, dirPin);
stepper.setSpeed(200);
stepper.setRampLen(10);
stepper.setZero();
stepperBack = true;
pinMode(IRSensor, INPUT);
pinMode(sourcePIN , OUTPUT);
digitalWrite(sourcePIN , LOW);
}
void loop () {
int sensorStatus = digitalRead(IRSensor);
//caso puerta se abre y el tacho está atrás
if (sensorStatus == open && stepperBack){
if (!stepper.moving()){
digitalWrite(sourcePIN , HIGH);
stepper.doSteps(3*stepsPerRev);
stepperBack = false;
delay(10000);
}
digitalWrite(sourcePIN , LOW);
}
//caso la puerta se cierra y el tacho está adelante
if (sensorStatus == close && !stepperBack){
if (!stepper.moving()){
digitalWrite(sourcePIN , HIGH);
stepper.doSteps(-3*stepsPerRev);
stepperBack = true;
delay(10000);
}
digitalWrite(sourcePIN , LOW);
}
}