Holas buenas, tengo un proyecto entre manos y creo que arduino puede ser la solución, pero me encuentro un poco perdido entre a lo que materiales se refiere, no se cual me rentaría usar mas y porqué, he estado viendo varios modelos, pero no termino de decidirme, me gustaría exponer mi problema y ver si alguien podría iluminarme.
Me encuentro en la situación de usar la tecnología NFC, he visto que con un PN532 y una placa Arduino UNO podría hacer algo bastante interesante, la cuestión es que necesito tener 40 lectores PN532. También he visto que el Arduino DUE tiene cuatro puertos UARTS, por lo que si no me equivoco en mis pensamientos usando 10 placas de estas podría leer las 40 tarjetas NFC, pero no sé si podría comunicar todas estas placas Arduino DUE para poder centralizar la información. La razón para centralizar toda la información es para poder enviar los datos recogidos por las placas a una pantalla WEINTEK y aquí a un servidor,
En este casó no quiero programar nada en las placas arduinos mas haya de la lectura y la comunicación, ya que el control importante del programa se hará externamente.
Por lo cual:
¿Podría usar Arduino DUE para leer cuatro tarjetas PN532?
¿Podría comunicar estas tarjetas entre si para centralizar la información?
¿Hay algún otro modelo que me convendría mas ?
Muchas gracias por su atención, si he puesto mal el post o cualquier cosa por favor indicármelo para que pueda cambiarlo.
Creo que estas realmente perdido.
Primero desconoces cuál es la mejor forma de comunicarte cuando tienes tantos dispositivos para leer/escribir.
Desde ya que Serial no es la respuesta.
Tienes dos opciones I2C o SPI. A me me gusta mas la comunicación SPI pero I2C también funcionaría bien. En I2C tienes que indicar a cada uno de los 40 dispositivos una dirección diferente, no se si es posible. Con SPI requieres 40 GPIOs para accionar los CS chip select, que restringe mucho las posibilidad de microcontroladores.
Requerirás algún multiplexor 4 a 16 o varios (3 minimo) para lograr 3*16 = 48 pines.
Lo puedes hacer con cualquier arduino pero 40 requerirá RAM y no todos la tienen, descarta un UNO o NANO aunque todo hay que verlo, ya se que no soy muy específico pero hay que ponerse con el programa, ver cuanto consumen digamos 5 o 10 dispositivos y luego extrapolar.
Tal vez un DUE que tiene RAM, 52 pines I/O, sea uno de los ideales para la opción SPI que te sugerí, la contra que es caro, esta descontinuado y solo consigues clones. Atento a los comentarios, no le compres a alguien que no los tenga!!
Un UNO R4, o un ESP32, o cualquier STM32 y otros aunque tienen potencia, RAM y Flash no tienen pines suficientes para la idea SPI.
Si, ando super perdido la verdad, no sabría ni por donde empezar la verdad, en este caso comprar mas placas de Arduino no seria un problema si manejar tantos lectores fuera un problema, en el ESP32 también había pensado la verdad.
El problema también es que voy bastante perdido con la nomenclatura y los sistemas de comunicación, estoy mas acostumbrado al entorno de los PLC
No es cuestión de comprar por comprar.
Hay que pensar antes.
Resumen.
Busca la posibilidad de usar I2C pero para ello debes indicar fisicamente a cada NFC con un address diferente.
Busca el modo de hacerlo.
De lo contrario la alternativa es SPI pero requieres 40 pines. Ya te dije que opciones tienes
O vas con un MEGA o DUE que tienen 52 I/Os o vas con otra cosa con menos pines pero usas multiplexores para expandir salidas.
No lo habia pensado, también puedes usar 74HC595 como salidas del tipo CS y poner 1 de estos integrados cada 8 salidas. Necesitas 5 para 40 pines.
Solo consumen 2 pines de un arduino o micro similar.
Bueno, buscando la solución mas simple aparentemente que seria con I2C, se presenta como siempre un problema y es el direccionamiento
El mismo dice que este cuesta un poco mas pero es de mejor calidad que otros.
Atento a esto compañero, hay mucha basura en el mercado, compra cosas de calidad para que el cliente luego no te venga con tonterías.
Bueno a menos que el PN52 permita una programación de la dirección vía software, lo único que te queda es usar multiplexores I2C los que permiten que dispositivos con la misma dirección compartan el BUS I2C como si fueran 1 solo.
Esto nos pone en la situación de que usar SPI sea mejor opción.
Esperemos a ver que dicen los compañeros.
Le hecho un vistazo a todo, muchas gracias, en este caso el proyecto es algo interno por lo que tengo cierto margen de "prueba", también leeré el post que me has enviado.
Hay una cosa que me esta liando y es el método de cableado, obviamente entiendo que depende de la comunicación se cablea de una forma otra, pero en la I2C se conectan a entradas analogicas y en la SPI se conectan directamente a entradas digitales (dos normales y dos pwr)
¿Quiere decir esto que no tienen un puerto de comunicación especial asignado realmente? Ósea que ya las librerías se encargan de transcribir la información de las entradas que tu le asignes.
I2c es un protocolo digital y como los pines del Arduino suelen ser multifuncionales es el caso de A4 y A5 no que no son analógicos y pasan a ser digitales Entrada/salida con hardware I2C.
Arduino I2C en tu buscador y entenderás de qué hablo
Para usar I2C necesitas que cada dispositivo PN52 tenga una dirección distinta para poder identificarlo pero por lo visto no se pueden cambiar, asi que debes usar el multiplexor I2C que te he comentado pero no te dije cual es.
Con SPI usas 3 pines similares para los 40 y requieres 40 pines para habilitar cada dispositivos y ahi tienes opciones. Ya las expliqué asi que no lo haré de nuevo.
Hola buenas, perdón por la tardanza, estuve haciendo pruebas con el multiplexor y no conseguí leer la tarjeta de NFC usando el multiplexor, seguramente sea por ignorancia y no entender realmente lo que estoy haciendo, he estado pensando en activar y desactivar las tarjetas NFC según las necesite y activar también la comunicación con ellas.
Perdón por mi respuesta, pero lo mismo veo con mi hijo y la gran mayoría de las consultas de este foro, no saben usar el navegador y consultar sus propias dudas.
Es decir, no saben buscar.
Si pudiera exigiría en los colegios en enseñar a hacerlo.
Puse en mi navegador y dejo captura para que no deje dudas
Moderador
No lo lo tomes como algo agresivo, porque recibo, a veces, estos comentarios de algunos y nada mas injustificado, cuando las mismas normas del foro lo sugiere.
3. Buscar antes de postear
Intenta solucionar tu problema, o responde tu pregunta por ti mismo. Por ejemplo si te estas preguntando como conectar una serie de LED’s a un registro 74HC595, intenta buscar en Google exactamente eso (agrega la palabra “Arduino” para obtener mejores resultados):
Antes de que me dijeras el modelo de multiplexor en el comentario, ya lo encontré y lo estuve probando, antes de que me mandaras una captura de "como usar un extensor" también encontré paginas y tutoriales.... Pero sin existo, obviamente tengo que hacer mas pruebas y practicar mas.
Lo tomo como un mensaje agresivo, por que son bastante agresivos y condescendientes, como bien digo en mensajes anteriores, mis problemas se deben sobre todo a que no estoy acostumbrado a este tipo de programación, por lo que a veces no se si fallo en la programación o en el cableado, mas aparte tengo otros proyectos con mas prioridad y el tiempo que me permiten dedicar hasta el momento ha sido bastante limitado.
No lo tomes a mal, agradezco mucho la ayuda, pero si cada mensaje va a sonar como "A ver vago que no quiere buscar cosas, toma ya lo he encontrado yo por ti" la verdad hace que las ganas de preguntar e indagar se esfumen rápidamente.