Buen día/tarde a 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í a 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 a 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 a mano la gota es detectada.
En que estoy fallando? No entiendo el porque cuando el motor empieza a 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
#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;
}