Cómo extender Arduino Mega a 250 pines de E / S

0

el título en realidad resume bastante bien mi pregunta: ¿Cómo se extiende Arduino Mega a 250 I / O pin? Lo utilizaré para controlar 250 relés de 12 V (si hay una solución de IC / chip directo con capacidad de 12 V (se usarán 50 mA por pin) estará disponible, lo preferiría.

Actualmente, estoy pensando en usar una cadena tipo margarita de un registro de cambios de alta potencia (todavía no estoy seguro de si también necesito una recomendación (12V, máx. 50 mA), el siguiente problema es si todo va bien. De los que provienen de un pin de datos, ¿hay alguna otra solución?

Thx!

+ ACTUALIZACIÓN: Algunas veces encontré este ic enlace ¿funcionará? ¿Margarita encadenada a 30 de ellas?

    
pregunta Aufa Husen

2 respuestas

2

Definitivamente, puede utilizar el TPIC6A596 de Texas Instruments.

Sus salidas son más que capaces de conducir sus relés, para tener 150 salidas, necesitará conectar en cadena 19 de ellas.

El chip cuenta con un registro de desplazamiento de ocho bits, cronometrado por el pin SRCK . Este registro de desplazamiento se puede cargar de una vez en el registro de salida, para que los relés siempre se activen.

Para conectar en cadena los chips, deberá conectar el pin SER OUT del primer chip al pin SER IN del segundo, y así sucesivamente. El último SER OUT se puede dejar desconectado, mientras que el primer SER IN debe estar conectado al Arduino.

Los pines SRCK , RCK , /SRCLR y /G se pueden conectar entre sí y a otras cuatro salidas del Arduino, por lo que necesitará un total de cinco pines para impulsar su cadena.

A continuación, una pseudo rutina para gestionar todo esto:

En el encendido, desea mantener ambas entradas de reloj bajas mientras se reinicia tanto el registro de desplazamiento como el registro de salida que atan /SRCLR low. Probablemente sea una buena idea mantener la etapa de salida deshabilitada también, manteniendo /G alto.

Ahora que los chips están en un estado conocido, suelte el reinicio y ate la habilitación alta. Todos los relés están desactivados y está listo para marcar en la primera sesión. 152 bits.

Para hacerlo, simplemente comienza a alternar el pin SRCK mientras colocas los datos en el pin de salida del Arduino. Los datos son muestreados por los chips en el flanco ascendente del reloj. Para obtener el tiempo adecuado, consulte la hoja de datos, la frecuencia máxima de reloj es de 10MHz, un cambio completo requiere aproximadamente 15.2us.

Cuando todos los datos están sincronizados, deje de alternar SRCK , manténgalo bajo y produzca un solo pulso de reloj en RCK : los registros de salida se cargan simultáneamente con sus datos.

Cuando desee cambiar algo, solo marque los nuevos bits y solo cuando haya terminado de dar un toque de RCK : al hacerlo, se asegura de que se conoce el estado de los relés en un momento dado.

Se trata de eso, pero hay un par de comentarios:

Deberá agregar diodos de protección a sus relés. Este sitio está lleno de ejemplos al respecto, por lo que no profundizaré en el problema.

El RdsON típico es \ $ 1 \ Omega \ $. Sus relés son 50mA, ocho de ellos suman 400mA, esto es 400mW disipados en el chip. Tiempos 19 fichas que suma hasta 7.6W. Esto es bastante poderoso, y el diseño de su placa debería tener esto en cuenta. Hay algunas sugerencias térmicas en la hoja de datos, léalas y entienda las implicaciones. Sin un disipador de calor de cobre, la resistencia térmica es de 80 ° C / W, a 0,4 W, 32 ° C por encima de la temperatura ambiente. Dependiendo de su aplicación, esto podría ser aceptable o no.

La frecuencia máxima de funcionamiento es de 10MHz, pero tengo la sensación de que no es necesario que vaya tan rápido. Tenga en cuenta también que manejará 19 entradas con una única salida Arduino para los pines comunes. Probablemente esté bien, pero la carga capacitiva puede ser bastante alta, por lo que el tiempo de subida y bajada será largo. No estoy seguro de si esto es un problema, esto requiere algunas mediciones, pero si mantiene su reloj más lento, estará más seguro y probablemente cumpla con sus especificaciones de tiempo de todos modos.

    
respondido por el Vladimir Cravero
2
  

... para controlar 150 lámparas y amp; Fans en un edificio ... sí, sé que hay bastante de eso.

Le recomendaría que considere una estrategia de control alternativa.

  • Arduino no es una plataforma de control industrial o de edificios. Estaría nervioso por vivir o trabajar en un edificio controlado por una placa de microcontrolador de hobby.
  • La estrategia de control no se modificará fácilmente más que por el experto del sistema.
  • Todo el cableado de la red tendrá que ser devuelto al punto de control central.
  • No es fácil de expandir.

En su lugar, debe considerar un edificio pequeño o un controlador industrial capaz de admitir entradas y salidas remotas. Las ventajas son:

  • Robusto.
  • Se puede construir en un gabinete de control adecuado.
  • El cableado principal será local a la carga.
  • La red puede ser cableada (Ethernet, RS485, etc.) o inalámbrica.
  • Los ingenieros / electricistas de control pueden leer y entender el programa (suponiendo que esté bien comentado).
  • Mejor soporte a largo plazo. 25 años no serían inusuales.
  • Software de programación disponible.

Lo siento si eso no es lo que quieres escuchar. Costará más en el corto plazo pero dará sus frutos en el largo plazo. Hay muchos PLC o controladores de bajo costo que realizarán este tipo de tareas.

    
respondido por el Transistor

Lea otras preguntas en las etiquetas