Buenas tardes a todos/as, ante todo no tengo ni idea de programación de Arduino y tengo que fabricar un dispositivo para que me seleccione que piezas son malas y buenas.
Con dos sensores sensores inductivos cuando pongo una pieza encima y presiono un pulsador me detecta si le falta una pieza u otra, dependiendo de la que le falte un motor paso a paso gira 120 grados a la derecha o 120 grados a la izquierda y cuando termina de girar vuelve a su posición media para empezar el proceso de nuevo.
La placa de Arduino seria o un Arduino UNO o un Mega 2560
Un driver TB 6600 y un motor PaP Nema17
Lo mismo es muy fácil de programar o muy difícil no lo sé, agradecería si alguien me puede echar una mano para este proyecto.
Es muy importante para mi pues no encuentro nada al respecto de lo que quiero hacer.
Sin mas un cordial saludo
No es un proyecto complicado, pero en el foro no se desarrolla código a pedido ( a menos que pagues por supuesto)
Empieza con lo simple, leer las entradas de los sensores, y cuando te surjan dudas, estamos aquí para ayudarte.
Saludos
buenas noches , a todos.
he realizado este programa que sin ponerle los botones funciona a izquierda y derecha con sus pausas pero cuando le he puesto los pulsadores que da errores y además no se como hacer que funcione para inicie con el pulsador P1 y que cuando este el interruptor P2 seleccionado gire a derecha o a la izquierda.
este es el código y el esquema que he montado no se continuar mas para que funcione como quiero me podéis ayudar.
muchas gracias
//programa izquierda derecha
#define STEP 4 // pin STEP de A4988 a pin 4
#define DIR 5 // pin DIR de A4988 a pin 5
#define inicio 8 // pin INICIO ciclo a pin 8
#define interruptor 9 //pin pulsador derecha izquierda pin 9
void setup() {
pinMode(STEP, OUTPUT); // pin 4 como salida
pinMode(DIR, OUTPUT); // pin 5 como salida
pinMode(inicio, INPUT); // pin 8 pulsador inicio
pinMode(interruptor, INPUT); //pin 9 interruptor
}
void loop()
{
int estadoP1 = digitalRead(inicio); //pulsaodr de inicio
int estadoP2 = digitalRead(interruptor); // pulsador de izquierda-derecha
delay(100); // anti rebote del pulsador
if(estadoP1 == 0);
if (estadoP2 == 0);
}
{
// giro a izquierdas
digitalWrite(DIR, LOW); // giro en un sentido
for(int i = 0; i < 80; i++){ // 200 pasos para motor
digitalWrite(STEP, HIGH); // nivel alto
delay(10); // por 10 mseg
digitalWrite(STEP, LOW); // nivel bajo
delay(10); // por 10 mseg
}
delay(2000); // demora de 2 segundos
digitalWrite(DIR, HIGH); // giro en sentido opuesto
for(int i = 0; i < 80; i++){
digitalWrite(STEP, HIGH);
delay(10);
digitalWrite(STEP, LOW);
delay(10);
}
delay(2000); // demora de 2 segundos
}
// giro a derechas
digitalWrite(DIR, HIGH); // giro en un sentido
for(int i = 0; i < 80; i++){ // 200 pasos para motor
digitalWrite(STEP, HIGH); // nivel alto
delay(10); // por 10 mseg
digitalWrite(STEP, LOW); // nivel bajo
delay(10); // por 10 mseg
}
delay(2000); // demora de 2 segundos
digitalWrite(DIR, LOW); // giro en sentido opuesto
for(int i = 0; i < 80; i++){
digitalWrite(STEP, HIGH);
delay(10);
digitalWrite(STEP, LOW);
delay(10);
}
delay(2000); // demora de 2 segundos
Así como las has escrito (con ; al final), esas 2 líneas no hacen nada
if(estadoP1 == 0);
if (estadoP2 == 0);
Moderador
A ver esta es una sección para relacionarse con la gente por el motivo que sea, no para llevar adelante un trabajo.
Ve a Software y crea un hilo como corresponde, explicando lo mismo que aquí dejando de lado que buscabas alguien que te lo hiciera.
Pega el código usando etiquetas de acuerdo a esto y por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)
Moderador
Hilo movido a software