Estamos en racha!
Seguimos con las reparaciones. Esta vez en casa, también hay que dejarse caer de vez en cuando!
Volvemos al tema encoder rotativos. La verdad es que es un elemento que me encanta, con un solo mando puedes aumentar, reducir e incluso pulsar. Usabilidad y sencillez. Pero todo no van a ser buenas palabras, al final como todos los elementos mecánicos requieren de mantenimiento o sustitución llegado su momento. En este caso: sustitución. Es una pieza barata y no merece la pena repararla.
El síntoma... poco a poco ir perdiendo la capacidad de ajustar el tiempo/potencia, hasta llegar el punto de que compense desmontarlo antes de tirarlo. Además aprovechamos para investigar un poco.
Una foto del bicho (obviando el polvo por favor que estaba encastrado)
Etapa de alimentación con fusible, filtro y varistor
Aprovecho aquí para añadir un esquemita del bicho. Os remito al enlace siguiente en el que se realiza una reparación de un microondas Samsung un poco más simple.
http://elrincondesolucionestv.blogspot.com.es/2014/03/circuitos-de-seguridad-y-proteccion-en.html
La idea básica detrás de la electrónica de control es la siguiente:
- controlar tiempo de encendido y apagado del magnetrón
- controlar tiempo de encendido y apagado de la resistencia
- mecanismos de seguridad (termostato, puerta)
El magnetrón se alimenta desde el transformador de alta. Le llegan 220V y salen algunos miles.
Fusible de alta tensión
Condensador de alta (antes de tocar nada es obligatorio descargarlo, nos puede dar un pequeño susto si no lo hacemos).
¿Cómo se descarga? Primero desconectando alimentación. Una resistencia en paralelo nos servirá. Primero puedes mirar con el voltímetro si el rango es suficientemente alto, ten en cuenta que puede ser de 2000V si no llega lo puedes freír. Lo puedes descargar sobre una bombilla, sobre la propia resistencia del microondas.
En cualquier caso los condensadores de microondas suelen tener una resistencia en paralelo de varios megaohms. Eso quiere decir que pasado un tiempo suficiente el condensador siempre estará descargado.
¿cuánto tiempo debe pasar? Recordando un poco de electrónica... 5T = 5 x R x C
Para un condensador de 1uF y resistencia de 10Mohms pues estamos hablando de 50s.
Detalle de la resistencia superior y termostato.
Placa de control. Se pueden ver dos relés, uno para la resistencia (rojo) y otro para alimentar el trafo para encender el magnetrón.
Como se puede ver, el control del magnetrón es relativamente sencillo ON/OFF. ¿Cómo se controla entonces la potencia del microondas que usualmente se selecciona en el frontal? Pues encendiendo y apagando. En máxima potencia estará siempre encendido. Si lo ponemos al 50% pues estará 30s ON y otros 30s OFF por ejemplo. Al final la potencia del microondas seleccionada da una idea de la potencia media aplicada, pero de verdad siempre estará sólo en dos estados: al 100% o al 0%.
La placa de control ya desmontada. La verdad es que tiene una pinta de ochentera bastante importante y sólo tiene 10 años. Me llamaron la atención los dos puente de diodos al lado del transformador. Están hechos con diodos individuales. El trafo genera dos tensiones, una para la electrónica y otra para los relés.
Localizado el responsable del fallo. Procedo a retirar el antiguo y colocar el nuevo.
Todo perfecto. No tiene el mismo "toque" que el antiguo pero funciona.
mi punto limpio
Aquí no se tira nada. Todo puede servirte algún día...
viernes, 3 de junio de 2016
martes, 17 de mayo de 2016
reparación OWON PBS5022S
Mucho tiempo sin publicar nada...
Tenía por aquí unas fotos de la reparación de un osciloscopio "low cost" que no quería dejar de compartir. "Al final lo barato sale caro", en fin, dejémoslo ahí.
El osciloscopio en cuestión es marca OWON modelo PDS5022S. No es muy malo. Quizás la pantalla podría tener algo más de contraste y luminosidad. Para 300€ que costó en su momento.
El caso es que todos los encoders rotativos habían ido dejado de funcionar poco a poco. ¿Cuál era la idea? Pues abrir, diagnosticar, arreglar y cerrar.
Por si a alguien le ha ocurrido algo parecido, el síntoma es que parece que al girar para un lado la electrónica entiende que a veces gira en el sentido correcto y otras en el contrario. Sin ton ni son.
Empezamos la operación.
Abrir
Un par de tornillos, algo de presión para las pestañas y voilá
Detalle de la placa del potenciómetro de contraste
Adaptación de las entradas de sonda
Mirad el integrado de la izquierda, rebosa calidad por todos los costados ;)
Condensadores en modo volante...
Detalle de la carcasa
Electrónica finalmente separada
Diagnosticar
El encoder tiene un funcionamiento bastante sencillo. Un dial y dos contactos: A y B. Cuando el dial gira en un sentido, primero cierra un contacto A y después otro B contra el común. Cuando gira en sentido contrario, el orden de los contactos también se invierte, es decir, primero B y después A.
Más vale una imagen que mil palabras.
diagrama de funcionamiento de un encoder rotativo
Pensando que fuera ruido en los encoders probé lo más sencillo, aplicar una par de condensadores a cada lado del encoder contra el común. Rango típico para una entrada de un microcontrolador, pues del orden de nF. Para nada tanta prueba y tanta charla. Seguía igual.
Paso siguiente: buscar encoder similar, comprar y esperar...
Armado con calibre y Farnell en mano buscamos el que más se le parece.
Compro también los botones / embellecedores pensando que seguramente no serían compatibles los originales con los nuevos encoders.
Arreglar
Localizados los encoders y empieza la fiesta. Para retirarlos opté por lo más sencillo, cortar con alicate las patas y después aplicar soldador y extractor para limpiar el estaño de los pads.
Cerrar
Volver a colocar todo como estaba usando las fotos anteriores como guía y colocar los botones nuevos
Dicho y hecho.
Ultimas consideraciones: los pasos por vuelta sirven para algo. Los compré todos de unas 30 pasos por vuelta y con "click". Quizás alguno de ellos los debería haber elegido de más pasos. Qué implicación tiene eso? Pues sencilla, a más pasos por vuelta menos vueltas debes darle al encoder para llegar a donde quieres.
Quizás me acuerde la siguiente vez que lo abra ;)
Tenía por aquí unas fotos de la reparación de un osciloscopio "low cost" que no quería dejar de compartir. "Al final lo barato sale caro", en fin, dejémoslo ahí.
El osciloscopio en cuestión es marca OWON modelo PDS5022S. No es muy malo. Quizás la pantalla podría tener algo más de contraste y luminosidad. Para 300€ que costó en su momento.
El caso es que todos los encoders rotativos habían ido dejado de funcionar poco a poco. ¿Cuál era la idea? Pues abrir, diagnosticar, arreglar y cerrar.
Por si a alguien le ha ocurrido algo parecido, el síntoma es que parece que al girar para un lado la electrónica entiende que a veces gira en el sentido correcto y otras en el contrario. Sin ton ni son.
Empezamos la operación.
Abrir
Un par de tornillos, algo de presión para las pestañas y voilá
Detalle de la placa del potenciómetro de contraste
Adaptación de las entradas de sonda
Mirad el integrado de la izquierda, rebosa calidad por todos los costados ;)
Condensadores en modo volante...
Detalle de la carcasa
Electrónica finalmente separada
Diagnosticar
El encoder tiene un funcionamiento bastante sencillo. Un dial y dos contactos: A y B. Cuando el dial gira en un sentido, primero cierra un contacto A y después otro B contra el común. Cuando gira en sentido contrario, el orden de los contactos también se invierte, es decir, primero B y después A.
Más vale una imagen que mil palabras.
diagrama de funcionamiento de un encoder rotativo
Pensando que fuera ruido en los encoders probé lo más sencillo, aplicar una par de condensadores a cada lado del encoder contra el común. Rango típico para una entrada de un microcontrolador, pues del orden de nF. Para nada tanta prueba y tanta charla. Seguía igual.
Paso siguiente: buscar encoder similar, comprar y esperar...
Armado con calibre y Farnell en mano buscamos el que más se le parece.
Compro también los botones / embellecedores pensando que seguramente no serían compatibles los originales con los nuevos encoders.
Arreglar
Localizados los encoders y empieza la fiesta. Para retirarlos opté por lo más sencillo, cortar con alicate las patas y después aplicar soldador y extractor para limpiar el estaño de los pads.
Cerrar
Volver a colocar todo como estaba usando las fotos anteriores como guía y colocar los botones nuevos
Dicho y hecho.
Ultimas consideraciones: los pasos por vuelta sirven para algo. Los compré todos de unas 30 pasos por vuelta y con "click". Quizás alguno de ellos los debería haber elegido de más pasos. Qué implicación tiene eso? Pues sencilla, a más pasos por vuelta menos vueltas debes darle al encoder para llegar a donde quieres.
Quizás me acuerde la siguiente vez que lo abra ;)
martes, 5 de noviembre de 2013
programacion bootloader arduino con avr jtag mk2
Hacía tiempo que no publicaba nada!
Me he visto en la encrucijada de tener que grabar un ATMEGA328p "virgen" con el bootloader de arduino. Todo sería coser y cantar con el programador adecuado, es decir, cualquiera que sea ICSP. Los programadores ICSP de Atmel permiten el grabado pero no la depuración de los programas. Vamos que no puedes parar la ejecución, ejecutar paso a paso... Así que cuando tuve que comprar un programador me hice con un JTAG.
Existen multitud de equipos que disponen de conector JTAG de programación/depuración: móviles, routers, etc. Yo particularmente lo utilizaba para la programación de ATMEGA1281 y ATMEGA32. Cualquiera que esté metido en el mundillo OpenWRT sabrá de qué estoy hablando.
La cuestión es que el 328P no dispone de puerto JTAG. Sin embargo, el programador AVR JTAG MK2 permite que sea utilizado para la programación ICSP. Lo único que hace falta es usar el cable apropiado para adaptar el JTAG al ICSP. Es un cable sin electrónica, en pocas palabras, son solo cables.
Así que vamos al grano:
1) localizamos el hex del bootloader en /arduino/Arduino/hardware/arduino/bootloaders
2) Vemos los fuses necesarios en el fichero boards.txt
atmega328.name=Arduino Duemilanove w/ ATmega328
atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600
atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F
atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard
3) Grabamos los fuses
avrdude -p m328p -c jtag2isp -P usb:2822 -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m -v
4) Grabamos el bootloader
avrdude -p m328p -c jtag2isp -P usb:2822 -U flash:w:ATmegaBOOT_168_atmega328.hex -v
Para más información acerca de avrdude visita la página
avrdude es el programa con el que se interactúa con los programadores de AVR y clones.
2822 es el número de serie de mi programador. Es la forma que tiene avrdude de saber por dónde va a programar.
La cuestión es que no debe ir todavía muy fino, y seguramente es algún tipo de emulación (bit-banging). A la hora de verificar los resultados me ha lanzado errores varias veces. A la tercera es la definitiva.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.15s
avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as 5
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ATmegaBOOT_168_atmega328.hex"
avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex
avrdude: writing flash (32670 bytes):
Writing | ################################################## | 100% 1.20s
avrdude: 32670 bytes of flash written
avrdude: verifying flash memory against ATmegaBOOT_168_atmega328.hex:
avrdude: load data flash data from input file ATmegaBOOT_168_atmega328.hex:
avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex
avrdude: input file ATmegaBOOT_168_atmega328.hex contains 32670 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 11.31s
avrdude: verifying ...
avrdude: 32670 bytes of flash verified
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as 5
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Me he visto en la encrucijada de tener que grabar un ATMEGA328p "virgen" con el bootloader de arduino. Todo sería coser y cantar con el programador adecuado, es decir, cualquiera que sea ICSP. Los programadores ICSP de Atmel permiten el grabado pero no la depuración de los programas. Vamos que no puedes parar la ejecución, ejecutar paso a paso... Así que cuando tuve que comprar un programador me hice con un JTAG.
Existen multitud de equipos que disponen de conector JTAG de programación/depuración: móviles, routers, etc. Yo particularmente lo utilizaba para la programación de ATMEGA1281 y ATMEGA32. Cualquiera que esté metido en el mundillo OpenWRT sabrá de qué estoy hablando.
La cuestión es que el 328P no dispone de puerto JTAG. Sin embargo, el programador AVR JTAG MK2 permite que sea utilizado para la programación ICSP. Lo único que hace falta es usar el cable apropiado para adaptar el JTAG al ICSP. Es un cable sin electrónica, en pocas palabras, son solo cables.
Así que vamos al grano:
1) localizamos el hex del bootloader en /arduino/Arduino/hardware/arduino/bootloaders
2) Vemos los fuses necesarios en el fichero boards.txt
atmega328.name=Arduino Duemilanove w/ ATmega328
atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600
atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F
atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard
3) Grabamos los fuses
avrdude -p m328p -c jtag2isp -P usb:2822 -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m -v
4) Grabamos el bootloader
avrdude -p m328p -c jtag2isp -P usb:2822 -U flash:w:ATmegaBOOT_168_atmega328.hex -v
Para más información acerca de avrdude visita la página
avrdude es el programa con el que se interactúa con los programadores de AVR y clones.
2822 es el número de serie de mi programador. Es la forma que tiene avrdude de saber por dónde va a programar.
La cuestión es que no debe ir todavía muy fino, y seguramente es algún tipo de emulación (bit-banging). A la hora de verificar los resultados me ha lanzado errores varias veces. A la tercera es la definitiva.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.15s
avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as 5
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ATmegaBOOT_168_atmega328.hex"
avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex
avrdude: writing flash (32670 bytes):
Writing | ################################################## | 100% 1.20s
avrdude: 32670 bytes of flash written
avrdude: verifying flash memory against ATmegaBOOT_168_atmega328.hex:
avrdude: load data flash data from input file ATmegaBOOT_168_atmega328.hex:
avrdude: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex
avrdude: input file ATmegaBOOT_168_atmega328.hex contains 32670 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 11.31s
avrdude: verifying ...
avrdude: 32670 bytes of flash verified
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as 5
avrdude: safemode: Fuses OK
avrdude done. Thank you.
domingo, 30 de enero de 2011
Radio acabada y funcionando
Ya era hora de que subiera un par de fotillos mostrando el resultado final. La placa quedó colocada al final en el hueco del que dispone la radio para montar un módulo de cd o de cinta que se pueden comprar por un "módico" precio.
En la primera foto se pueden ver las dos cintas plana que llevan las señales de control y el audio del módulo de radio TEA5767. El cable gris que entra por detrás a la placa es el de antena que dejé soldado al conector de antena de la radio original. Además el cable negro que sale de la radio es una sorpresa que añadí al final.
La sorpresa que mencioné antes era que logré identificar otra entrada de audio al integrado que se encarga del sonido y las cableé hacia fuera con un conector jack. Con esta entrada puedo conectar mi mp3 a la radio y así seleccionar otra fuente de sonido.
Y, finalmente, dejo un video de la radio funcionando.
miércoles, 15 de diciembre de 2010
Oferta interesante para próximos inventos
Si algún enamorado de la electrónica y/o fan de Arduino está leyendo, seguramente habrá leído en algún foro que los accesorios del mando de la wii se pueden utilizar para proyectos. Por si acaso no lo sabéis el wii motion plus tiene 3 giroscopios y el nunchuck tiene 3 acelerómetros, además de un joystick y un par de botones.
La forma de utlizarlo en vuestros proyectos es bastante sencilla puesto que los dos accesorios usan para comunicarse con el mando el protocolo I2C. No os hace falta mucha teoría, sólo saber que casi todos (por no decir todos) los microcontroladores soportan I2C y que, por supuesto, arduino también lo hace. Para arduino existe la librería Wire.
Dejo algunos enlaces para saber cómo usarlos:
nunchuck y arduino
wii motion plus y arduino
Para el que no quiera desarmar el conector de los accesorios, existe un adaptador para usarlo de forma muy fácil y sencilla. Algunos enlaces de tiendas online que lo tienen:
bricogeek
sparkfun
Y ahora lo interesante. En las tiendas GAME, no sé si en todas las de España, está a la venta (de oferta) un mando nunchuck inalámbrico por 6,95€. El precio oficial del normal (que tiene cable) es de 19€ creo recordar. Yo ya me he hecho con uno y lo he abierto.
No sé si usarlo tal cual, es decir, como un mando inalámbrico, o salvajearlo un poco. Ya veremos.
Por cierto, el mando va sólo con una pila AAA. Esto quiere decir que seguramente tendrá un booster, un circuito que sirve para elevar la tensión, porque ni el acelerómetro que lleva va alimentado a esa tensión. El booster eleva la tensión pero conservando las leyes de la Física, es decir, de 1,5V y 1A no se pueden sacar 3000V y 100A. Hay que recordar que P=I*V en ambos lados y sumar las pérdidas.
Dejo un enlace de la gran web de Pablin sobre un montaje elevador de tensión. En la sección de electrónica hay multitud de montaje útiles.
La forma de utlizarlo en vuestros proyectos es bastante sencilla puesto que los dos accesorios usan para comunicarse con el mando el protocolo I2C. No os hace falta mucha teoría, sólo saber que casi todos (por no decir todos) los microcontroladores soportan I2C y que, por supuesto, arduino también lo hace. Para arduino existe la librería Wire.
Dejo algunos enlaces para saber cómo usarlos:
nunchuck y arduino
wii motion plus y arduino
Para el que no quiera desarmar el conector de los accesorios, existe un adaptador para usarlo de forma muy fácil y sencilla. Algunos enlaces de tiendas online que lo tienen:
bricogeek
sparkfun
Y ahora lo interesante. En las tiendas GAME, no sé si en todas las de España, está a la venta (de oferta) un mando nunchuck inalámbrico por 6,95€. El precio oficial del normal (que tiene cable) es de 19€ creo recordar. Yo ya me he hecho con uno y lo he abierto.
No sé si usarlo tal cual, es decir, como un mando inalámbrico, o salvajearlo un poco. Ya veremos.
Por cierto, el mando va sólo con una pila AAA. Esto quiere decir que seguramente tendrá un booster, un circuito que sirve para elevar la tensión, porque ni el acelerómetro que lleva va alimentado a esa tensión. El booster eleva la tensión pero conservando las leyes de la Física, es decir, de 1,5V y 1A no se pueden sacar 3000V y 100A. Hay que recordar que P=I*V en ambos lados y sumar las pérdidas.
Dejo un enlace de la gran web de Pablin sobre un montaje elevador de tensión. En la sección de electrónica hay multitud de montaje útiles.
viernes, 3 de diciembre de 2010
Programando
El código está dividido en ficheros y cada fichero corresponde al manejo de cada uno de los integrados. De este modo la correspondencia queda así:
- sonido.h -> Librería para el manejo del ecualizador.
- DisplayIC.h DisplayIC.cpp -> Librería para el manejo del display y el teclado
- Radio.h Radio.cpp -> Librería para el manejar el estado general de la radio del coche
- TEA5767.h TEA5767.cpp tealibtest.pde -> Librería para el manejo del módulo de radio. Ya que este módulo es comercial, incluyo también un ejemplo de uso por si alguien estuviera interesado en la librería para algún proyecto.
- TimedFunc.cpp TimedFunc.h timedf.pde -> Librería para programar ejecución de funciones de forma cíclica con intervalo variable, programar funciones que se ejecuten sólo una vez pasado cierto tiempo y un ejemplo para usarla.
- radioMazda.pde -> el programa principal
Evidentemente no voy a explicar el código, pero si no sabéis programar con Arduino es suficiente decir que existen dos funciones principales setup() y loop() (que son llamadas por un main() que no es visible al usuario). La función setup() se ejecuta sólo una vez al comenzar y se encarga generalmente de configurar puertos, periféricos, variables, etc... La función loop() se ejecuta de forma infinita y es donde se programa todo el comportamiento de la placa.
Quedaría como algo así:
main()
{
setup();
while (1) loop();
}
El programa básicamente lo que hace es mirar el teclado de la radio y actuar en consecuencia. Además gestiona una interrupción para actualizar el reloj de la radio.
Aprovechando que la radio siempre tiene corriente, el reloj se mantiene en RAM y se actualiza con una interrupción. Cuando la radio está apagada el arduino pasa a modo bajo consumo en el que se apagarán todos los periféricos excepto el timer responsable de generar la interrupción. No es que el consumo de esta placa sea importante en este caso (recordemos que la fuente de alimentación es la batería del coche) pero nunca está de más el no desperdiciar los amperios!
- sonido.h -> Librería para el manejo del ecualizador.
- DisplayIC.h DisplayIC.cpp -> Librería para el manejo del display y el teclado
- Radio.h Radio.cpp -> Librería para el manejar el estado general de la radio del coche
- TEA5767.h TEA5767.cpp tealibtest.pde -> Librería para el manejo del módulo de radio. Ya que este módulo es comercial, incluyo también un ejemplo de uso por si alguien estuviera interesado en la librería para algún proyecto.
- TimedFunc.cpp TimedFunc.h timedf.pde -> Librería para programar ejecución de funciones de forma cíclica con intervalo variable, programar funciones que se ejecuten sólo una vez pasado cierto tiempo y un ejemplo para usarla.
- radioMazda.pde -> el programa principal
Evidentemente no voy a explicar el código, pero si no sabéis programar con Arduino es suficiente decir que existen dos funciones principales setup() y loop() (que son llamadas por un main() que no es visible al usuario). La función setup() se ejecuta sólo una vez al comenzar y se encarga generalmente de configurar puertos, periféricos, variables, etc... La función loop() se ejecuta de forma infinita y es donde se programa todo el comportamiento de la placa.
Quedaría como algo así:
main()
{
setup();
while (1) loop();
}
El programa básicamente lo que hace es mirar el teclado de la radio y actuar en consecuencia. Además gestiona una interrupción para actualizar el reloj de la radio.
Aprovechando que la radio siempre tiene corriente, el reloj se mantiene en RAM y se actualiza con una interrupción. Cuando la radio está apagada el arduino pasa a modo bajo consumo en el que se apagarán todos los periféricos excepto el timer responsable de generar la interrupción. No es que el consumo de esta placa sea importante en este caso (recordemos que la fuente de alimentación es la batería del coche) pero nunca está de más el no desperdiciar los amperios!
El Arduino y la Radio
Lo mejor del Arduino es que teniendo tiras de pines puedes hacer un "shield" (así es como llaman a las placas que conectas encima del arduino) bastante rápido. Los shields comerciales son "estacables" (dándole patadas al diccionario), es decir, puedes colocar unos encima de otros y siguen funcionando, aunque esto no vale con todos.
La placa debía disponer de:
- 2 conectores acodados para conectar las cintas planas que llevan las señales desde la radio hasta el arduino
- El placa del TEA5767
- Un conector para llevar la antena desde la radio hasta el TEA5767
- Un led verde. Imprescindible en cualquier placa que se precie es saber que está alimentada!!!
Una fotillo de como quedó antes de cortar la placa
Vista por debajo (las conexiones hechas con hilo de wrapping). Aquí se ve como se llevan las señales desde los conectores acodados hasta los puertos del Arduino.
Conexión del TEA5767 usando hilo de wrapping y tiras de postes hembra. Los dos condensadores que se observan son para quitar el posible nivel de continua de las señales de audio antes de llevarlos al ecualizador de la radio.
La solución del conector del cable de antena no es la más elegante pero funciona.
Suscribirse a:
Entradas (Atom)