Estoy haciendo un proyecto de una mini-cinta transportadora que tiene que calcular la desviación del objeto a transportar.
Como soy muy nuevo en temas de Arduino la duda inicial que tengo es que sensor elegir, para intentar aclarar el tema os pongo una imagen.
Como podéis apreciar en ella tengo una zona optima de 48 mm y luego mediría la desviación 1, 2 y 3 por cada lado y una cuarta que estaría fuera de rango pero que tengo que conocerla también.
Por lo tanto estamos hablando de 9 sensores que deben de marcar que han visto pasar al objeto y dependiendo de los sensores que marquen así conoceré la posición del objeto, si está centrado o desviado 1 posición, 2, 3 o simplemente esta fuera de posición.
Inicialmente después de leer mucho había pensado en dos tipos de sensores uno infrarrojos y otro el CNY70, pero no sé si estos son simétricos o si su haz de acción se metería dentro de la desviación vecina y me daría falsas mediciones. Cual creéis que es mejor para este caso en concreto de estas dos opciones o cualquier otra que yo desconozco.
La idea es que al pasar un objeto se encienda un led avisando de la posición del objeto y además lo incluya en una variable para poder consultar las posiciones en un momento dado.
Las medidas máximas de los objetos a transportar son aproximadamente de 43 mm tanto en ancho como en alto.
Por si es de interés, los objetos serán en un 99% blancos, amarillos y el color de la cinta verdes.
Muchísimas gracias.
Ya os vendré con más dudas sobre el proyecto seguro que soy muy nuevo.
Ahora comprendo tu idea.
Se trata de un grafico de perfil, y tus sensores estarán a ambos lados de la cinta esableciendo si el objeto esta centrado o desviado en la banda 1,2 o 3.
Si es asi es muy fácil.
Supongo que da igual que sea 1 a izq o derecha y lo mismo con 2 y 3, asi que tendras 6 sensores en parejas.
De acuerdo al arduino que uses esto te consumirá 6 pines configurados como entradas.
Luego de definirlos por ejemplo asi.
// dispongo los sensores de a pares.
// sensor[0] y sensor[1] son los de la posición 1
// sensor[2] y sensor[3] son los de la posición 2
// sensor[4] y sensor[5] son los de la posición 3
const byte sensor[6] = {2,3,4,5,6,7};
bool estado1, estado2, estado3;
void setup() {
for (int i=0; i<6; i++) {
pinMode(i, INPUT);
}
}
void loop() {
estado1 = sensor[0] | sensor[1]; // serán 1 o 0
estado2 = sensor[2] | sensor[3]; // 1 si hay objeto
estado3 = sensor[4] | sensor[5]; // 0 si no hay objeto
if (estado1)
// tomo la decisión por desvío 1
digitalWrite(pinRele1, HIGH);
else
digitalWrite(pinRele1, LOW);
if (estado2)
// tomo la decisión por desvío 2
digitalWrite(pinRele2, HIGH);
else
digitalWrite(pinRele2, LOW);
if (estado3)
// tomo la decisión por desvío 3
digitalWrite(pinRele3, HIGH);
else
digitalWrite(pinRele3, LOW);
}
Inicialmente no me importa que vayan por parejas.
Para tener todo controlado habría que añadir una cuarta pareja que es cuando esta fuera de rango y otro individual mas, que es cuando va centrado, así luego puedo sacar porcentajes.
En un futuro la idea es seguir avanzando y que ya no sean pares, que sean de forma individual para conocer donde se desvían mas si hacia la derecha o la izquierda, pero esto a futuro.
Lo importante ademas de la programación es saber con que sensor hacerlo... y parece que el CNY70 no me va a valer.... cual podría poner para estas distancias y que no fuera excesivamente caro y sea simétrico para hacer buenas mediciones.