viernes, 3 de junio de 2016

Reparación microondas LG

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.

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 ;)

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.






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.


 Detalle de los dos conectores de cinta plana y los dos dobleces que tuve que hacerle a una de las cintas por no pensar un poco antes.

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.

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!

El Arduino y la Radio

La placa que conecta el Arduino con la radio la hice sobre placa de perforada por comodidad. No era una placa difícil y así es más rápido.

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.