Muy buenas a todos.
Me presento, soy nuevo en el tema de Arduinos y programación y quiero empezar un proyecto bastante complejo para mi.
Quiero diseñar un controlador de gran tamaño que sea capaz de recoger muchas entradas y convertirlas a mensajes MIDI o directamente, si fuese posible, a comandos OSC por ethernet. También el programa tiene que poder interpretar unas señales de retorno, para encender unos pocos leds.
Tiene que ser capaz de interpretar 135 switches, 31 faders y 5 encoders.
Aqui vienen mis primeras dudas.
-Que tipo de Arduino puedo utilizar?
Sobre todo por que me ha parecido entender que hay algunos que no son capaces de trasmitir MIDI por USB y depende de cuantas entradas necesite.
-Cual seria el mejor método para conectar los 135 switches?
He pensado en hacer grupos de matrices y luego sumarlas mediante varios shift register como los 74HC595 en cadena.
-Como se podrían agrupar los 31 potenciómetros analógicos para ocupar el menor numero de entradas?
Y por ultimo.
-Arduino es capaz de mandar mensajes OSC directamente? o necesito un segundo programa para convertir los mensajes MIDI a OSC. Esto último ya lo he usado en otras ocasiones y funciona muy bien, pero quería evitar instalar otro programa en la maquina.
Espero vuestras opiniones.
Muchas Gracias.
Hay hilos similares en este foro, por favor búscalos.
Ante todo disculpad mi ignorancia.
Se que hay muchísima información al respecto, sobre todo en este foro, pero me resulta muy complicado elegir los mejores métodos para realizar mi proyecto.
Solo buscaba opiniones y ayuda especifica.
Muchas gracias.
Saludos.
-Que tipo de Arduino puedo utilizar?
Cualquiera, empezando por el mas chico. Yo siempre uso los NANOs y si no me alcanzan los pines considero al MEGA/DUE.
-Cual seria el mejor método para conectar los 135 switches?
Una posibildad es la que dices pero pero es mejor usando los 74165 que es la versión que LEE, no la que escribe como el 595.
Tambien puedes usar el PCA8
Esta es una idea muy interesante usada en el SHIELD LCD Keypad de Arduino. Son 6 teclas que estan conectadas a una serie de resistencias y cada una al ser presionada da un valor de tensión diferente.
Si expandes la idea como se ve en el esquema
Estamos hablando de 20 teclas y si aún asi lo multiplicas por 8 o 16 llegas
20 x 8 = 160
20 x 16 = 320 teclas.
Como sería, pues usas un multiplexor analógico CD40hc51
Donde repites esto con una entrada de arduino.
Es decir en cada entrada del 4051 tendras 20 teclas x 8 = 160.
Para ello debes barrer las y hacer que el 4051 apunte al grupo de teclas para saber si se ha presionado o no.
Lo mismo se puede hacer con un multiplexor CD4067 de 16 entradas/salidas segun como lo uses.
Finalmente y para no cansarte puedes usar cualquier versión I2C de lo mismo que tiene no solo capacidad de entrada/salida sino tambien un pin que puede servir para identificar si se ha presionado o no una tecla. Ese pin actua como interrupción.Se pueden poner en cascada por lo que el limite esta en el bolsillo porque no son baratos.
Es el PCA8574
Aca se ve en una configuración de entrada salida.

pero se pueden poner en cascada o sea, uno luego de otro pero para 160 necesitas 160/8 = 20 integrados.