Tengo 16 años,soy algo novato en esto.
Tengo un "programa".Un motor a pasos que gira al recibir la señal del sensor ultrasonico,programado a 15 cm.
El problema esta que no se como acomodar la función para que se detenga el motor.
Si lo pongo El motor hace las pulsaciones previamente cargadas (osea gira las dos vueltas puestas),cuando detecta la señal del ultrasonico.Pero solamente funciona con la primera señal,si le acerco presencia al ultrasonico,el motor no volera a girar.Solamente cargando el programa de nuevo.
Y si omito la función de parar,obviamente el motor solamente cuando tenga presencia,sin respetar las vueltas programadas (pulsos),y su giro sera infinito (hasta que le aleje el objeto del ultrasonico).
Quiero que el motor gire "n" vueltas y se detenga,y que este proceso se pueda repetir las que desee.¿Como declaro la función y la mando a llamar,adecuadamente
Por sus atenciones,gracias.
Programa en IDE de arduino:
goo.gl/33ordw [Alojado en Dropbox]
P.D Posteriormente sera con dos sensores,para asi hacer funcionar una puerta automatica (abrir y cerrar)
Tengo un "programa".Un motor a pasos que gira al recibir la señal del sensor ultrasonico,programado a 15 cm.
El problema esta que no se como acomodar la función para que se detenga el motor.
Si lo pongo El motor hace las pulsaciones previamente cargadas (osea gira las dos vueltas puestas),cuando detecta la señal del ultrasonico.Pero solamente funciona con la primera señal,si le acerco presencia al ultrasonico,el motor no volera a girar.Solamente cargando el programa de nuevo.
Y si omito la función de parar,obviamente el motor solamente cuando tenga presencia,sin respetar las vueltas programadas (pulsos),y su giro sera infinito (hasta que le aleje el objeto del ultrasonico).
Quiero que el motor gire "n" vueltas y se detenga,y que este proceso se pueda repetir las que desee.¿Como declaro la función y la mando a llamar,adecuadamente
Por sus atenciones,gracias.
Programa en IDE de arduino:
goo.gl/33ordw [Alojado en Dropbox]
Código:
#include<Ultrasonic.h>
#define MA_1 8
#define MA_2 9
#define MB_1 10
#define MB_2 11
int contador;
int estado;
//declaramos un objeto ultrasonic de la la librería Ultrasonic para referirnos a ella.
Ultrasonic ultrasonic1(7,A0);
int Distancia1;
void setup(){
pinMode(MA_1,OUTPUT);
pinMode(MA_2,OUTPUT);
pinMode(MB_1,OUTPUT);
pinMode(MB_2,OUTPUT);
contador = 1;
estado = 1;
}
void loop(){
//leemos el sensor de ultrasonidos y guardamos el valor en una variable
Distancia1 = ultrasonic1.Ranging(CM);
if (Distancia1 <=15){
//movemos el servo en una dirección
izquierda(96);
delay(5);
}
}
void izquierda(int pulso) {
static byte estado=1;
do {
delay(30); //30
switch(estado) {
case 1:
digitalWrite(MA_1,HIGH);
digitalWrite(MA_2,LOW);
digitalWrite(MB_1,LOW);
digitalWrite(MB_2,LOW);
estado = 4;
break;
case 2:
digitalWrite(MA_1,LOW);
digitalWrite(MA_2,HIGH);
digitalWrite(MB_1,LOW);
digitalWrite(MB_2,LOW);
estado = 1;
break;
case 3:
digitalWrite(MA_1,LOW);
digitalWrite(MA_2,LOW);
digitalWrite(MB_1,HIGH);
digitalWrite(MB_2,LOW);
estado = 2;
break;
case 4:
digitalWrite(MA_1,LOW);
digitalWrite(MA_2,LOW);
digitalWrite(MB_1,LOW);
digitalWrite(MB_2,HIGH);
estado = 3;
break;
}
} while(++contador<=pulso);
// "FUNCIÓN PARA DETENER MOTOR
/*
digitalWrite(MA_1,LOW);
digitalWrite(MA_2,LOW);
digitalWrite(MB_1,LOW);
digitalWrite(MB_2,LOW);*/
}
Última edición: