#define DirMor 2
#define StepMor 3
#define EneMor 4
#define Herr_switch 6
#define MicroAlto 5
#define MicroBajo A0
#define DirValv 2
#define StepValv 3
#define EneValv 4
#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 MorCierra ()
{
while(digitalRead(Herr_switch)==LOW)
{
digitalWrite(EneMor,LOW);
digitalWrite(DirMor, LOW);
digitalWrite(StepMor, HIGH);
delayMicroseconds(260);
digitalWrite(StepMor, LOW);
delayMicroseconds(60);
}
steps=0;
digitalWrite(EneMor,HIGH);
}
void MorAbre ()
{
digitalWrite(EneMor, LOW);
delay(50);
for (int x = 0; x < 150; x++) {
digitalWrite(DirMor, HIGH);
digitalWrite(StepMor, HIGH);
delayMicroseconds(260);
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(160);
digitalWrite(StepValv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void ValvBaja ()
{
while(digitalRead(MicroBajo)==HIGH)
{
digitalWrite(EneValv,LOW);
digitalWrite(DirValv, HIGH);
digitalWrite(StepValv, HIGH);
delayMicroseconds(160);
digitalWrite(StepValv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void Conveyor ()
{
while(digitalRead(PLC1)==HIGH)
{
digitalWrite(EneConv,LOW);
digitalWrite(DirConv, LOW);
digitalWrite(StepConv, HIGH);
delayMicroseconds(660);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
steps=0;
}
void Conveyor2 ()
{
digitalWrite(EneConv, LOW);
delay(10);
for (int x = 0; x < 200; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante 4990 pulsos
digitalWrite(StepConv, HIGH);
delayMicroseconds(1460);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
for (int x = 0; x < 200; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante
digitalWrite(StepConv, HIGH);
delayMicroseconds(1060);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
for (int x = 0; x < 200; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante
digitalWrite(StepConv, HIGH);
delayMicroseconds(860);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
for (int x = 0; x < 4000; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante
digitalWrite(StepConv, HIGH);
delayMicroseconds(360);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
for (int x = 0; x < 200; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante
digitalWrite(StepConv, HIGH);
delayMicroseconds(860);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
for (int x = 0; x < 200; x++) {
digitalWrite(DirConv, LOW);// Conveyor gira hacia delante
digitalWrite(StepConv, HIGH);
delayMicroseconds(1060);
digitalWrite(StepConv, LOW);
delayMicroseconds(60);
}
steps=0;
digitalWrite(EneConv,HIGH);
}
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(buttonPin,INPUT);
digitalWrite(EneValv,HIGH);
digitalWrite(EneValv,HIGH);
}
void loop()
{
int buttonState = digitalRead(buttonPin);
digitalWrite(buttonPin, LOW);
if (buttonState == LOW && !done)
{
ValvSube();
delay(1000);
for (int x = 0; x < 200; x++) {
digitalWrite(DirValv, LOW);// Conveyor gira hacia delante
digitalWrite(StepValv, HIGH);
delayMicroseconds(860);
digitalWrite(StepValv, LOW);
//delayMicroseconds(30);
}
delay(1000);
done = true;
} else if (buttonState == LOW && done)
{
done = false;
}
}