Concurrencia o varios Arduinos?

Hola a todos...

Soy nuevo en el foro y nuevo en el entorno de los microcontroladores, y casi nuevo en la electronica (primer contacto despues de 20 años).

Tengo una duda acerca de la factibilidad de un montaje: se trata de un dispositivo con un LCD, un teclado 7x3 (pudiera ser diferente), una entrada de impulsos desde una fotocelula para contar cosas detectadas, una entrada para un instrumento digital de medida (pie de rey digital), una comunicacion tipo serie con un PC, y nada mas (en principio).

El funcionamiento es el siguiente, la fotocelula va detectando cosas y los impulsos los envia al dispositivo que los va acumulando, pero de cuando en cuando alguien (operario), pulsa en el teclado con la finalidad, por ejemplo, de "anunciar" al PC que se va efectuar una medicion, la efectua, y el resultado de ella se envia al PC, este graba en una base de datos el resultado y tal, todo ello sin que el dispositivo deje de acumular los impulsos recibidos de la fotocelula (existen otras operaciones, pero yo diria que la mas compleja seria esta, y casi siempre con la condicion de acumular la cuenta).

He leido que Arduino no es multitarea, entonces no se si seria adecuado para esta finalidad, o si se podria utilizar un montaje con mas de un microcontrolador.

Saludos y gracias de antemano

Arduino no es concurrente, pero existe algún intento de poner un micro sistema operativo para implementar concurrencia. Si realmente lo necesitas, deberías echarle un ojo (busca en google, no tengo las referencias a mano). Ésta es la opción más complicada, pero probablemente lo mejor que puedes hacer.

Lo mas sencillo es reservar algo de tiempo para cada tarea, haciendo que el arduino no se bloquee en una sola tarea. Es un poco complicado, tienes que controlar con variables el estado y medición de tiempos para cada tarea, pero si no es demasiado complejo se puede hacer (en mi caso he hecho que un led parpadee mientras se hacen otras tareas).

Si todavía no es suficiente, prueba con 2 arduinos. No lo he hecho nunca, pero encontrarás ejemplos en internet usando el puerto serie o I2C.

Buenas...

Una aplicación muy interesante, supongo para el control de calidad. Te cuento lo que creo yo. Puedo estar en lo cierto o no...
1.- Creo que la aplicación puede hacerse mediante el uso de interrupciones. Es decir, el cuenta-piezas provoca una interrupción en el bucle del programa para añadir el conteo. Así no te pierdes ninguna.

2.- Entiendo que la medida del pie de rey es a través de un puerto serie y que esa medida estará disponible en el momento en que el operario haya terminado de ajustarlo, con lo qual la lectura de este valor no se realiza de forma continua, sino de forma puntual.

3.- Si quieres connectar todos los dispositivos al arduino (LCD, teclado, pie de rey y sensor) creo que no te quedan entradas en un Arduino Diecimilla/Duemilenove/ONE. Con lo que yo ahí veo dos soluciones:

  • Usar Arduino MEGA
  • Usar el PC como Display

No sé qual de estas dos te resulta mas fácil.

Seguiré este post para ver como evoluciona el proyecto. Me gusta. :wink:
Un saludo.