//#include #include #define SLAVE_ADDRESS 0x08 const int pasos= 4; int x=1;int y;int z; int i=0; int g=0; //char buf; int buf; //Stepper myStepper2(pasos,4,5,6,7); //Stepper myStepper(pasos,8,9,10,11); void reposo(){ digitalWrite(3,0); //motor 1 digitalWrite(4, 0); //sentido giro motor 1 digitalWrite(5, 0); //motor 2 digitalWrite(6, 0); //sentido giro motor 2 // digitalWrite(7, 0); // digitalWrite(8, 0); // digitalWrite(9, 0); // digitalWrite(10, 0); // digitalWrite(11, 0); } void bajar(){ if(z==1){ digitalWrite(6,LOW); z=0; for(g=0; g++;g<=pasos){ //myStepper.step(-pasos); digitalWrite(5,HIGH); delay(50); digitalWrite(5,LOW); delay(50); } } } void setup() { //myStepper.setSpeed(300); //myStepper2.setSpeed(300); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); Wire.begin(SLAVE_ADDRESS); Wire.onReceive(receiveData); //Serial.begin(9600); //Serial.println("Inicio"); } void loop() { if(buf==1){ //Empieza en el cajon 2 digitalWrite(4,HIGH); bajar(); //Si está arriba, bajamos en y if(x==0 && z==0){ //Verificar si el motor se encuentra en otro cajon x=1;y=0; for(g=0; g++;g<=pasos){ //myStepper.step(pasos); digitalWrite(3,HIGH); delay(50); digitalWrite(3,LOW); delay(50); } } } else if(buf==2){ bajar(); digitalWrite(4,LOW); if(y==0 && z==0){ //Verifica si el motor se encuentra en otro cajon y=1;x=0; for(g=0; g++;g<=pasos){ //myStepper.step(-pasos); digitalWrite(3,HIGH); delay(50); digitalWrite(3,LOW); delay(50); } } } else if(buf==3){ //Alternar para ningun cajon bajar(); { if(x==0 && z==0){ digitalWrite(4,HIGH); x=1;y=0; for(g=0; g++;g<=pasos){ //myStepper.step(pasos); digitalWrite(3,HIGH); delay(50); digitalWrite(3,LOW); delay(50); } } if(y==0 && z==0){ y=1;x=0; digitalWrite(4,LOW); for(g=0; g++;g<=pasos){ //myStepper.step(-pasos); digitalWrite(3,HIGH); delay(50); digitalWrite(3,LOW); delay(50); } } } } else{ //Si ambos cajones estan ocupados, levanta en y if(z==0){ digitalWrite(6,HIGH); z=1; for(g=0; g++;g<=pasos){ //myStepper.step(-pasos); digitalWrite(5,HIGH); delay(50); digitalWrite(5,LOW); delay(50); } //myStepper2.step(pasos); } } reposo(); delay(100); } void receiveData(int byteCount){ while(Wire.available()) buf=Wire.read(); };