#define DirMor 2
#define StepMor 3
#define EneMor 4
#define Herr_switch 1
#define MicroAlto 6
#define MicroBajo 5
#define DirValv 7
#define StepValv 8
#define EneValv 9
#define DirConv 10
#define StepConv 11
#define EneConv 12
#define Iniciollenado 13
#define PLC1 A1
#define buttonPin A2
#define PLC3 A3
#define PLC4 A4
int steps = 0;
int buttonState = 0;
bool done = true;
void forward(int steps){
int i;
digitalWrite(EneMor,LOW);
digitalWrite(DirMor,HIGH);
for(i=0;i<steps;i++){
digitalWrite(StepMor, !digitalRead(StepMor));
delayMicroseconds(600);
}
digitalWrite(EneMor,HIGH);
delay(500);
}
void reverse(int steps){
int x;
digitalWrite(EneMor,LOW);
digitalWrite(DirMor,LOW);
for(x=0;x<steps;x++){
digitalWrite(StepMor, !digitalRead(StepMor));
delayMicroseconds(600);
}
digitalWrite(EneMor,HIGH);
delay(500);
}
void forward2(int steps){
int i;
digitalWrite(EneConv,LOW);
digitalWrite(DirConv,HIGH);
for(i=0;i<steps;i++){
digitalWrite(StepConv, !digitalRead(StepConv));
delayMicroseconds(600);
}
digitalWrite(EneConv,HIGH);
delay(500);
}
void MorCierra ()
{
while(digitalRead(Herr_switch)==HIGH)
{
digitalWrite(EneMor,LOW);
digitalWrite(DirMor, LOW);
digitalWrite(StepMor, HIGH);
delayMicroseconds(660);
digitalWrite(StepMor, LOW);
delayMicroseconds(60);
}
steps=0;
}
void MorAbre ()
{
digitalWrite(EneMor, LOW);
delay(50);
for (int x = 0; x < 1000; x++) {
digitalWrite(DirMor, HIGH);
digitalWrite(StepMor, HIGH);
delayMicroseconds(660);
digitalWrite(StepMor, LOW);
delayMicroseconds(60);
}
steps=0;
digitalWrite(EneMor, HIGH);
}
void ValvSube ()
{
while(digitalRead(MicroAlto)==HIGH)
{
digitalWrite(EneValv,LOW);
digitalWrite(DirValv, LOW);
digitalWrite(StepValv, HIGH);
delayMicroseconds(660);
digitalWrite(StepValv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void ValvBaja ()
{
while(digitalRead(MicroBajo)==HIGH)
{
digitalWrite(EneValv,LOW);
digitalWrite(DirValv, HIGH);
digitalWrite(StepValv, HIGH);
delayMicroseconds(660);
digitalWrite(StepValv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void Conveyor ()
{
while(digitalRead(PLC1)==HIGH)
{
digitalWrite(EneConv,LOW);
digitalWrite(DirConv, HIGH);
digitalWrite(StepConv, HIGH);
delayMicroseconds(660);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void setup()
{
pinMode(StepMor, OUTPUT);
pinMode(DirMor, OUTPUT);
pinMode(EneMor, OUTPUT);
pinMode(Herr_switch, INPUT);
pinMode(MicroAlto,INPUT);
pinMode(MicroBajo,INPUT);
pinMode(StepValv, OUTPUT);
pinMode(DirValv, OUTPUT);
pinMode(EneValv, OUTPUT);
pinMode(StepConv, OUTPUT);
pinMode(DirConv, OUTPUT);
pinMode(EneConv, OUTPUT);
pinMode(PLC1,INPUT);
pinMode(buttonPin,INPUT);
pinMode(PLC3,INPUT);
pinMode(PLC4,INPUT);
pinMode(Iniciollenado,OUTPUT);
digitalWrite(Iniciollenado,HIGH);
}
void loop()
{
// int buttonState = digitalRead(buttonPin);
// digitalWrite(buttonPin, LOW);
//if (buttonState == LOW && !done)
forward(300);
delay(2000);
ValvSube();
delay(2000);
forward2(6000);
delay(2000);
MorCierra();
delay(200);
ValvBaja();
delay(4000);
//digitalWrite(Iniciollenado,LOW);
//delay(300);
//digitalWrite(Iniciollenado,HIGH);
// done = true;
// } else if (buttonState == LOW && done)
//{
//done = false;
}