Un sensor puede parar un motor?


  buen día/tarde todos, antes que nada me presento, soy matias de argentina, estudiante de mecatronica. poseo un arduino mega y algunos componentes como pantalla shield, sensor ultrasonico, y demas..
  estoy en la etapa final de la universidad y me piden que haga un proyecto, el cual accedí mejorar una maquina de ensayos dieléctricos de la misma facultad.
 tengo un pequeño pero gran problema, y es que necesito detectar una gota de agua (con una solución al 0,1% que lo hace indiferente) y poder parar un motor paso paso. ahora bien, hago girar el motor para que caiga una gota y la detecte el sensor pero no pasa nada. sin embargo, eh echo un pequeño programa que girando el engranaje del motor mano la gota es detectada.
 en que estoy fallando? no entiendo el porque cuando el motor empieza girar el sensor deja de funcionar..
dejo el codigo que echo y unas fotos por si alguien me puede dar una mano con esto, muchisimas gracias por su atención.
atte, matias


 
code: [select]
#include <stepper.h>

const int stepsperrevolution = 200;
stepper mystepper(stepsperrevolution, 22,24,26,28);
int sensor=53;
long gotas=0;
int pulsador2=52;
int actualp2;
int anteriorp2=low;
long tiempop2 = 0;
long debounce2 = 200;
int cont=0;
int estadop2=low;
int led=51;

void setup () {
  serial.begin (9600);
  pinmode(sensor,input);
  pinmode(pulsador2,input);
  pinmode(led,output);
  mystepper.setspeed(15);
}

void loop () {


      actualp2=digitalread(pulsador2);
       if (actualp2 == high && anteriorp2 == low && millis() - tiempop2 > debounce2)      //enclavamiento de pulsador
         {
       if (estadop2 == high)                                                                     
           estadop2= low;
         else
          estadop2 = high;
          tiempop2 = millis(); 
        }
       
 
     
     
  if(estadop2==high) {
    digitalwrite(led,high);                                                                //si lo pulso una vez el motor gira y se prende el led
    mystepper.step(-1);
    }
    else{
      digitalwrite(led,low);                                                               //pulso el boton nuevamente el motor se detiene y led se apaga
      mystepper.step(0);
    }
  if(digitalread(sensor)==low) {                                                           //cuenta el sensor
    serial.println(cont);
    delay(10);
    estadop2=low;
    cont++;
    }
   
anteriorp2 = actualp2;

}


hola matías.
encontré un pequeñísimo error en una llave, te pongo todo


code: [select]
#include <stepper.h>

const int stepsperrevolution = 200;
stepper mystepper(stepsperrevolution, 22,24,26,28);


const byte led = 51;
const byte pulsador2 = 52;
const byte sensor = 53;

int actualp2;
long tiempop2 = 0;
long gotas = 0;
long debounce2 = 200;

int cont = 0;
int estadop2 = low;
int  anteriorp2 = low;

void setup () {
  serial.begin (9600);
  pinmode(sensor,input);
  pinmode(pulsador2,input);
  pinmode(led,output);
  mystepper.setspeed(15);
}

void loop () {

    actualp2 = digitalread(pulsador2);
    if (actualp2 == high && anteriorp2 == low && (millis() - tiempop2 > debounce2) {     //enclavamiento de pulsador
       if (estadop2 == high)                                                                     
           estadop2= low;
       else { // aca faltaba llave para que tomara ambas sentencias.
          estadop2 = high;
          tiempop2 = millis(); 
       }
    }
       
 
    if (estadop2 == high) {
       digitalwrite(led,high);                                                                //si lo pulso una vez el motor gira y se prende el led
       mystepper.step(-1);
    }
    else {
       digitalwrite(led,low);                                                               //pulso el boton nuevamente el motor se detiene y led se apaga
       mystepper.step(0);
    }

if (digitalread(sensor) == low) {                                                           //cuenta el sensor
   serial.println(cont);
   delay(10);
   estadop2=low;
   cont++;
    }
anteriorp2 = actualp2;
}


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Un sensor puede parar un motor?


arduino

Comments