En el SONY DSX-A42UI, que es el aparato que he comprado, esto se puede hacer con una serie de resistencias interconectadas entre los tres pines del jack estéreo de 3.5 mm insertable en su parte trasera.
El pin del canal derecho del jack solo se usa para la función SHIFT; el
resto de funciones las realiza intercalando una o varias resistencias
en serie entre los pines canal izquierdo y común o masa. Dependiendo del botón
presionado entre estos dos pines habrá una determinada resistencia que el aparato
interpretará como una función en concreto. Podemos verlo en detalle en
el siguiente esquema de un mando Sony.
Vemos que para el comando OFF o apagado no usa resistencia y será 0 ohm, para el de SOURCE o fuente de sonido usa una resistencia de 2.2k y sucesivamente va usando resistencias del mismo o diferente valor para las otras funciones, pero el valor de las resistencias al estar en serie se irá sumando. La suma de los valores para conseguir disparar la función deseada en un autorradio Sony o Pioneer podremos verla en el siguiente resumen:
Valor Sony | Función Sony | Valor Pioneer | Función Pioneer |
---|---|---|---|
0 | OFF o Apagado | 1.2k | Source o Fuente de sonido / 2seg. = apagado |
2.2k | Source o Fuente de sonido | 3.5k | Mute o Silencio |
4.4k | Mute o Silencio | 5.75k | Display o Cambia el modo del display |
6.6k | List/Display o Cambia el modo del display | 8k | Seek+ o Siguiente pista/emisora |
8.8k | Seek+ o Siguiente pista/emisora | 11.25k | Seek- o Anterior pista/emisora |
12.1k | Seek- o Anterior pista/emisora | 16k | Vol+ o Subir volumen |
16.8k | Vol+ o Subir volumen | 24k | Vol- o Bajar volumen |
23.6k | Vol- o Bajar volumen | 62.75k | Band/Escape o Banda/Salir |
33.6k | Sel o Seleccionar | ||
48.6k | Mode o Modo |
En definitiva tenemos 10 funciones que podemos usar, pero no olvidemos que nuestro volante tiene solo 6 botones. Por lo tanto, elegiremos qué 6 funciones deseamos usar. En mi caso he decidido usar las de Source, Display, Subir volumen, Bajar volumen, Pista/Emisora siguiente y Pista/Emisora anterior.
En la siguiente imagen podemos ver los valores de las resistencias del Opel Zafira para cada botón, así como la suma de sus valores para cada función del autorradio original y su correspondencia con el valor que requiere el nuevo autorradio SONY.
Este microcontrolador ya viene montado, consume poco, tiene puertos serie
y usb integrados para ser programado fácilmente con un ordenador, es barato y solo
requiere de unos pocos componentes externos para realizar el trabajo. Aparte del microcontrolador necesitaremos unos materiales extra; veamos cuáles son y su precio aproximado:
Cantidad | Descripción | Precio Unidad | Total |
---|---|---|---|
1 | Clon Arduino Nano V3.0 | 6.50 | 6.50 |
6 | Transistor BC547 | 0.20 | 1.20 |
1 | Regulador LM7805CV | 0.44 | 0.44 |
1 | Micro fusible 500mA | 0.40 | 0.40 |
14 | Resistencia 1/4W 1% (*) | 0.05 | 0.70 |
2 | Condensador electrolítico 100uf 16V | 0.20 | 0.40 |
1 | Tira 40 pines hembra paso 2.54mm (**) | 0.40 | 0.40 |
1 | Cable macho/macho estéreo 3.5mm (***) | 1.20 | 1.20 |
1 | Placa topos o cuadros perforada | 2.50 | 2.50 |
1 | Caja ABS 85x55x30mm Welleman WCAH2855 | 2.80 | 2.80 |
Total | 16.54€ |
(*) La cantidad de resistencias a comprar dependerá de los valores que necesitemos y de su disponibilidad comercial. No todos los valores son comercializados y para obtener un valor a veces bastará con una sola resistencia y otras habrá que sumar varias en serie. En mi caso conseguí los valores con las resistencias que tenía a mano y fueron los siguientes:
Función | Valor resistencia | Resistencias necesarias | Valores resistencias |
---|---|---|---|
Fuente de sonido | 2.2k | 1 | 2.2k |
Modo del display | 6.6k | 2 | 3k + 3.6k |
Siguiente pista/emisora | 8.8k | 3 | 2.2k + 3k +3.6k |
Anterior pista/emisora | 12.1k | 2 | 100R + 12k |
Subir volumen | 16.8k | 2 | 6.8k + 10k |
Bajar volumen | 23.6k | 3 | 3.6k +10k + 10k |
Necesaria en circuito | 1k | 1 | 1k |
(**) La tira de 40 pines la necesitamos para poder pinchar el Arduino Nano a la placa del proyecto; cortándola obtendremos 2 tiras de 15 pines cada una como las de la imagen.
(***) El cable macho a macho de 3.5 mm estéreo lo necesité en mi modelo de autorradio ya que el jack convencional para soldar que nos venden en las tiendas de electrónica tiene muy grueso el capuchón de plástico y no entraba en el zócalo de mi modelo, pues está rodeado del aluminio del disipador (ver primera imagen de esta publicación). Dependiendo del autorradio a instalar se comprará un cable ya hecho que suele tener el plástico del jack más fino o bien un jack simple y soldarlo a un trozo de 35 cm de cable coaxial.
Una vez que tengamos los materiales procedemos a montarlos en su correspondiente placa de circuito impreso, ya sea en una placa perforada de prototipos como veremos a continuación o en una placa para circuitos impresos que podemos realizar con el método del planchado y en este caso podrán imprimir la imagen de las pistas con el archivo que pondré al final de esta publicación. Dependiendo de nuestras habilidades seleccionaremos un método u otro; el esquema a seguir es el de la derecha.
Aunque yo he montado los componentes en una placa de circuito impreso realizada con el método de la transferencia de tóner, recomiendo usar una placa perforada de prototipos, ya que el circuito es relativamente simple y así nos evitamos tener que imprimir, planchar, atacar y perforar. Abajo pueden ver las imágenes de la placa de prototipos en sus dos caras, componentes y pistas.
Al soldar los componentes hay que tener en cuenta que el condensador C2 situado entre los zócalos del microprocesador, en vez de soldarse en vertical como se hace normalmente, lo soldaremos acostado contra la placa: Esto es necesario para que no impida la inserción del microprocesador en sus zócalos. Yo recomiendo soldar primero todos los componentes y zócalos, y luego soldar los alambres o cables de uniones entre pines.
Revisen todo dos o tres veces hasta estar seguros de que no hay ninguna conexión errónea, ninguna soldadura fría y por supuesto ningún cortocircuito entre pines o pistas. Prestad especial atención a la polaridad de los condensadores electrolíticos, a la posición del regulador de voltaje y a que las conexiones a los pines del microprocesador sean las correctas. No insertar este en su zócalo hasta haber comprobado que todo está según el esquema e igual que en las imágenes de la placa de prototipo.
Ahora que ya tenemos todo montado, ha llegado el momento de programar el microcontrolador. Para ello , lo sacaremos de los zócalos del adaptador. Necesitaremos la última versión del software IDE de Arduino correspondiente a nuestro sistema operativo. Podemos descargarlo haciendo clic aquí.
Una vez instalado el software, conectaremos el Arduino Nano mediante el cable USB a nuestro ordenador. Este lo detectará y se instalarán los controladores necesarios para su funcionamiento. Sí falta algún controlador, lo encontraremos en la subcarpeta "drivers" del programa Arduino que instalamos anteriormente. Si no encontramos el controlador necesario para el USB Serial, es debido a que el Clon del Nano que hemos comprado tiene el chip CH340G, en cuyo caso podremos descargar el driver de aquí.
Para cualquier otra duda siempre podremos buscar en Google cómo instalarlo en nuestro sistema operativo.
Cuando tengamos todo instalado correctamente, ejecutaremos el programa "arduino.exe" y lo configuraremos para nuestro modelo de Arduino y puerto serie. Para ello abrimos la pestaña "Herramientas", seleccionamos del menú desplegable la opción "Tarjeta" y marcamos "Arduino Nano w/ ATmega328". Volvemos a desplegar "Herramientas", seleccionamos "Puerto Serial" y elegimos el nuevo puerto serie que se ha instalado con los controladores del Arduino Nano. Generalmente es el COM4 (COM3 si tenemos más dispositivos que usen puertos serie virtuales). Debajo dejo capturas de las dos configuraciones necesarias.
Ya tenemos todo listo para cargar el código en el Nano. Podemos descargarlo del final de esta publicación. Una una vez descomprimido y con el software de Arduino abierto, desplegamos la pestaña "Archivo" y buscamos la carpeta "Programa" que acabamos de descomprimir. Dentro de esta carpeta hay dos subcarpetas llamadas "ZafiraSteeringWheelControl" y "ZafiraSteeringWheelControlDebug". Esta última contiene el mismo código que la primera, pero con la comunicación por puerto serie activada. La he incluido para que los más inquietos hagan modificaciones en el código y puedan monitorizar los resultados por la conexión serial del Nano. La que nos interesa para cargar y probar el adaptador es la carpeta "ZafiraSteeringWheelControl", y concretamente el archivo "ZafiraSteeringWheelControl.ino". Seleccionamos este archivo y se abrirá una nueva ventana con el código. En esa misma ventana pulsamos sobre el icono circular con una flecha hacia la derecha y se cargará el código en el Nano. Si el puerto configurado anteriormente era correcto y todo ha salido bien, nos mostrará en la parte inferior un mensaje confirmando la compilación y carga del código. Si aparecen errores de color naranja o no comunica con el Nano, habrá que revisar las configuraciones de placa y puerto en la pestaña "Herramientas".
Con el código cargado en el microcontrolador ya podemos desenchufarlo del USB e insertarlo en la posición correcta en los zócalos del adaptador. Cerramos la caja de plástico con sus tornillos y ya podemos instalar todo en el coche. El consumo del adaptador es de solo 58.1 mA y, aunque es un consumo muy pequeño, solo lo alimentaremos de un cable que entregue +12v con el autorradio encendido. Es por ello que recomiendo conectarlo al azul/blanco (Amp. Remote) del SONY, que soporta un consumo máximo de 300 mA y que solo entrega tensión si el aparato está encendido.
Abajo les dejo los enlaces a las descargas del archivo con el código para programar el microcontrolador, así como el archivo que contiene el diseño de la placa PCB con su visor e instrucciones para los que deseen crear una placa con el método de la transferencia de tóner o planchado.
- Descargar el código para Arduino
- Descargar el diseño del PCB
Por último, les dejo imágenes del adaptador con detalles del proceso de desarrollo y un vídeo del funcionamiento en el coche.
muy interesante, es basicamente lo que venía haciendo yo asi que me has ahorrado el trabajo. gracias!
ResponderEliminarMuy interesante
ResponderEliminar¿Me podrias confirmar si funcionaria con un mando de Renault Scenic con radio updatelist y donde podria descargar el codigo para cargarlo en el Nano?
Gracias
Hola muy buenas, para kenwood no tendrás los valores de las resistencias muchas gracias.
ResponderEliminarY otra cosa , no será más fácil cambiando las resistencias directamente de las teclas de los mandos del volante, abriéndolas ? Yo he visto algo parecido cambiando estas resistencias de dentro de los mandos de Astra g , muchas gracias , saludos.
ResponderEliminarBuena noche, muy interesante tu proyecto.Quisiera saber si me puedes ayudar con un asunto similar. Me gustaría saber como modificar o realizar un código ya que tengo multiplexado el teclado tengo 6 teclas y dos cables de salida. Osea que al pulsar una tecla me da un valor resistivo, este valor lo quiero tomar de entrada con el arduino y que me entregue el mismo valor. No tengo mucha idea en la programación.
ResponderEliminarHola,tu proyecto es fantastico y es lo que estaba buscando pero los enlaces para descargar el codigo para el arduino y el diseño de la pcb no funcionan.
ResponderEliminarPodrias revisar los enlaces para su descarga.
Gracias
Ya los he cambiado, a ver si ahora funcionan.
EliminarSaludos.
Gracias, ya funcionan correctamente y he podido descargalos.
EliminarSaludos
Hola en mi caso, mi radio tiene el zocalo necesito el mismo dispositivo o solo las resistencias?
ResponderEliminarHola. Estoy haciendo algo parecido y tengo una duda con la conexión de los transistores. Normalmente, en los NPN van conectados el Emisor a Masa, pero tu has conectado el Colector a Masa. Podrías explicar el porque? O simplemente en un fallo en el esquema?
ResponderEliminarMuchas gracias y un saludo.
Hola, dónde has conseguido los archivos ZafiraSteeringWheelControl??
ResponderEliminarel resto todo controlado, pero cómo consigues eso? porque parece que es una librería del nano, pero me sorprende. Mil gracias!
Carmen
Hola, muy buen artículo! Me animé a hacerlo con casi nulos conocimiento sobre electrónica y casi lo consigo gracias al detalle! Tengo un problema, no gatilla las funciones de r4, r5 y r6, subir y bajar volumen activan la señal de track adelante y el botón de track atrás no genera ninguna acción, las demás acciones las realiza bien, dónde puede estar el error?
ResponderEliminargenial, gracias por compartir Dr. Clone interesante site
ResponderEliminarHola si me volante tiene valores de resistencia diferentes qué parte del codicó tengo que modificar para adaptarse al nuevo valor ?
ResponderEliminarestimado buen día, yo tengo una radio pioneer con el mimo sistema de control al volante,
ResponderEliminarel problema es que no todos los botones funcionan solamente volumen. se revisaron los dos pines que trae el comando y la raqdio solo reconoce el volumen