magazine
www.elektor-magazine.es
Julio / Agosto 2013 | 8,50 �
������� ���������� �� ��������� ����������� �� ����������� ���������
���������� �� 70 �� �� ����� �����
O -
I
3
2
1
������������ ������� �������
132
���������
������� �������� �� ������ �������
�� �������������� � � -��� ����� ��
�� ����� � ��������� ���������: �� ����������
Cada martes una oferta exclusiva en tu bandeja de entrada
S A N A M E S S A L N A G L L E i L ! R O T K E L E E D S A C L O 2 01 3
!
e d e r b m e e i t p e S e d 1 2 l a o o i n u J e d D e l 21
s t t i K s o r b b L i A H O R R A H A S T T A U U N ‘ s o l u d o C D / D V D s M 5 0 % % s e n o o i c p p i r S u s c
‘
m a s . . . Y m
APROVÉCHATE DE NUESTRAS OFERTAS SEMANALES DE VERANO ¡Apúntate GRATIS a nuestro boletín semanal Elektor.POST Elektor.POST para no perderte ninguna!*
www.elektor.es/boletin
*Si ya recibes Elektor.POST, no tienes que hacer nada más. Recibirás automáticamente las Ofertas de Verano.
La ingeniería cambia el mundo La ingeniería es lo que nos hace avanzar. A medida que el mundo se hace más complejo, compl ejo, nos enfrentamos a retos más difíciles. ¿Cómo podemos ac elerar los avances en la ingeniería? Cambiando la forma en la que nos enfrentamos a ellos. Con National Instruments, Instruments, los ingenieros y científicos pueden aprovechar una plataforma de software y hardware integrado que abstrae la complejidad de los sistemas de medida y control.
Usted trae la visión. vis ión. Nosotros le damos las herramientas. Aprenda más en spain.ni.com.
>>
91 640 0085 ó 93 582 0251 a
National Instruments Spain S.L. Europa Empresarial c/Rozabella, 2 - edificio Berlin 1 planta 28290 Las Rozas (Madrid) España Tel: +34 91 640 00 85 ó 93 582 0251 a Fax: +34 91 640 05 33 ó 93 582 4370 CIF: B-80021462 Inscrita en el Registro Mercantil de Madrid, Folio, 115, Tomo 1181, Hoja N°22335, Inscrip. 1 Sociedad Unipersonal S.L. ■
■
■
■
■
■
■
©2013 National Instruments. All rights reserved. LabVIEW, National Instruments, NI, and ni.com are trademarks of National Instruments. Other product and company names listed are trademarks or trade names of their respective companies. 11756
■
Contenidos e n i z a g a m
Generador de Proyectos 14 ElektorCardi♥scopio Android (1) Inalámbrico, sin botones: Bluetooth y pantalla táctil.
24 De BASIC a Python (3) Comunicación con el ElektorBus.
34 Transmisor de 70 cm de Banda Ancha Con 130 mW de potencia de salida.
42 Marcando el paso Driver de motores paso a paso para el ElektorBus.
50 8 Relés... y Mucho Más Módulos de expansión para Linux y otras placas controladoras.
54 Controlador de Iluminación Ambiental Ajusta el estado de ánimo con LEDs RGB.
60 El Mando a Distancia Imbatible: un Smartphone Transmisor más App para dispositivos Android.
4 | julio / agosto 2013 | www.elektor-magazine.es
67 Iluminación Nocturna por Energía Solar con Backup de Ión-Li La energía solar alimenta un LED en las horas nocturnas.
68 De vuelta a las particularidades del Medidor LCR de 0,05 % El lujo de la precisión al alcance de todos.
73 ¡Rápido, a guardar! (2.0) Otra forma de resolver un antiguo problema.
80 ARDUINO UNO vs. GR SAKURA FULL ¡Encuentra las diferencias!
82 Comenzando un Diseño de un Esquema Eléctrico Segundo artículo de Neil Gruending para iniciase en DesignSpark.
84 Oscilador Wien de Banda Ancha con Potenciómetro Sencillo Evitando el uso del caro y poco usual potenciómetro logarítmico doble.
86 Controlador de Carga Fotovoltaico de 4 A Diseñado de principio a fin para minimizar las pérdidas entre el panel y la batería.
88 Mini-Tester para Servos Comprobador básico para comprobar los servos de un modelo
90 Limitador de Sobre-Corriente X-Treme Un arranque controlado para grandes electrolíticos y Cia.
94 Cargar un Móvil con Pilas de NiMH con el Power Pack de Elektor.
Volumen 34 - nº 397/398
Julio y Agosto 2013
Labs 100 Controlador de Motor DC de Alta Corriente Para todo tipo de motores CC de hasta 40 A.
102 Interfaz Universal de Medida Precisa Simplemente precisión.
104 Convertidor elevador con PWM Capaz de suministrar hasta 42 V y 1 A.
108 Nivel de burbuja acústico Un diseño con ATtiny45 con múltiples usos.
110 Puerto de dos hilos 3.0 Una nueva aproximación a un problema anterior.
119 Regulador de Bomba Para velero, caravana, …
122 Encendido CDI Mejor chispa – mejor par motor para motores de dos tiempos.
124 Estabilizador con arranque lento Tensión de alimentación limpia con un retardo.
Industria
12 ¡Celebración! 5.000 miembros en elektor-labs.com
13 Consejos para Desoldar Componentes SMD Doblar alguno hilos de la forma adecuada.
8 Noticias & Nuevos Productos Una selección de noticias recibidas de la industria electrónica, laboratorios y organizaciones.
74 Fabricación Profesional de PCBs Como se produce tu placa de cuatro capas en el Elektor PCB Service.
Magazine 114 Retrónica Comprobador de Superficies Rugosas PR9150/PR9151 de Philips Editor de la serie: Jan Buiting.
126 Hexadoku
Tech the Future 110 Neurociencia cognitiva y música Observación de la mente gracias a la tecnología.
El rompecabezas mensual de Elektor con un toque electrónico.
125 Próximo mes en Elektor Un vistazo a los artículos previstos para ser publicados en la próxima edición de Elektor.
www.elektor-magazine.es | julio / agosto 2013 | 5
Comunidad
•
Volumen 34, Número 397/398, Julio y Agosto 2013 Depósito Legal: GU.3-1980 31/12/2006 ISSN 0211-397X
Edición generadora de proyectos 2013
Editor: Elektor International Media Spain, s.l. Jerez de los Caballeros, 2 28042 – Madrid, España Teléfono: +34 91 101 9395 Fax: +34 91 101 9396 Internet: www.elektor.es Elektor se publica 10 veces al año con edición doble para Enero/ Febrero y Julio/Agosto. Suscripciones: Elektor International Media Spain, s.l. Apartado de Correos 62011 28042 – Madrid, España Teléfono. +34 91 101 9395 Internet: www.elektor.es/miembros Email:
[email protected] Oficinas Centrales: Elektor International Media b.v. P.O. Box 11 NL-6114-ZG Susteren The Netherlands. Teléfono: +31 (0)46 4389444, Fax: (+31) 46 4370161 Publicidad: Elektor International Media Spain, s.l. Apartado de Correos 62011 28042 – Madrid, España Teléfono. +34 91 101 9395 Fax: +34 91 101 9396 Internet: www.elektor.es Email:
[email protected] Tarifas y condiciones de publicidad disponibles bajo petición. Derechos de autor Los circuitos descritos en esta revista son exclusivamente para uso doméstico. Los derechos de autor de todos los gráficos, fotografías, diseños de circuitos impresos, circuitos integrados programados, discos, CD-ROM’s, portadores de software y los textos de los artículos publicados en nuestros libros y revistas (que no sean anuncios de terceros) están registrados por Elektor International Media BV y no pueden ser reproducidos o difundidos de ninguna forma ni por ningún medio, incluidas fotocopias, escaneos o grabaciones, parcial o totalmente sin la previa autorización escrita del Editor. También será preciso disponer del citado permiso antes de almacenar cualquier parte de esta publicación en sistemas de recuperación de cualquier naturaleza. Los circuitos, dispositivos, componentes, etc., descritos en esta revista pueden estar protegidos bajo patente. El Editor no acepta responsabilidad alguna en ausencia de identificación de la citada patente(s) u otra protección. La presentación de diseños o artículos implica que el Editor está autorizado a modificar los textos y los diseños presentados y a utilizar los contenidos en otras publicaciones y actividades de Elektor International Media. El Editor no garantiza la devolución del material a él enviado. Renuncia Los precios y descripciones de los productos relacionados con la publicación están sujetos a modificación. Excluidos errores y omisiones. Las opiniones expresadas a lo largo de los distintos artículos, así como el contenido de los mismos, son responsabilidad exclusiva de sus autores. Así mismo, el contenido de los mensajes publicitarios es responsabilidad de los anunciantes. Los precios y descripciones de los elementos relacionados con la publicación están sujetos a cambios. Están excluidos los errores u omisiones.
© Elektor International Media b.v. 2013
6 | julio / agosto 2013 | www.elektor-magazine.es
Si eres nuevo en Elektor, el personal de Elektor Labs y yo mismo te saludamos y damos la bienvenida a nuestra revista en un formato inusual – la edición doble de 132 páginas, con su animada mezcla de proyectos grandes y pequeños que te mantendrán ocupado y ‘e’divertido durante los meses de Verano. Para todos aquellos que estáis acostumbrados al diluvio ideas llamado Generador de Proyectos, os saludamos de nuevo y ¡abrochaos el cinturón! En respuesta a vuestras peticiones he mantenido secciones fijas como el Hexadoku, Tech the Future o Retrónica junto con las siguientes entregas de las series de artículos como el Medido r LCR de 500 ppm o los consejos y trucos para D esignSpark. Con el potencial en la edición Generadora de Proyectos 2013 dado como 132 páginas en las hojas de cálculo, los administradores pensaron que podían incluir muchos pequeños proyectos. Revisando las ediciones anteriores de los Circuitos del Verano, el equipo realmente responsable de los contenidos decidió otra cosa. Se decidieron por la calidad y la profundidad en lugar de por la cantidad, sin olvidarse de incluir unos pocos circuitos menos ambiciosos de una o dos páginas, s ólo por el gusto de hacerlo. Todo respetando siempre el límite de las 132 páginas, naturalmente. Nuestro equipo del laboratorio, seguramente de forma intencionada, ha elegido este año un gran número de proyectos relacionados de una u otra forma con motores y baterías. El Limitador de Sobre-Corriente X-Treme y el Controlador de Motor DC de Alta Corriente son sólo dos ejemplos de circuitos diseñados para ser utilizados fuera de lo que es la pura comunidad electrónica, como nuestros amigos de los aviones de radiocontrol y los club de montaje. Eres un héroe local si te vas a uno de sus campos de aviación y les ofrecs ayuda y asesoramiento sobre cómo ‘electronificar’ su modelos. Siempre puedes obtener a cambio poco de ayuda con tu — embrionario — trabajo mecánico. Hablando de amigos, es un placer volver a llegar finalmente a los radioaficionados con nuestro proyecto del Transmisor de 70 cm de Banda Ancha, y los adictos de lo embebido con nuestro ElektorBus y algunos otros circuitos basados en microcontroladores. Saludamos también a los cardiólogos en ciernes — aquí está nuestro Cardioscopio Android Elektor para vosotros. Latidos del corazón para el verano. ¡Disfruta de esta Edición Especial de Verano!
Eduardo Corral, Editor
El Equipo Editor:
Eduardo Corral (
[email protected])
Redacción Internacional:
Harry Baggen, Thijs Beckers, Jan Buiting, Wisse Hettinga, Denis Meyer, Jens Nickel, Clemens Valens
Equipo de diseño:
Thijs Beckers, Ton Giesberts, Luc Lemmens, Raymond Vermeulen, Jan Visser
Diseño gráfico y preimpresión:
Giel Dols, David Márquez, Mart Schroijen
Director online:
Daniëlle Mertens
Director de marca:
Wisse Hettinga
Director general:
Don Akkermans
Spain
Nuestras redes
Eduardo Corral +34 91 101 93 95
[email protected]
USA Hugo Vanhaecke +1 860-875-2199
[email protected]
Germany Ferdinand te Walvaart +31 46 4389417
[email protected]
France Denis Meyer +31 46 4389435
[email protected]
Netherlands Harry Baggen +31 46 4389429
[email protected]
United Kingdom Wisse Hettinga +31 (0)46 4389428
[email protected]
Te conectamos con
Italy Maurizio del Corso +39 2.66504755
[email protected]
Sweden Wisse Hettinga +31 46 4389428
[email protected]
Brazil João Martins +55 11 4195 0363
[email protected]
Portugal João Martins +351 21413-1600
[email protected]
India Sunil D. Malekar +91 9833168815
[email protected]
Empresas Colaboradoras AudioXpress
National Instruments
Russia
www.audioamateur.com . . . . . .99
www.ni.com/es . . . . . . . . . . . . . 3
Nataliya Melnikova +7 (965) 395 33 36
[email protected]
Circuit Cellar
Soclutions
www.circuitcellar.com . . . . . . . .41
www.soclutions.com . . . . . . . . . 9
Turkey Zeynep Köksal +90 532 277 48 26
[email protected]
Eurocircuits www.elektorpcbservice.com . . . .23
South Africa Johan Dijk +27 78 2330 694 / +31 6 109 31 926
[email protected]
China Cees Baay +86 21 6445 2811
[email protected]
¿No eres patrocinador aún? Ponte en contacto con nosotros en
[email protected] (+34 911019395) para reservar tu propio espacio en la próxima edición de nuestra revista
www.elektor-magazine.es | julio / agosto 2013 | 7
Industria
•
Qualcomm integra conectividad 3G/4G LTE multi-modo en procesadores Snapdragon 400 de Qualcomm con unidades CPU de cuatro núcleos para smartphones de gran volumen en regiones emergentes
Qualcomm Incorporated ha anunciado que su filial Qualcomm Technologies, Inc., amplía la oferta de sus procesadores Qualcomm Snapdragon™ 400, con la introducción de su procesador más reciente, que presenta unidades CPU de cuatro núcleos con conectividad 3G/4G LTE multi-modo integrada. Esto hace que la gama Snapdragon 400 sea la primera en ofrecer conectividad 4G LTE y 3G multi-modo tanto con dos como con cuatro núcleos para smartphones de gran volumen. Además de la conectividad 3G y 4G LTE, el procesador incorpora funciones clave de módem, importantes para China y otras regiones emergentes, incluidas
capacidades TD-SCDMA, HSPA+ (hasta 42Mbps) y SIM múltiple. El nuevo procesador Snapdragon 400 (8926), junto con su equivalente para diseños de referencia de Qualcomm, estará disponible en el mercado a fines de 2013 y ofrecerá un equilibrio óptimo de funciones multimedia, tecnologías de módem y rendimiento para smartphones de gran volumen. «Al ofrecer una variante con conectividad 3G y 4G LTE multi-modo en la gama de procesadores Snapdragon 400 de Qualcomm con unidades CPU de cuatro núcleos, aseguramos que las regiones emergentes estén preparadas para la inminente transición a 3G/4G LTE, además de estar preparadas para cualquier tecnología importante de 2G y 3G”, dice Cristiano Amon, vicepresidente ejecutivo y copresidente de productos móviles e informáticos de Qualcomm Technologies. “Los procesadores Snapdragon 400 ofrecen a los usuarios una amplia gama de smartphones novedosos para los segmentos de gran volumen y gama media”.
El procesador Snapdragon 400 más reciente seguirá soportando capacidades de SIM múltiple, de Dual SIM, Dual Standby y Dual SIM, Dual Active y está optimizado para ofrecer una excelente experiencia en videojuegos, rica en elementos gráficos. También ofrece compatibilidad con Miracast™ para la transmisión inalámbrica de contenidos multimedia. La plataforma también es compatible con una extensa serie de funcionalidades de conectividad inalámbrica, que incluye Qualcomm VIVE™ 802.11ac Wi-Fi, Bluetooth, FM y NFC integradas. También ofrece un conjunto de características diferenciadas que incluyen compatibilidad con el software más reciente de Android y Windows Phone 8. También incluye la característica QuickCharge 1.0, que carga dispositivos hasta un 40 por ciento más rápidamente que los métodos de carga convencionales. www.qualcomm.com
Agilent Technologies presenta un medidor LCR referencia en el sector con tres opciones asequibles Agilent Technologies Inc. (NYSE: A) ha presentado hoy el medidor LCR de precisión E4980AL con tres opciones de frecuencia asequibles: 300 kHz, 500 kHz y 1 MHz. Las nuevas opciones de este medidor constituyen una continuación del medidor LCR E4980A de Agilent, referencia en el sector, que durante mucho tiempo ha ofrecido la mejor relación calidad-precio y la más amplia variedad de aplicaciones entre los medidores LCR básicos. El medidor LCR de Agilent lo utilizan principalmente los fabricantes de componentes para la caracterización de com-
ponentes y los fabricantes de equipos electrónicos para la evaluación de componentes. También se utiliza en aplicaciones de medida de materiales propias de los campos de la I+D y la educación. “Sabemos que nuestros clientes desean acceder a soluciones de medidores LCR más
8 | julio / agosto 2013 | www.elektor-magazine.es
económicas, por lo que hemos diseñado nuestros nuevos medidores pensando en satisfacer sus requisitos presupuestarios y, al mismo tiempo, en proponerles la mejor combinación de precisión, velocidad y versatilidad”, explicó Akira Nukiyama, director general de la División de pruebas de componentes de Agilent en Kobe (Japón). “Además, es muy sencillo para los clientes incorporarle mejoras para ampliar su frecuencia a medida que cambian sus necesidades, por lo que contribuye a proteger la inversión de cara al futuro”. www.agilent.com
Noticias
Microchip presenta los primeros concentradores de controladores USB2 programables del mercado y añade soporte simultáneo para USB2 y HSIC con modos de bajo consumo Microchip anuncia la ampliación del catálogo de concentradores controladores USB2 (UCH2) que obtuvo tras su reciente adquisición de SMSC. Los siete nuevos CI UCH2, pertenecientes a tres familias, son los primeros del mundo en ofrecer programabilidad, permitiendo así que los desarrolladores de PC y dispositivos móviles configurar sus diseños sin memoria externa. Además, se trata de los primeros UCH2 de Microchip aptos para conectividad con USB2 y USB High Speed Interchip (HSIC) con una máxima duración de la batería mediante modos de bajo consumo como Link Power Management (LPM), así como la capacidad de sustituir los cargadores de pared con modos avanzados de carga de la batería, como carga BC1.2, Apple®, SE1 y China. Para aplicaciones que necesiten comunicarse mediante diferentes protocolos, estos UCH2 incorporan puenteado directo de E/S para I2C™, SPI, UART y E/S de aplicación general. También se caracterizan por su flexibilidad para adaptarse al funcionamiento de varios sistemas operativos, como mensajería propia de un determinado suministrador y FlexConnect para inversiones de un solo puerto. Si bien el mercado de PC está adoptando USB3, las previsiones de mercado prevén en su mayoría que USB2 siga siendo predominante en dispositivos móviles hasta como 2015 como mínimo. Este uso continuo de USB3 y USB2 hace que resulte más complicado que los diseñadores de PC y dispositivos móviles garanticen la interoperatividad, proporcionen nuevas funciones y una máxima duración de la batería. Los siete nuevos UCH2 de Microchip, repartidos en tres familias, cubren estas necesidades tanto para fabricantes de PC como de móviles. A diferencia de los concentradores (hubs) controladores USB2 de los competidores, que tan solo ofrecen una carga limitada de la batería y necesitan memoria externa para su configuración, los nuevos UCH2 de Microchip integran una configuración “Quad Page” de memoria Flash OTP, que reserva espacio para la interoperatividad y otros ajustes a medida deldiseñador, incluyendo cuatro opciones de configuración. Además, Microchip facilita la generación de ajustes de configuración y programación de memoria OTP a través de su nueva herramienta de software ProTouch Configuration Editor, que también se ha anunciado hoy. La herramienta de software ProTouch Configuration Editor está unida al software de programación ProLink y se encuentra disponible para su descarga gratuita en http://www.microchip.com/get/2M4E . También se anuncia hoy la tarjeta de evaluación USB2534 (EVB-USB2534), que ya se encuentra disponible con un precio de 399 dólares. Esta tarjeta es válida para el desarrollo de diseños de carga USB que utilicen la nueva familia USB253X de UCH2 formada por tres mode-
los para las aplicaciones más habituales de USB2. Las familias USB2532-1080AEN, USB2533-1080AEN y USB2534-1080AEN de UCH2 certificadas para USB-IF, dirigidas a las aplicaciones más habituales de USB, ya se encuentran disponibles para su muestreo y para producción en volumen y se suministran en encapsulados QFN de 36 patillas. Para aplicaciones USB de conectividad HSIC y puenteado de E/S, las familias USB4624-1080HN y USB46041080HN de UCH2 ya se encuentran disponibles para muestreo y producción en volumen en encapsulados QFN de 48 patillas, mientras que para aplicaciones USB móviles las familias de UCH2 USB3813-1080XY y USB3613-1080XY, en encapsulados WLCSP de 30 patillas ya se encuentran disponibles para muestreo y su producción en volumen está prevista para el mes de julio. www.microchip.com Publicidad
www.elektor-magazine.es
| julio / agosto 2013 | 9
Industria
•
Nuevo software que simplifica el registro de datos del hardware NI CompactDAQ para aplicaciones de monitorización y pruebas estructurales National Instruments ha presentado Chameleon para NI CompactDAQ, un paquete de software desarrollado por PVI Systems, NI Gold Alliance Partner, y disponible en LabVIEW Tools Network para crear sistemas llave en mano de hardware de adquisición de datos de NI que son simples e intuitivos de configurar y hacer que funcionen. Estos sistemas escalables pueden abarcar un gran número de canales y aún así, ser manejados dentro de un entorno basado en configuración, sin programación. La combinación de Chameleon y la plataforma NI CompactDAQ resulta ideal para diversas aplicaciones estructurales de test y control, incluyendo medidas de presión y tensión para pruebas de motores de avión, adquisición de deformaciones en el ensayo de impacto de vehículos con estructuras y medidas de vibraciones de estructuras marítimas y aeronaves. Chameleon tiene un sólido historial de éxitos en cuentas militares,
como Northrop Grumman Corporation y Raytheon BBN Technologies . “Al usar el software llave en mano Chameleon, basado en LabVIEW y DAQ, se pueden medir más de 32 canales de datos de presión de nuestros sensores, y con capacidad de expansión, al mismo tiempo que se mantienen sincronizados los datos a lo largo del tiempo mediante eventos transitorios”, dijo Jeff Mazurek, director de la ingeniería de ventas de Raytheon BBN . Características del
Personalización e integración con LabVIEW para una mayor flexibilidad.
Chameleon
Soporte para sensores de tensión, IEPE, temperatura, puente y corriente. Visualización de datos con múltiples trazas y gráficos, utilizando datos pre-grabados o en vivo. Datos almacenados localmente en formato TDMS para una fácil integración con LabView o NI DIAdem. Canales calculados con alarmas en canales virtuales o reales. Actualización al vuelo de las ecuaciones de canales virtuales y de la velocidad de registro de datos.
Recursos adicionales Chameleon para NI CompactDAQ: http://
sine.ni.com/nips/cds/view/p/lang/en/ nid/210876 Chasis autónomo de NI CompactDAQ : http://sine.ni.com/nips/cds/view/p/lang/ en/nid/210805 Plataforma NI CompactDAQ: http://www. ni.com/data-acquisition/compactdaq/esa/ Software LabVIEW : http://www.ni.com/ labview/esa/
LDOs de Microchip con entrada hasta 16V y 70dB PSRR
Sagitrón, distribuidor para España y Portugal de Microchip, anuncia las familias de reguladores de tensión LDO CMOS de altas prestaciones, alta tensión de entrada y alta corriente de salida, la familia MCP1755 y MCP1755S. Estos LDO aceptan un amplio rango de tensiones de entrada de 3,6-16V y sumi-
nistran una corriente de salida de 300 mA con tensiones de salida de 1,8-5,5V para un consumo de tan solo 68 �A de corriente en reposo (típica). Además, los LDO MCP1755/1755S cuentan con una patilla de apagado que les permite consumir menos de 0,1 �A (típica) en modo de apagado, prolongando así la duración de la batería. Para ahorrar espacio, los LDO se suministran en encapsulados SOT y DFN de 2x3 mm. Estas funciones proporcionan a los diseñadores un alto grado de flexibilidad para una enorme variedad de aplicaciones, como medicina, dispositivos móviles y controladores de iluminación LED. Muchos de los diseños electrónicos necesitan trabajar en la actualidad en entornos que contienen elevados niveles de ruido eléctrico y magnético. El ruido se
10 | julio / agosto 2013 | www.elektor-magazine.es
genera cuando los transitorios en conmutación y las señales de RF se acoplan en las líneas de alimentación. Los LDO MCP1755 y MCP1755S presentan un elevado factor de rechazo a la fuente de alimentación (Power Supply Rejection Ratio, PSRR) de 70 dB a 1 kHz, que filtra al ruido de entrada y suministra unas tensiones de salida notablemente más limpias, por lo que resultan especialmente indicados para aplicaciones sensibles al ruido. El MCP1755S se suministra: en encapsulados SOT223 de 3 patillas y DFN de 8 patillas y 2x3 mm, mientras que el MCP1755 se suministra en encapsulados SOT223 y SOT23 de 5 patillas, así como en el DFN de 8 patillas y 2x3 mm. www.sagitron.es
Noticias
Nuevo dispositivo lector RFID UHF AS3993 de AMS Sagitrón, distribuidor de AMS para España y Portugal, anuncia el nuevo dispositivo de la familia AS399x, el AS3993, que sucede a los AS3990/91/92, y que es el primero de la nueva generación de dispositivos lectores RFID UHF EPC clase1 Gen2. El AS3993 tiene una arquitectura de bajo consumo completamente nueva, hasta 2.7V a 65mA, posibilitado así alimentarlo por batería e implementar el lector en un pequeño formato, un QFN-48 de 7x7mm, y manteniendo la flexibilidad, integración y simplicidad de los dispositivos anteriores de la familia AS399x. Esto hace que este dispositivo sea ideal para aplicaciones embedidas o portátiles/móviles. Gracias a la pequeña cantidad de código que requiere se puede implementar un lector RFID junto a un simple MCU de 8bits, y el bajo nivel de procesado requerido permite al MCU encargarse del resto
de componentes del sistema. El AS3993 tiene una sensibilidad mejorada de -90dBm, y mantiene la robustez contra reflexiones en antena o “auto-jammer”, lo cual son prestaciones críticas para aplicaciones portátiles/móviles en las que el diseño de la antena está limitado por el espacio y el coste. Además, incluye también filtros programables para el modo “dense reader”, que previene conflictos en entornos con varios lectores. El amplificador interno está optimizado y permite hasta 20dBm en todas las condiciones. El VCO integrado genera sólo -124dB/ Hz de ruido. Cumpliendo con el protocolo EPC clase1 Gen2 (ISO 18000-6C), con el ISO 29143 y con ISO 18000-6A/B (Modo directo), la configuración del dispositivo se consigue
seleccionando la configuración del protocolo deseado en los registros de control. El acceso directo a todos los registros de control vía SPI permite una sintonización fina de varios parámetros del lector, lo cual hace que la familia AS399x se mantenga como la de dispositivos lectores RFID UHF más flexible del mercado. www.sagitron.es
RS Components incluye en su gama el nuevo kit de desarrollo de conversión de energía de STMicroelectronics El kit de desarrollo M24LR es fácil de usar, tiene un bajo coste y ofrece a los ingenieros de diseño electrónico capacidades rápidas de evaluación
(identificación de radiofrecuencia) compatibles con ISO/IEC15693. Esta plataforma permite acelerar la creación e integración de funcionalidades de
RS Components (RS) y Allied Electronics (Allied), marcas comerciales de Electrocomponents plc (LSE:ECM), el mayor distribuidor de productos y servicios de electrónica y mantenimiento a nivel mundial, anunció la disponibilidad del Kit de desarrollo M24LR de STMicroelectronics, líder en el mercado de semiconductores que ofrece a los clientes soluciones para todo tipo de aplicaciones electrónicas. El kit M24LR es una plataforma de desarrollo de fácil acceso para las memorias sin contacto, con capacidades únicas de conversión de energía. Contiene todo lo que los ingenieros necesitan para empezar a diseñar aplicaciones electrónicas sin baterías. Permite intercambiar datos con smartphones con capacidad NFC o dispositivos de lectura/escritura RFID
recolección de datos, tracking o diagnóstico en una amplia gama de aplicaciones energéticamente autónomas, como teléfonos y tablets, periféricos, etiquetas electrónicas, electrodomésticos, automatización industrial o sistemas de detección y vigilancia. Gracias a su bus serie estándar (I2C) y sus interfaces sin contacto RF, el kit M24LR con memoria EEPROM de interfaz
dual tiene la capacidad de comunicarse con el sistema host “ over-the-wire” o “over-the-air ”. Además, su interfaz RF convierte las ondas de radio emitidas por los dispositivos de lectura/escritura RFID y teléfonos o tablets NFC en energía para alimentar sus circuitos y permitir un funcionamiento sin necesidad de baterías. El Kit de desarrollo M24LR consta de dos placas: una placa RF con un transceptor (CR95HF) multi-protocolo RFID / NFC de 13,56 MHz con puertos serie SPI y UART, gestionada por un microcontrolador STM32 de 32 bits, que alimenta una segunda placa y se comunica con ella vía wireless. Esta placa no tiene batería e incluye una memoria EEPROM de interfaz dual (M24LR), un microcontrolador de 8 bits con un reducido consumo de energía (STM8L) y un sensor de temperatura (STTS75). El Kit de desarrollo M24LR está disponible en RS Components para entrega en un plazo de 24/48 horas. www.rs-online.es
www.elektor-magazine.es
| julio / agosto 2013 | 11
Labs
•
¡Celebración! Clemens Valens (Elektor.Labs)
Este mes estamos de fiesta porque Elektor.LABS ha superado la marca de 5.000 usuarios registrados. ¡Gracias a todos! También estamos contentos de poder comenzar a premiar a los colaboradores de .LABS más sobresalientes haciéndoles miembros ‘Gold’ como premio. Otra excelente razón para unirte a nosotros…*
Retorno D del Formant D
La mayoría de los que nos envía un proyecto a .LABS se limita a unas pocas líneas de texto y, tal vez, a una fotografía o un esquema eléc trico. ¡Algo que no ha sucedido con nuestro colaborador griego “AChorevas”! Aún sin ser un miembro de Elektor, este OP se puso en contacto con nosotros para enviarnos su proyecto d-Formant a Elektor.LABS, una versión digital del legendario Formant de Elektor, un sintetizador de música analógico y modular de finales de años setenta. Después de leer el resumen de proyecto que amablemente nos envió, nos pusimos más que contentos de poder concederle libre acceso a la web .labs. Ni en nuestros sueños más remotos esperábamos recibir un total de quince mensajes que contenían descripciones detalladas, muestras de sonido, esquemas eléctricos y archivos con el código fuente. El d-Formant del OP es todo un sintetizador de sonido digital. En el instrumento, todas las señales analógicas del Formant original han sido sustituidas por tramas digitales de 16 bits, mientras que los microcontroladores PIC24 han tomado el lugar de los transistores y los amplificadores operacionales. El diseño es totalmente modular y ofrece las capacidades de añadidas a las del Formant original, permitiendo al usuario re-encaminar los sonidos ‘al vuelo’. Todos los mandos originales se pueden implementar, aunque el prototipo tiene un interfaz de usuario mucho más simple y más barato: una pantalla LCD, algunos botones y un codificador rotativo (que ya es bastante para que me guste a mí). Para tocar el sintetizador podemos usar un teclado MIDI estándar o cualquier otro dispositivo MIDI capaz de enviar comandos de ‘nota on’ y ‘nota off’. Así que, definitivamente, vamos a escribir sobre este excelente proyecto en la revista impresa. Mientras tanto, hemos premiado a Chorevas haciéndole miembro Gold de Ele ktor. ¡Felicidades! www.elektor-labs.com/node/312 (130098-I) * Cita de The Evil Dead (1981).
www.elektor-labs.com OP son las siglas de Original Poster (Posteador Original) en inglés, es decir, la persona que ha iniciado un proyecto ‘en línea’ o una discusión. Los OPs que quieran tener la oportunidad de aparecer en la edición impresa de Elektor deben che quear (regularmente) la dirección de correo electrón ico que usan para acceder a Elektor.Labs. Este es nuestro único medio de contacto.
12 | julio / agosto 2013 | www.elektor-magazine.es
consejos para desoldar
Consejos para Desoldar Componentes SMD Si un problema técnico parece desalentador y complejo, esto no siempre equivale a una solución cara y/o de alta tecnología. Luc Lemmens, miembro de los Laboratorios de Elektor, nos dio un valioso consejo sobre un método para desoldar circuitos intergrados de montaje superficial que había encontrado en Internet. Todo lo que necesitamos son unos alicates de precisión, un trozo corto de hilo rígido de cobre (como el del cable de una instalación eléctrica), un soldador decente, un poco de estaño y unas pinzas. Cuando desoldamos integrados con terminales en dos lados opuestos de su cuerpo, se sugiere que comencemos doblando el hilo de cobre como se muestra en la primera foto. Nos aseguraremos de que el hilo de cobre que se pone en contacto con los terminales está lo más recto posible, verificando que toca tantos terminales del integrado como sea posible. Ahora aplicamos un poco de estaño al hilo de cobre en el lugar donde se realiza la transferencia de calor (segunda foto). Esto mejora de forma significativa la transferencia de calor hacia los terminales del integrado y hacia los ‘pads’. Presionamos el hilo sobre los terminales del circuito integrado, como se muestra en la tercera foto, y lo calentamos con un soldador decente, asegurándonos todo el tiempo de que los terminales de ambos lados del integrado están en totalmente contacto con el hilo de cobre. Cuando la soldadura se ha derretido, retiramos rápidamente el circuito integrado de la placa usando las pinzas. Con un pequeño plegado personalizado del hilo de cobre, podemos llegar a desoldar circuitos inte-
grados que tengan terminales hasta en los cuatro lados de su encapsulado utilizando el método mencionado. Daremos al hilo de cobre una forma similar a la que se muestra en la cuarta imagen. Tendremos cuidado de no dañar el integrado ni la placa de circuito impreso con un calentamiento excesivo, manteniendo limitado el tiempo que aplicamos calor a la zona al momento en que el estaño se funde y podemos retirar fácilmente y de forma segura el circuito integrado. Un integrado que está siendo sometido a un sobrecalentamiento, significa que o bien está siendo soldado en un proceso que está durando demasiado tiempo, o bien que se está haciendo a una temperatura excesiva, algo que se puede convertir en un DBR (daño después de la reparación). Como la placa de circuito impreso es valiosa, debemos saber que si se aplica demasiado calor a la misma se puede producir que los ‘pads’ de cobre lleguen a separarse de su superficie. Una vez que le cogemos el tranquillo y realizamos este pequeño truco correctamente, controlando el estaño, el soldador y el hilo de cobre, no dañaremos nunca mas más un integrado ni una placa.
By Thijs Beckers, Editor Asociado
(130099)
Encontrado en http://youtu.be/ dCUSwADP6DE.
www.elektor-magazine.es | julio / agosto 2013 | 13
Proyectos
•
elektorcardi♥scopio Android 1ª parte
sin hilos, sin botones: Bluetooth y pantalla táctil Todo está en el título de este artículo que describe un electrocardioscopio construido por nosotros mismos y que utiliza una tableta o un teléfono Android como terminal sin hilos para la visualización de los electrocardiogramas. La realización consiste en combinar hábilmente un pequeño interfaz hecho con un PIC para controlar una
Marcel Cremmel (en cooperación con Raymond Vermeulen)
14 | julio / agosto 2013 | www.elektor-magazine.es
etapa de entrada analógica y mucha programación.
Proyectos
Características: •
•
•
• • •
•
•
•
Interfaz para teléfonos o tabletas táctiles Android equipadas con Bluetooth. Presentación deslizante simultánea o individual de tres derivaciones estándar (DI, DII y DIII) y de tres derivaciones aumentadas (aVR, aVL y aVF). Adaptación automática a la resolución de la pantalla. Medida y adaptación del ritmo cardiaco. Indicación sonora del latido cardiaco. Velocidad de deslizamiento: 250/125/62,5 y 31,25 píxeles por segundo. Ganancia en la visualización: x1 x1,2 x1,5 x2, x3 y x10. Sensibilidad a fondo de escala: 3,2 mV. Conversión de 10 bits. Frecuencia de muestreo: 2000 Hz.
En 2006, cunado Elektor publicó un electrocardioscopio basado en la consola de juegos GameBoy , el pequeño robot Android aún no existía o como máximo estaba en su estado fetal. Siete años después, las aplicaciones a las que dicho robot da vida se cuentan en millo-
• • •
• • •
•
•
•
• • •
Rechazo del modo común: > 100 dB. Tensión de contacto máxima: +/− 150 mV. Constante de tiempo de alineamiento auto-adaptativo. Banda de paso: 0,005 Hz a 170 Hz. Memoria de curva dinámica: 10 minutos. Registro de los ECG en la memoria flash (10 min). Inyección periódica de una señal de calibración 1 mV/2 Hz. Alimentación por 2 pilas de 1,5 V o baterías de 1,2 V. Visualización permanente de la tensión de la pila. Consumo medio: 50 mA (en vigilancia: < 4 �A). Autonomía: 15 horas (Pilas “High Energy” 1 Ah) Bajo coste.
nes de millones. En el momento de publicar este artículo, más de 900 millones de equipos Android están en circulación. Cada día se abren nuevos horizontes para el pequeño hombrecito verde. Elektor se congratula de contribuir a esta saga, que no ha hecho más que comenzar, con una
www.elektor-magazine.es | julio / agosto 2013 | 15
Proyectos
•
cribiremos las funciones lógicas del programa. Para ello, encontraréis en el código fuente los identificadores utilizados en los esquemas. Los proyectos MPLAB y Android completos están disponibles en la página web de Elektor.
R
ECG
T P
Q
Figura 1. Correspondencia de la actividad eléctrica extraída y de las fases de un ciclo cardiaco.
Imaginología médica y electrónica
S
Sístole auricular
Diástole (reposo)
Sístole ventricular
120107 - 12
aplicación instructiva, apasionante y potencialmente útil para todo el mundo: ¡realizar nuestros propios electrocardiogramas sobre nuestra tableta o nuestro teléfono móvil táctil! Este accesorio de explotación fisiológica se compone de una sola placa (muy pequeña) de 5,5 x 10 mm, que reúne las secciones analógica y digital del circuito. Nuestro interfaz de ECG es ta disponible bajo la fórmula de un módulo listo para su uso, que sólo tenemos que completar con cuatro electrodos y una aplicación Android para teléfono o tableta. Entre este terminal y el interfaz no hay una comunicación con hilos, sino ¡una comunicación Bluetooth ! Cómo debe ser sobre cualquier aparato moderno, el módulo sólo contiene unos pocos puntos de ajuste (3 potenciómetros en total para todo) y unos órganos de control (3 pulsadores). Lo que equivale a decir que es el programa el que realiza todo el trabajo. En al menos dos artículos describiremos: 1. La electrónica: nuestro dominio predilecto. 2. El programa ejecutado por el microcontrola-
dor PIC24 y escrito en C bajo MPLAB (IDE y compilador gratuitos de la Microchip). 3. La aplicación Android escrita en Java con el SDK de Google. 4. La realización del interfaz a alojar en una pequeña caja de las dimensiones de un teléfono táctil. La parte informática es bastante pesada, por lo que no detallaremos el código fuente aunque, con el fin de animar a los lectores a que se apropien de él, lo personalicen e incluso lo mejoren, des-
16 | julio / agosto 2013 | www.elektor-magazine.es
El electrocardioscopio de Elektor pone en funcionamiento el procedimiento inventado por Willem Einthoven (ver Elektor oct. 2006 [1]) que consiste en explotar la función cardíaca por medio de la imagen de los fenómenos eléctricos producidos a lo largo del ritmo cardíaco. El corazón es un músculo autónomo y es el único que no está controlado por el cerebro. El nódulo sinoauricular, situado en la aurícula derecha, activa los flujos nerviosos que comandan los músculos del corazón. Estos músculos se contraen (despolarización) y se relaja (polarización) para bombear la sangre. La contracción está causada por un cambio de la polaridad eléctrica de las membranas celulares. Durante las fases de relajación, las cargas eléctricas encuentran su equilibrio antes de una nueva excitación. Los potenciales resultantes son transmitidos hasta la superficie de la piel, donde pueden ser detectados por electrodos cutáneos. La colocación adecuada de los electrodos permite a un cardiólogo deducir el comportamiento mecánico del corazón (¡y sus fallos!) analizando su actividad eléctrica [2]. La Figura 1 nos muestra una relación de la actividad eléctrica detectada y de las fases de un ciclo cardiaco: • Onda P: contracción de las aurículas: la sangre proveniente de las venas es impulsada hacia los ventrículos. • Complejo QRS: contracción de los ventrículos: la sangre de los ventrículos es impulsada hacia las arterias. Estas dos ondas provocan el pon-pon sonoro del corazón. • Onda T: repolarización de los ventrículos: el músculo de los ventrículos vuelve a su estado de reposo. La posición de los cuatro electrodos, uno sobre cada muñeca y tobillo, queda ilustrada en la Figura 2, que describe también las derivaciones mostradas por el instrumento. Las derivaciones de los miembros son colocadas en la cara interna de las muñecas y los tobillos. Ellas exploran el campo cardiaco en un plano frontal ( Fig. 2a y 2b). Estas tres derivaciones forman el triángulo equilátero de Einthoven, donde el montaje de las probabili-
Proyectos
dades es tal que D3=D2−D1. La traslación de los ejes DI, DII y DIII al centro del triángulo permite construir un sistema de coordenadas (llamado el doble trieje de Bailey), útil para el cálculo del eje del vector de activación en el plano frontal ( Fig. 2c). Las seis derivaciones representan la actividad cardiaca según estos seis ejes. Su análisis permite establecer el diagnóstico. Los tres electrodos activos, LA ( Left Arm, brazo izquierdo), RA ( Right Arm, brazo derecho) y LL (Left Leg, pierna izquierda) extraen las derivaciones DI y DII; la cuarta, RL ( Right Leg, pierna derecha), sirve para fijar la tensión de reposo de las otras tres. La electrónica del interfaz amplifica las fuerzas electromotrices extraídas por las derivaciones I y II para producir las señales DI y DII necesarias para la elaboración de los electrocardiogramas. Estas tensiones son convertidas y amplificadas digitalmente, antes de ser transmitidas por Bluetooth al terminal Android. La aplicación calcula las derivaciones que faltan (DIII, aVR, aVL y aVF), a partir de DI y DII (fórmulas en la Fig. 2b) y las presenta. Las capturas de pantalla que se muestran este artículo no dejan lugar a dudas: las señales son excelentes y el ruido bajo, así como la señal residual de 50 Hz.
DI
LA RA
LA
DII
DI
DIII
RA
DIII
DII
LL
RL
LL
DI
DII
DIII
120107 - 13a
Figura 2a. Derivaciones bipolares estándard.
RA
LA
RA
LA
R
RL
LL
RL
aVL
aVL
aVR
LL
R
R R
aVR
aVL aVF R
aVF R
La electrónica analógica
RA
LA
La parte analógica de nuestro ECG es la encargada de amplificar las dos tensiones muy débiles extraídas entre los electrodos activos LA y RA, por una parte, y LL y RA, por otra. Se trata de las derivaciones DI y DII ( Fig. 2). Para obtener un margen dinámico suficiente después de la conversión A/D de 10 bits, necesitamos una amplificación de 1000 (es decir, 60 dB). Dicha amplificación está asociada a las otras dos funciones indispensables: la compensación de las tensiones continuas de contacto de los electrodos (que puede sobrepasar los 100 mV, es decir, 100 veces la amplitud de las señales útiles) y el rechazo de la frecuencia de la tensión de red (50 Hz). Volveremos sobre ello. El cuerpo humano y los hilos de unión con los electrodos se ven influenciados considerablemente por las grandes tensiones o diferencias de potencial con respecto a masa, que reinan en el cableado eléctrico del local. La capacidad mutua, aunque es muy baja, provoca la aparición sobre la piel de una tensión con respecto a masa relativamente elevada (a menudo superior a 1 V), a pesar de su frecuencia de 50 Hz.
RL
LL
aVR = DII
+
aVL = DI
-
aVF = DIII +
DIII 2
DII 2
DI 2
120107 - 13b
aVF
Figura 2b. Derivaciones unipolares estándard o derivaciones aumentadas.
-90° aVR
aVL
aVR
aVL
-150°
-30° 0°
DI
DIII
aVF
DII
DI
+120°
DIII
+90°
aVF
+60°
DII 120107 - 13c
Figura 2c. Sistema de coordenada útil para el cálculo de las derivaciones.
A priori, parece difícil aislar la señal útil, ya que ¡su amplitud es 1000 veces más baja que la de la señal parásita! Además, la frecuencia 50 Hz está incluida en el espectro útil, con lo que no conviene hacer un filtrado.
www.elektor-magazine.es | julio / agosto 2013 | 17
Proyectos
•
F1: R18, 19, 20, 23, D1, D2 F2: IC9 F3.1: IC4A - IC4B, R53, 54, 55 F3.2: IC3A - IC3B, R57, 58, 56, P3 F4.1: IC5A, R49, 40, 47, 50, P1 F4.2: IC6A, R51, 39, 48, 52, P2
barrido (slew rate) son modestos, pero ampliamente suficientes para una señal ECG. El mayor inconveniente (pero aceptable) de esta elección es la resistencia ajustable para optimizar el TRMC, en el que no es posible regatear su precio.
F5.1: IC10, R35, 36 C23, R25, 26, 27, 28, IC5B, C25 F5.2 : IC11, R37, 38 C24, R29, 30, 31, 32, IC6B, C26 F6.1: IC8A, R46, 44, 45, 33 C30, C29, C21 F6.2: IC8B, R41, 42, 43, 34 C28, C27, C22 F7: R62, 59, 60, 61 F8: IC7A, C17, R24 CAL
P2HZ
F1
F2
LL
RL
BI
F3.1
RA
LA
AI
autozéro
F5.1
x 21
o n s ó a i c c a n z e i l i n r b ó i i f c s c e e t d o r e d p
x1
x49
SI
F6.1
F4.1 F3.2
F4.2
x 21
4
autozéro
F7
F5.2
F8 K
F6.2 SII
x1
DI
x49
DII
AII BII
120107 - 14
Figura 3. Esquema funcional de la parte analógica.
Teniendo en cuenta la longitud de onda de los 50 Hz (¡6.000 km!), Se admite que, debido a la conductividad de la piel, cada uno de los puntos de la epidermis está al mismo potencial que los otros. Se trata pues, desde el lado de los electrodos, de una tensión en modo común . En ese caso, la solución se hace evidente: un amplificador diferencial de instrumentación
cuya tasa de rechazo del modo común (TRMC) sea suficiente: TRMC ≥
S p S ECG
+
dB
S N
dB
donde SP es la amplitud de la señal parásita: 1 V, SECG la amplitud ECG: 1 mV, S/N la relación señal ruido: 40 dB necesarios, donde: TRMC ≥ 60+40 = 100 dB Además, el amplificador debe estar caracterizado por una fuerte impedancia de entrada (> 10 M�) y una débil tensión de desfase. Es grande la tentación de recurrir a un circuito integrado especializado para esta tarea (por ejemplo, el ADS1294 de TI). También es posible, sino una repercusión en la calidad, el hacer el amplificador diferencial a partir de amplificadores operacionales clásicos como el TLC2252, un modelo ‘rail-to-rail’ (para ganancia dinámica), de bajo consumo y bajo ruido. Su frecuencia de corte y su velocidad de
18 | julio / agosto 2013 | www.elektor-magazine.es
Funciones de la parte analógica
Antes de abordar el esquema eléctrico detallado del interfaz ECG vamos a examinar la estructura (ver Figura 3 ) y las funciones. Los cuatro electrodos están conectados sobre las entradas RA (brazo derecho), LA (brazo izquierdo), LL (pie izquierdo) y RL (pie derecho). Como el electrocardioscopio se utiliza a veces conjuntamente con un desfibrilador, debe estar protegido, pues, contra las fuertes tensiones producidas por este tipo de instrumentos: esa es la tarea de la función F1. En condiciones normales, las tensiones de salida de esta función son iguales a las de la entrada. La protección actúa solamente si las tensiones recogidas sobrepasan el nivel de las alimentaciones, es decir, ± 3,3 V. La función de multiplexado F2 permite sustituir las señales RA, LA y LL por una señal de calibración P2HZ, de 1 mV de amplitud y una frecuencia de 2 Hz. Cuando se le pide, el multiplexador está activo una vez por minuto durante 10 s, para observar la señal de calibración en la pantalla. Para establecer el diagnóstico, la señal de calibración da una referencia de amplitud para los ELG recogidos. El amplificador de instrumentación está constituido de las funciones F3 y F4. La función F6 es un filtro paso bajo de 2º orden, de 170 Hz de frecuencia característica y de un factor de amortiguación m = 0,71 ( Butterworth). Este filtro permite atenuar todas las componentes fuera del espectro de frecuencias útiles y hace de filtro antisolapamiento (o ‘antialiasing’) para el CAD (Conversor Analógico/Digital) que sigue. La amplificación se obtiene de la siguiente manera: AD3 = 21, AD4 = 1 y A6 = 49. El índice de las amplificaciones corresponde con el índice de las funciones: AD3 es la amplificación diferencial de F3 (F3.1 o F3.2), etc. Conforme a los objetivos, la amplificación total es de 1029. La ganancia de estas dos primeras etapas es relativamente baja para aumentar la eficacia de la función ‘auto-cero’. Las otras funciones (F5, F7 y F8) ayudan al amplificador de instrumentación para asegurar su buen funcionamiento. En efecto, los amplificadores operacionales están alimentados entre
Proyectos
−3,3V y +3,3V. La tensión de reposo ideal sobre cada una de sus tres bornes es de 0 V. El electrodo RL fija la tensión media (punto de reposo) de los electrodos activos a la media de las funciones F7 y F8. Se muestra que la tensión de salida de F7 es igual a la media de las tensiones RA, LA y LL. Esta tensión es comparada por F8 con la tensión de referencia de 0 V y, la tensión de error amplificada, produce la tensión del electrodo RL. Como no circula ninguna corriente en los electrodos, las tensiones RA, LA y LL son iguales a las de RL (de unos pocos mV). Conseguimos así realizar una verdadera “realimentación” a través de la piel: la media de las tensiones de los electrodos activos se mantiene igual a la referencia de 0 V. Es el objetivo bus-
cado: la tensión de reposo de los amplificadores de entrada es la adecuada, sin degradar su impedancia de entrada natural. Por otro lado, aparece un fenómeno natural, bastante molesto, cuando se colocan los electrodos: se crea una FEM de contacto entre la piel y el metal de los electrodos. Esta ‘micro-pila’ es baja (de unas decenas de mV), pero no es eliminada por el amplificador de instrumentación. Al contrario, ¡es amplificada! Las funciones F7 y F8 reducen en parte este fenómeno, pero los desfases entre las salidas ‘+’ y ‘−’ de F3.1 y F3.2 pueden alcanzar varios voltios. Éstos desfases son compensados por las funciones F5.1 y F5.2 para evitar las saturaciones de las etapas F4.1, F4.2, F6.1 y F6.2.
Figura 4a. Esquema del circuito analógico.
R44
3
+3V3
R63
P1
L9
27R
2
30R@100MHz
R46
1
IC5.A
R45
28k7
28k7
5k 8
C34
8
8
C35
IC4 1u 10V
4 C31
1u 10V
4
8
C36
IC5 1u 10V
4
8
C37
IC6 1u 10V
4
C38
C33
IC7 4
8
47k
IC8 1u 10V
1u 10V
3 k 5 4
4
R64 27R
–3V3
IC4...IC7 = TLC2252AID
2
IC4.A
R49
1
IC5.B
6
R26
1u 10V
k 0 1
+3V3
–3V3
R55
R 0 0 1
D1
BAV99S 2
1
5
5
4
6
11
k 0 0 1
+3V3
16
IC4.B
R50
7
7
47k
–3V3
R59
10k 2
LL
3
RL
12 13
R19
2
10k
1
R20
4
5
10k
5
3
X
X1 Y0
Y
Y1 Z0
Z
Z1
16
VCC
A
BAV99S 3
B
6
7
–3V3
C39
C40
VEE C GND ENABLE 8
4
5
1
100n 25V
2
14
3
15
2
IC3.A
1
4 C19
1k
11 10 9
100n 50V
100n 50V
100n 50V
P2
A0 A1
AN
A2
100n 25V
13
k 0 3 3
A
A3
VCC
S0
S1 VEE GND ENABLE
R41
1
IC6.A
10
AI
9
BI
6
l a t i g i d e t r a p a l
R42 28k7
R58
6
1 k 9
R61
7
6
5
IC3.B
7
TP7
6
R29
IC11 CD74HC4052PW
47M R30
1 5
R31
2
2M2
4
R32
47k
12
470k
14 15 11
3
+3V3
16
A
IC7.B
7
7
–3V3
C43
C44
100n 25V
B1
BN
B2
100n 25V
100n A 25V
K 0 3 3
TP8
3 R38 C24
B3 A0 A1
AN
A2
13
100n 25V
k 0 3 3
A
A3
VCC
S0 S1
10
AII
9
BII
VEE GND ENABLE 8
A
R37
B0
5
6
DII
+3V3
5
IC6.B
1u 10V R52
R34 k 0 1
A
10M k 0 0 1
7
IC8.B
C22
C26 R56
5
47n 25V
47k
k 0 0 1
470p 50V 6
C28
R48 3 k 5 4
A
C27
28k7
R39
2k
1n
IC7.A
B3
a
5k
2 1
R36 C23
4 M 1
3
2
C20
390k
R23
47k R57
50V
+3V3
TP9
3
R43 R51
k 0 0 1
R24
–3V3
100n 25V
BN
B2
k 0 0 1
100n 25V C17
100n 25V
M 1
B1
R60
C18
D2
C42
100n A 25V
➞
P3
+3V3 A
X0
C41
R35
B0
8
IC9 DG4053AEQ-T1-E3
3
14 15
k 0 0 1
R18
12
470k
k 0 0 1
6
A
LA
4
R62
TP5
1
2
2M2 R28
R22
RA
5
R27
R54
330k
K1
1
10M
R65
P2HZ
IC10 CD74HC4052PW
47M
C25
47k k 0 0 1
R21
DI
+3V3 R25
R53
k 0 9 3
TP6
5
A 3
R33 k 0 1
C21
7 1u 10V
1
IC8.A
A
R47
IC8 = LMC6482AIM
3
47n 25V
R40
1u 10V
IC3
470p 50V 2
C30
C32
A
C29
4 M 1
6
CAL 120107 - 11
www.elektor-magazine.es | julio / agosto 2013 | 19
Proyectos
•
+3V3 L4
L1
30R@100MHz
R6 C12
R5 k 0 1
R 0 5 1
10u 6V3
R15
TP2
k 0 1
VOUT
VIN
1
R3
T1
1
GDR
GND
IC13 LTC1981ES5
4
GATE
R16 M 1
IC12 MCP1640B(T)
VCC
PSMN6R5 -25YLC
3
3
SHDN
ON/OFF
GND EMUD1 EMUC1 NC
30R@100MHz
C1
1u 10V
33u 6V3
R4
4
k 0 0 3
C7
C8
C9
C10
10u 6V3
100n 25V
10u 6V3
100n 25V
+3V3
L3 30R@100MHz
C3
F F O R E W O P
D4
L2 30R@100MHz
R2
R12
1
C4
100n 25V
3 K 3
13
2 1
4
4
5
5 6
S1 CAL
11
RESET
10u 6V3
28
VDD
3
7
VDD
IC1
MCLR
RB15/RP15/AN9
RB0/PGD1/EMUD1/RP0
RB14/PMWR/RP14/AN10
RB1/PGC1/EMUC1/RP1
RB13/PMRD/RP13/AN11
RB2/RP2/SDA2/AN4
RB12/PMD0/RP12/AN12
RB3/RP3/SCL2/AN5
RB11/PMD1/RP11/TMS
RB4/RP4/PMBE
RB10/PMD2/RP10/TDI RB9/PMD3/SDA1/RP9/TDO
DI
2
DII
3 9 10
P2HZ
12
PIC24FJ32GA002 RA0/AN0
RB8/PMD4/SCL1/RP8/TCK
RA2/CLKI/OSCI
RB7/PMD5/INT0/RP7
RA3/CLKO/OSCO/PMA0 RA4/T1CK/PMA1
19
RB6/PMD6/ASCL1/RP6 RB5/PMD7/RP5/ASDA1
V SS 8
V SS 27
VCAP/VDDCORE 20 C2 10u 6V3
C5
11
25
BII
24
AII
VCC R9
23
STATUS
22
BI
9
21
AI
10
18
TX
17
16
RX RESET
15 14
3 K 3
100n 25V
26
RA1/AN1
DISVREG
Figura 4b. Esquema del circuito digital y de alimentación.
C16
A
k 0 1
6
GND
4
10k
R1
+3V3
10u 6V3
TPS60403DBVT
+3V3
D3
MCLR
33u 6V3
30R@100MHz 1
L8
+3V3
K2
C14
OUT
R13
BATT_LEV R17
100n 25V
C13
30R@100MHz
C FL Y+
IC2
IN
k 3 2 5
2 S2
2
L7
100k
TP3
C15
VFB
GND
R14
TP4
M 1
EN
L6
5
5
C FL Y–
30R@100MHz
1 SW
5
100n 25V 2
2
3
L5
C6
K3
TP1
1u 10V
4uH7
6
–3V3
C11
SETBAUD
1k
R10 1k R11 1k
19
14
MOD1 PIO2
SPI_MOSI
PCM_IN
SPI_CLK
PCM_OUT
SPI_MISO
UART_TX
SPI_CSB PIO5
13
UART_RX
PIO3
2 6 24 23 21 20
RN42
R8 1k
5 3
R7 1k
4 16 15
RESET
USB_D–
PIO6
USB_D+
PIO7
PCM_CLK
UART_CTS
PCM_SYNC
UART_RTS
PIO4
0 1 0 8 9 D D D D 1 1 0 O I O O O I O O I I I N N N N I A P P G G G G P P A
30 31 32 1
18 17 7 8 22 S3
12 28 29 33 34 25 RESET BT
➞
a la parte analógica
F5.1 y F5.2 comparan los valores medios de las señales SI y SII con una referencia fija. La tensión de error está integrada con una constante de tiempo seleccionado con AI y BI (y, respectivamente, AII y BII para la vía II), para producir la tensión continua de desfase aplicada en F4.1 y F4.2. Este desfase se vuelve a encontrar en SI y SII. Constituimos así un bucle de realimentación que mantiene permanentemente los valores medios de SI y SII a su consigna respectiva. Esquemas a corazón abierto
Encontraréis fácilmente todas las funciones sobre el esquema del circuito analógico (ver Figura 4a). Los cuatro electrodos están conectados en K1. Las resistencias R18, R19, R20, R23 y los diodos integrados en D1 y D2, constituyen la función F1 de protección. El multiplexor analógico IC9 (modelo 4053) constituye la función de multiplexado F2. La amplificación diferencial de cada vía (F3 y F4) la lleva a cabo la estructura clásica del amplificador de instrumentación: F3.1 = IC4A + IC4B
20 | julio / agosto 2013 | www.elektor-magazine.es
y F3.2 = IC3A + IC3B, así que F4.1 = IC5A y F4.2 = IC6A. La amplificación de la vía DII se ajusta con P3 para compensar la separación con la otra vía. En efecto, una diferencia de ganancia, aunque sea baja, tendrá una repercusión sensible sobre los cálculos de otras derivaciones. Los potenciómetros P1 y P2 permiten optimizar el rechazo del modo común de cada amplificador. Las etapas F4 conforman un bucle de contra-reacción que pasa, por la vía DI por ejemplo, por el multiplexor IC10, por una de las resistencias de R25 a R28 y por el amplificador operacional IC5B montado como integrador. Esta estructura realiza la función F5.1 y actua sobre la tensión media de DI, a través de IC5A, de manera que la mantiene igual a la fijada por el puente del divisor R35/R36 (y, respectivamente, R37/R38 para la vía DII). La constante de tiempos de acción de este bucle es elegida por una función lógica que actúa sobre el multiplexor IC10 (e IC11 sobre la otra vía) a través de las señales AI y BI:
Proyectos
Τ1 = R28�C25 = 0,47 s T2 = R27�C25 = 2,2 s T3 = R26�C25 = 10 s T4 = R25�C25 = 47 s Para la aplicación de los electrodos se selecciona la más rápida de manera que se llegue rápidamente al punto de reposo. Seguidamente, se aumentada la constante de tiempos a medida que nos acercamos al punto de reposo esperado, para, finalmente, alcanzar un valor de 47 s que no altera las señales ECG. Las tensiones de reposo son diferentes entre las vías DI y DII para adaptarse a las formas esperadas para cada derivación y evitar así una saturación del conversor A/D posterior, siempre manteniendo una dinámica suficiente. La última etapa de cada vía (IC8a e IC8b) constituye un filtro paso bajo de 2º orden. Su frecuencia de corte es de 170 Hz y su ganancia en la banda de paso es de 34 dB. Se trata de un filtro ‘antialiasing’ para el CAD, cuya frecuencia de muestreo es de 2.000 Hz. Dicho filtro está seguido de otro paso bajo de 1 er orden, constituido por R33 y C21, cuya frecuencia de corte es de 160 Hz. La atenuación de los dos filtros a la frecuencia de Shannon (1.000 Hz) es de unos 15 dB. ¿Os habéis dado cuenta de que IC8 está alimentado entre +3V3 y 0 V y no entre +3V3 y −3V3 como los otros amplificadores operacionales? No es un error: se protege así la entrada analógica del PIC24 que no acepta tensiones negativas. Debido a su alta sensibilidad, la parte analógica es muy sensible a las señales parásitas de cualquier índole, en particular a las producidas por la parte digital y la alimentación conmutada, la placa ha sido diseñada con cuidado para separar adecuadamente estas tres partes. Complementariamente a esto, las redes R63-C32 y R64-C31 atenúan la ondulación residual sobre las tensiones de alimentación de la parte analógica. Para la parte digital del circuito, el esquema eléctrico es muy claro (ver Figura 4b ), por lo que pasaremos del diagrama de bloques. PIC24FJ32GA002
El tipo elegido entre las variantes del PIC24 de Microchip es un modelo del principio de la gama, con el encapsulado SOIC de 28 terminales: el PIC24FJ32GA002 ( Figura 4b ). Su reloj interno de 8 MHz (no requiere ningún componente externo) proporcionó potencia de 4 MIPS y una precisión
Figura 4c. Foto del módulo Bluetooth de Roving Networks utilizado.
del 2 %, suficientes para esta aplicación. A esta frecuencia, su consumo de unos 5,4 mA es razonable para una alimentación con pilas. Módulo Bluetooth RN-42
El RN-42 (ver Figura 4b ) de Roving Networks es un módulo híbrido OEM Bluetooth de clase 2, pre-calificado, de poco volumen y de bajo consumo. La antena integrada permite un alcance de una veintena de metros. Soporta, entre otros el protocolo RFCOMM-SPP, utilizado en esta aplicación, con velocidades de hasta 240 kb/s. Aquí alcanzamos los 16.000 b/s. El perfil Serial Port Profil (SPP) permite establecer fácilmente una salida de enlace serie asíncrona duplex sin hilos. Las señales RX y TX del acoplador UART del �C, están conectadas sencillamente a sus homólogas del módulo Bluetooth . Así, las tramas producidas sobre TX, con formato serie asíncrono, son transferidas de forma transparente hacia el terminal conectado. Inversamente, los mensajes emitidos desde el terminal Android se encuentran en el mismo formato sobre la línea RX. Para comandar el módulo se utilizan algunas señales suplementarias: • La señal STATUS indica el Estado del enlace Bluetooth: establecido (1) o interrumpido (0). • La entrada RESET permite inicializar el módulo en caso de necesidad. • La entrada PIO7 (SETBAUD) permite seleccionar la velocidad de transmisión: – 1 9600 baudios. – 0 115,2 kbaudios. • Las resistencias de 1 k�, en serie con estas señales, respetan las recomendaciones de protección de las E/S del fabricante. • El parpadeo del LED D4 indica el Estado del módulo: – 10 Hz: configuración en curso. – 2 Hz: fase de inicialización – 1 Hz: el módulo es identificable. – Encendido: conexión establecida. ➞ ➞
www.elektor-magazine.es | julio / agosto 2013 | 21
Proyectos
•
Alimentación
Para un circuito tan simple, la estructura de la alimentación (ver Figura 4b ) constituida por los circuitos IC13, IC12 y IC2, es bastante compleja, pero también es la garantía de una tensión simétrica estabilizada (±3,3 V) hasta la última gota de energía disponible en las dos pilas AA de 1,5 V o en el par de baterías de 1,2 V. ¡Imposible de alimentar un equipo de este tipo de la tensión de red!
El transistor MOS T1, asociado al elevador de tensión IC13, protege la electrónica en caso de inversión de polaridad de las pilas: R6 limita la corriente consumida por IC13, con lo que T1 queda bloqueado así como su diodo interno. El terminal ‘-’ de la pila no está conectado a GND y los circuitos están protegidos, principalmente IC12. Cuando la polaridad es correcta, IC13 esta alimentado correctamente y está controlado por la señal /PowerOff del �C. Si el interfaz no esta alimentado, el PIC24 no esta alimentado y no puede aplicar un nivel H sobre la línea /PowerOff. La entrada /SHDN está, pues, a nivel bajo, principalmente debido a R14. La salida GATE de IC13 está entonces a nivel bajo y T1 está bloqueado. Por contra, su diodo de descarga (la corriente consumida circula de GND hacia el terminal ‘-’ de la pila) e IC12 están alimentados. En estas condiciones, la salida GRD de IC13 está 0, lo que inhibe el conversor de conmutación IC12 que, por consiguiente, no produce tensión de alimentación de 3V3. El inversor IC2 que proporciona los -3V3 finales tampoco funciona. Es decir, el interfaz no tiene alimentación. El consumo total se limita al de IC13 e IC12 en vigilancia, es decir, menos de 4 �A.
22 | julio / agosto 2013 | www.elektor-magazine.es
Pulsamos sobre S2 para hacer pasar la entrada /SHDN de IC13 a nivel H, con lo que su salida GATE hace conducir a T1 con una tensión igual a tres veces su tensión de alimentación, gracias a un triplicador interno. Esto permite reducir en gran medida la resistencia R ON de T1. El terminal ‘–’ de la pila está conectado a GND. La salida GDR de IC13 pasa también 1 y valida a su vez a IC12. Esto produce la tensión de +3V3 a partir de la tensión de la pila. El inversor IC2 está ahora alimentado y entrega a su vez la tensión de -3V3. El interfaz está ahora alimentado. El �C comienza entonces a arrancar y debe transmitir rápidamente la acción del usuario sobre S2, colocando la señal /PowerOff al estado H. La desconexión de la tensión de alimentación está controlada desde el terminal Android cuando el usuario abandona la aplicación: la señal /PowerOff está colocada en el estado L. Así pues, IC13 pasa a su estado de vigilancia ( shutdown ) y coloca su salida GDR a 0 para desactivar IC12 y cortar así la alimentación. La desconexión se obtiene también con un breve pulsación en S1. Los conversores de conmutación utilizados permiten obtener un rendimiento global próximo al 90 % y funcionarán (no durante mucho tiempo…) con pilas descargadas hasta 0,8 V. En la próxima edición de Elektor presentaremos el programa, la aplicación Android y la placa, así como la puesta en funcionamiento del instrumento. Veremos que es sorprendentemente sencillo. (120107)
Enlaces [1] Artículo CBECG Elektor octubre de 2006 p. 32 www.elektor.fr/050280 [2] Curso de cardiología http://goo.gl/mSr20 [3] www.elektor.es/120107 [4] Android | Aprender a programar la aplicaciones de Stephan Schwark www.elektor.es/android [5] El lugar del Cero - Le Site du Zéro http://www.siteduzero.com/informatique/ tutoriels/apprenez-a-programmer-en-java o http://goo.gl/OVZQY [6] Página web del autor http://electronique.marcel.free.fr/
powered by Eurocircuits
PCB’s Prototipos Multicapa Pequeñas series
Calidad Profesional Servicio de Calidad Pedido Seguro
Elektor PCB Service de un vistazo:
• 4 servicios específicos de panel compartido y 1 servicio sin agrupamiento • Servicio gratuito de verificación de datos de PCB online • Calculadora de precios online • Sin pedido mínimo • Sin cargos por filmación o puesta en marcha
E nt re g a a par t ir d e 2 d í as
l abor abl es
Más información y pedidos en www.elektorpcbservice.com
Proyectos
•
De BASIC a Python (3) Comunicación con el ElektorBus En las dos primeras partes describíamos las diferencias entre BASIC y Python, así
Jean-Claude Feltes
como la representación de diagramas, la
(Luxemburgo)
implementación de funciones matemáticas como la síntesis de Fourier y los interfaces gráficos de usuario. En la tercera parte mostramos cómo realizar una conexión con el ElektorBus. Naturalmente no será sólo teórica, en blanco y negro, sino eminentemente práctica y en color ).
La combinación de electrónica + Python + PC es ideal para enviar datos a un ordenador desde hardware externo, ya sea casero o comercial, y representarlos en él. El flujo de datos en sentido contrario también tiene bastante lógica, pues así podemos controlar hardware externo. Para la comunicación con el hardware externo podemos utilizar los clásicos puertos serie, o bien, si necesitamos más funciones, servirnos de un bus. Por ello, el ElektorBus puede servir muy bien de ejemplo a la hora de implementar un sistema como este. El ElektorBus se detallaba en una serie de once artículos [1] publicados en Elektor entre enero de 2011 y enero de 2012. El hardware utilizado se mostraba en la parte 6 [2], se trata de una placa con microcontrolador, LEDs y pulsadores, a modo de nodo experimental, conectada al PC mediante un conversor USB/RS485 ( figura 1).
tación hexadecimal y agrupa distintas funciones reutilizables en módulos. En el ElektorBus los datos se transmiten en formato binario. También puede tratarse de caracteres no imprimibles que normalmente no se representan correctamente en la ventana del terminal. Por ello, una función ha de mostr ar los datos recibidos en formato hexadecimal. Este es el propósito del código mostrado en el listado 1, incluido en el archivo Hexfunctions. py . La función puede utilizarse también en otros programas. Si fuera necesario, el módulo puede ampliarse con otras funciones. Lo típico en Python sería incorporar en el módulo su propia función de test. Al ejecutarse directamente la variable __name__ contiene el valor “ __main__” , y la parte de abajo realiza de forma automática la conversión para que podamos ver inmediatamente el resultado. Obtenemos: HELLO 48 45 4C 4C 4F 0A La función puede utilizarse también en otros programas. Por ejemplo en Test_hexfunctions.py :
Funciones hexadecimales en módulos
from hexfunctions import *
Primero un poco de calentamiento: un script incorpora una función auxiliar para la represen-
s=”HELLO\n”
24 | julio / agosto 2013 | www.elektor-magazine.es
print s, translate2hex(s)
lenguajes de programación
El módulo importado ha de estar en la misma carpeta que el programa principal o en el directorio de búsqueda de Python. Utilizar funciones externas en módulos resulta muy práctico, pues aumenta la claridad del código. Aparte, los módulos pueden reutilizarse.
ELEKTOR BUS
USB RS485
GUI con wxPython
NODE 5
CONVERTER
Digamos que todos los caminos llevan a los entornos gráficos. En Python no hay nada más cómodo que el Forms Designer de Visual Basic. Esta aplicación otorga control completo sobre los resultados, y tras un poco de práctica funciona bastante bien. En mi caso, he dado los primeros pasos con Boa Constructor. Sin embargo, ponerse a depurar sin ningún conocimiento es bastante tedioso. Python Card resulta algo más sencillo. De hecho, si no queremos profundizar es muy práctico, aunque lamentablemente haya que tener instalado siempre en cualquier ordenador Python Card . Tkinter es la librería de GUIs instalada en Python. Es bastante sencilla, pero incluye menos objetos que wxPython . Ya que carece de control sobre el portapapeles, al final he optado por wxPython. El código del listado 2 incluye el framework básico para entornos gráficos. Este programa irá ampliándose poco a poco. Para que funcione, lógicamente tendremos que instalar wxPython. La ventana principal se define como una c lase orientada a objetos, MyFrame , que hereda
8
USB
PC: MASTER
10
120744 - 11
Figura 1. El PC recibe datos a través del ElektorBus (RS485) de una pequeña placa con controlador que tiene conectado un sensor fotoeléctrico.
de wx.Frame todas las características como las funciones para maximizar y minimizar, moverse, etc. Las propiedades de la ventana están definidas en la función __i nit __ . Aquí se establecen los elementos gráficos, en este caso un campo de texto y un botón. Por sencillez, se generan con un tamaño y posición fijos. Con los llamados “sizers” también
Listado 1: Hexfunctions.py def translate2hex(c): “”” translate character string c to hex representation string e.g ABC -> 41 42 43 “”” h=”” for ch in c: b=hex(ord(ch)) b=b.replace(“0x”,””)
# iterate over all characters # get hex value # take away leading “0x for better overview”
b=b.upper() if len(b)<=1: b=”0”+b
# all in upper characters
h=h+b+” “
# separate bytes by space
# e.g. make “0A” out of “A”
return h # test: if __name__ == “__main__”: s=”HELLO\n” print s, translate2hex(s)
www.elektor-magazine.es | julio / agosto 2013 | 25
Proyectos
•
Listado 2: GUI_template.py import wx #
GUI
class MyFrame(wx.Frame): def __init__(self, **kwargs): # create frame wx.Frame.__init__(self, None, **kwargs) # text box with fixed width font for nice data representation self.textbox=wx.TextCtrl(self, style = wx.TE_MULTILINE, pos = (5,5),size=(300, 200)) myfont = wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, False, u’Courier’)
self.textbox.SetFont(myfont) self.button=wx.Button(self, -1, “TEST”, pos=(100,230)) # Bindings self.Bind(wx.EVT_IDLE, self.OnIdle) self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
Listado 3: Klasse Serialthread class Serialthread(serial.Serial):
def __init__(self, port, baud, **kwargs): # Initialization of port + baudrate serial.Serial.__init__(self) self.sCOM =serial.Serial(port) self.sCOM.setBaudrate(baud) # open port if not already open if self.sCOM.isOpen()==False:
self.sCOM.open() if self.sCOM.isOpen()==True: print „connected to“, self.sCOM.port
else: print „Error opening port“ # Counter for received data blocks self.ctr=0 # Create stop event (to terminate endless receiving loop) # and message queue for thread (to transmit received text to TextCtrl)
self.stopevent=threading.Event() self.msgQueue=Queue.Queue() def disconnect(self): # set stop event so endless receiving loop can be interrupted self.stopevent.set() def connect(self): # create a new thread object that runs serial thread
26 | julio / agosto 2013 | www.elektor-magazine.es
lenguajes de programación
self.Bind(wx.EVT_BUTTON, self.OnButton) def OnIdle( self, event): # if nothing else to do, update text from message queue pass def
OnDestroy(self, event): print “Exit”
def OnButton(self, event): self.textbox.AppendText (“Button pressed\n”) #----------------------------------------------------------------------# Main program if __name__ == “__main__”: app = wx.App(redirect = False)
frame = MyFrame(title=”GUI”, size = (320,270)) frame.Show(True)
frame.Centre() app.MainLoop()
# to read serial characters self.serialthread = threading.Thread(target=self.readSerial) # clear stopevent and Connect thread
self.stopevent.clear() self.serialthread.start() def readSerial(self): # endless receiving loop while not self.stopevent.isSet():
data=““ # read from port c = self.sCOM.read(1) # synchronize if ord(c) == 0xAA: self.ctr += 1
rest = self.sCOM.read(15) data=c+rest # format c to 16 bytes output datastring=str(self.ctr) + „\t“ + translate2hex(data) + „\n“ # update message queue self.msgQueue.put(datastring) wx.WakeUpIdle()
# wake up to update text
# end serial thread print „disconnected“ self.sCOM.close()
www.elektor-magazine.es | julio / agosto 2013 | 27
Proyectos
•
ls /dev/tt*U*
Como resultado obtenemos por ejemplo:
Figura 2. Ventana generada por el código del listado 2.
es posible generar un diseño que se adapta automáticamente. En el siguiente paso se crean tres manejadores de eventos, dos de los cuales necesitaremos después. Por tradición, el nombre de un manejador siempre empieza con “On”. Con Bind estas funciones responden a eventos externos. Por ejemplo, OnButton reacciona a un click del ratón. Definimos la clase MyFrame, que puede utilizarse en el programa principal. Ésta genera inicialmente un objeto wx.App, que se encarga principalmente de gestionar eventos. Después se muestra nuestra ventana y se centra. Los eventos se manejan en el bucle infinito app.MainLoop. Tras iniciar el programa aparecerá ventana de la figura 2. Ésta responde al hacer click sobre ella y permite varias funciones de edición: al hacer click con el botón derecho del ratón se desplegará un menú con las opciones de seleccionar, copiar, borrar y pegar. Este framework puede ampliarse fácilmente con una opción para guardar texto en un archivo, por ejemplo. ElektorBus: lectura
El nodo experimental está conectado al PC mediante el conversor USB/RS485. La pequeña placa está equipada con un microcontrolador ATmega328 y puede programarse con el archivo hexadecimal descargable [4], grabando el código en la memoria flash. En el conector de expansión del nodo experimental (ADC0) podemos colocar por ejemplo un potenciómetro o una fotoresistencia, como se explica en [2a] y [2b]. Pero primero hay que identificar el puerto serie utilizado en el PC. En Windows, hemos de con sultar el administrador de dispositivos, y ver qué nuevo puerto aparece al conectar el conversor. En Linux se notifica mediante la línea de comandos:
28 | julio / agosto 2013 | www.elektor-magazine.es
/dev/ttyUSB0
También funciona hasta el pequeño script para escanear los puertos en Python de la primera parte [3] (el código de ScanSerial.py en la edición impresa contenía un error en el layout, pero la versión descargable es correcta). Si no funcionase ninguno de los siguientes scripts, entonces habrá que verificar que el puerto es el correcto. Al experimentar, el sistema operativo podría haber cambiado “a escondidas” el número de puerto. Esto ocurre por ejemplo si retiramos el conector USB mientras ejecutamos scripts con ttyUSB0 y lo conectamos otra vez. En este caso el conversor se asigna a ttyUSB1. Entonces el script ya no podrá recibir más datos. No obstante, en un funcionamiento normal esto raramente ocurre. La plantilla de GUI del listado 2 puede ampliarse gradualmente. Al principio han de cargarse los módulos requeridos y fijarse los parámetros del puerto: COMport = “/dev/ttyUSB0”
# ¡Adaptarlo
según nuestro puerto! Baud = 9600 import threading, Queue import serial import time
El módulo threading es necesario porque la recepción serie debe ejecutarse en un proceso o thread separado, ya que para recibir necesita ejecutar un bucle infinito que entraría en conflicto con el bucle principal de wx. Esta es la parte más compleja de la programación. Para acceder al puerto creamos la clase propia Serialthread (listado 3). Un objeto de esta clase abre el puerto, lee los datos entrantes, los formatea y los envía mediante una cola de mensa jes (Message Queue) a otra parte del programa. Esto se ejecuta en un bucle infinito hasta que el thread sea detenido. Un objeto del thread serie hereda todas las propiedades y métodos de la clase básica Serial , con el nombre del puerto, la tasa de transferencia, las funciones de lectura y escritura, etc. En la
lenguajes de programación
función __init__ se genera un objeto serie que se encarga de todas las operaciones del puerto. Si aún no está abierto, se abre y se ajusta la tasa de transferencia. El contador self.ctr no es importante. Se utiliza posteriormente para numerar bloques de datos. Hay dos objetos importantes utilizados por el thread recientemente creado: un evento de stop para abandonar el thread y una Message Queue para transmitir datos al GUI. Desde fuera podemos iniciar y detener el thread mediante los métodos connect y disconnect . Por lo tanto, disconnect es sólo el evento de stop. Con connect iniciamos un nuevo thread en el que se ejecuta la función readserial . Ésta lee bytes del puerto en un bucle infinito hasta que se active el evento de stop. Después el thread finaliza y el puerto se cierra. Dentro de readSerial hay un mecanismo para sincronizar los datos. En el ElektorBus cada paquete de datos empieza con 0xAA. Cada vez que aparece dicho valor se incrementa el contador y se leen 15 bytes de datos. Posteriormente se formatean y se sitúan en una cadena de caracteres en la Message Queue. Con wx.WakeUpIdle() se indica al GUI del programa que puede leer la Message Queue en caso de que no tenga nada más que hacer. Hablemos ahora de Serialthread . Con esta clase pueden leerse datos continuamente sin alterar el flujo del programa. S erialthread se ejecuta casi en paralelo con otras partes del programa. Para ello ha de crearse e iniciarse un objeto de la clase Serialthread en el programa principal. Ha de ampliarse el código de MyFrame (del script de la plantilla de GUI, en la ventana principal). En la función __init__ (tras los “Bindings”) añadimos: class MyFrame(wx.Frame): def __init__(self, **kwargs):
COMPort y escribe todos los datos entrantes en la Message Queue. Como nos habremos percatado, el texto debe extraerse de la Message Queue y
escribirse en el campo de texto. Para ello, utilizamos una función que ya existe, OnIdle:
Figura 3. Los datos recibidos se entregan con formato hexadecimal.
class MyFrame(wx.Frame): def __init__(self, **kwargs): ... def OnIdle( self, event): # if nothing else to do, update text from message queue while not self.serialreceive.msgQueue.empty():
msg=self.serialreceive.msg-
Queue.get()
self.textbox.AppendText(msg)
La instrucción pass sólo se trataba de un placeholder (o “marcador de posición”) y se ha eliminado. Con estos cambios los datos entrantes deberían aparecer como en la figura 3 con el número visible en el campo de texto. Para evitar los molestos mensajes de error en la ventana aún tenemos que añadir una última cosa en el procedimiento OnDestroy :
... def OnDestroy(self, event): # Bindings
self.serialreceive.disconnect()
...
time.sleep(1)
# serial thread self.serialreceive = Serialthread(COMport, Baud)
self.serialreceive.connect()
Ahora tenemos un objeto serialreceive , conectado al puerto COM especificado por la variable
Antes de cerrar la ventana ha de finalizarse el thread serie. Esto podría llevar cierto tiempo con lo que se ha añadido una breve pausa con time. sleep(1). Los cambios llevados a cabo en este capí tulo, junto con el nuevo programa Serialreceive1. py , y el resto de códigos pueden descargarse gratuitamente en la página de este artículo [4].
www.elektor-magazine.es | julio / agosto 2013 | 29
Proyectos
•
Para dividir todo correctamente en módulos, la definición de la clase Serialthread puede guardarse por separado en el módulo Serialthread.py , si no queremos cambiar nada más. Se importará en el programa principal. De esta manera queda todo más claro. Aún queda una cosa más, aquí hay que importar los módulos necesarios para Serialthread , y no en el programa principal. El archivo Serialthread. py incluye también el siguiente código:
def __init__(self, **kwargs): # create frame
.... buttonOn=wx.Button(self, -1, “LED
ON”, pos=(100,230)) buttonOff=wx.Button(self, -1, “LED OFF”, pos=(200,230)) # Bindings .... buttonOn.Bind(wx.EVT_BUTTON, self.
import threading, Queue
OnButtonOn)
import serial import time
buttonOff.Bind(wx.EVT_BUTTON, self. OnButtonOff)
from hexfunctions import * import wx class Serialthread(serial.Serial):
El manejador de evento llama a las funciones self.OnButtonOn y self.OnButtonOff . Éstas han de reemplazarse por:
def __init__(self, port, baud, **kwargs): # Initialization od port + baudrate
def OnButtonOn(self, event):
serial.Serial.__init__(self)
....
ON\n”)
# end serial thread
print “disconnected”
x00\x00\x00\x00\x60\x01\x00\x00\x00\x00”
self.sCOM.close()
En el programa principal resultante Serialreceive2.py puede omitirse el bloque de definición de la clase Serialthread completo. Tampoco se necesitan las líneas de import , ya que éstos se hacen en Serialthread.py . Siendo quisquillosos esta división aún no sería del todo correcta, pues el módulo Serialthread. py es ciertamente específico para este proyecto y no de uso general, pero en este caso así es suficiente. ElektorBus: escritura
Los nodos experimentales incorporan un LED rojo. Éstos se encienden o se apagan desde el PC con dos botones. Para ello habrá que enviar una cierta secuencia de bytes a través del ElektorBus (ver las especificaciones del bus [1]): • Encender: AA 00 00 05 00 0A 00 00 00 00 60 01 00 00 00 00 • Apagar: AA 00 00 05 00 0A 00 00 00 00 60 00 00 00 00 00
En el programa del GUI ha de añadirse un segundo botón y otro manejador de evento, y ponerles nombres lógicos a los botones. Para ello editamos __init__ de la clase MyFrame:
30 | julio / agosto 2013 | www.elektor-magazine.es
self.textbox.AppendText (“LED data=b”\xAA\x00\x00\x05\x00\x0A\ self.serial_thread.sCOM.write(data) def OnButtonOff(self , event): self.textbox.AppendText (“LED OFF\n”)
data=b”\xAA\x00\x00\x05\x00\x0A\
x00\x00\x00\x00\x60\x00\x00\x00\x00\x00”
self.serial_thread.sCOM.write(data)
Si echamos un vistazo al código fuente de la clase Serialthread , nos preguntaremos dónde está definida la función write. No hace falta definirla explícitamente, pues se hereda como clase básica de serial.Serial y por lo tanto está disponible automáticamente. Con estos cambios obtenemos el programa Receive_send.py . Ahora sólo falta encender y apagar el LED rojo del nodo experimental desde el PC. El software no es en absoluto perfecto y carece de una sincronización con el nodo. Si se diera el caso de que el PC enviase datos al mismo tiempo, podrían aparecer colisiones en el bus, originando errores en los datos. Esto puede evitarse si el mensaje desde el PC se envía únicamente tras haber recibido correctamente los datos del nodo (véase el DirectMode, en las especificaciones del ElektorBus [1]). Podemos por ejemplo activar un flag tras recibir los datos, y que éste sea necesario para realizar cualquier envío.
lenguajes de programación
Diagramas
# synchronize
Ahora sólo nos falta mostrar los datos, aparte de como texto, también con un diagrama, y visualizar los valores generados por el conversor A/D del nodo. La librería estándar para la representación gráfica es Matplotlib. Ante todo habrá que instalarla. En la parte 1 de esta serie de artículos trabajamos con el sencillo interfaz de pyplot , con el cual pueden generarse rápidamente diagramas simples. Pero si queremos insertarlos en un entorno gráfico, la cosa se complica: habrá que utilizar el interfaz orientado a objetos, que básicamente ofrece más posibilidades. La documentación relacionada está disponible en la página de Matplotlib [5]. Si somos principiantes, es posible que el enorme abanico de posibilidades nos supere. En [6] podemos encontrar un ejemplo de inserción en wx . Antes de modificar el módulo Serialthread es mejor guardarlo con otro nombre, por ejemplo Serialthread_diagram.py . Los valores del conversor A/D a representar se encuentran en los bytes 5 y 6 del bloque de datos recibido. Han de extraerse y transferirse al programa principal. Las posibilidades son muchas. Una de ellas consiste en pasarle los arrays x e y como atributos en el objeto Serialthread . Estas coordenadas se corresponden con los valores x e y del diagrama. En __init__ añadimos:
if ord(c) == 0xAA:
class Serialthread(serial.Serial): def __init__(self, port, baud, **kwargs):
self.ctr += 1 rest = self.sCOM.read(15)
data=c+rest ## update x,y lbyte = ord(rest[6]) hbyte = ord(rest[5]) & 7 adc
=
lbyte + hbyte *256
t=time.time()-self.starttime self.x.append(t) self.y.append( adc) print t,adc # format c to 16 bytes output
.... wx.WakeUpIdle()
#
wake up to update text
Una vez convertidos, el módulo suministra además los valores hexadecimales para el diagrama. Ahora veamos los cambios en el programa principal. Ya que hemos cambiado el nombre del módulo Serialthread , también habrá que llevar a cabo el cambio aquí: from serialthread_diagram import
*
Para representar diagramas primero han de importarse los siguientes módulos necesarios:
... from matplotlib.backends.backend_wxagg import ## init arrays and timer for data
FigureCanvasWxAgg as FCanvas
self.x=[]
from matplotlib.figure import Figure
self.y=[]
self.starttime=time.time()
Matplotlib funciona con los llamados backends,
...
que se encargan de la verdadera tarea gráfica. El backend es distinto si hay que representar por ejemplo un diagrama en la pantalla con wx , en otro sistema, en una impresora o en un archivo gráfico. La primera fila genera un objeto FCanvas para wx , que puede dibujarse con Matplotlib. FCanvas hereda métodos como el ajuste del tamaño y la posición de wxPanel . El objeto Figure es un contenedor en el cual se dibuja. No obstante, Figure no es el verdadero diagrama. En un objeto Figure puede haber uno o varios objetos Axes embebidos. Estos sí son el la verdadera área de representación del diagrama. Esto resulta un poco confuso, pero se compensa con las posibilidades que ofrece Matplotlib.
Aquí tenemos dos arrays vacíos para los valores de x e y. El atributo adicional starttime sirve para calcular el tiempo en segundos, y que el valor pueda utilizarse para el eje de abscisas. En la función de recepción se extraen los valores del ADC, se combinan y se almacenan en los arrays x e y: def readSerial(self): # endless receiving loop while not self.stopevent.isSet(): ...
www.elektor-magazine.es | julio / agosto 2013 | 31
Proyectos
•
Por favor, ¡hay que vigilar siempre la indentación en los listados! Si no es correcta podrían aparecer errores, o que el programa se comporte de forma extraña. Para que todas las ventanas se muestren correctamente hemos hecho algunos ajustes en el layout y el tamaño de la fuente. En el listado pueden verse algunos detalles. La ventana del diagrama (ver la figura 4 ) se genera en la función __init__ de la clase MyFrame: class MyFrame(wx.Frame): def __init__(self, **kwargs): # create frame wx.Frame.__ init__(self , None, **kwargs) # text box with fixed width font for
figure.add_subplot(numrows, fignumber)
En nuestro caso sólo tenemos un diagrama ( fignumber = 1) y por lo tanto sólo una fila ( numrows = 1) y una columna ( numcols = 1). En las últimas tres líneas se genera con el objeto Fcanvas la superficie del backend de wx , se sitúa y se ajusta el tamaño. Ahora ya puede dibujarse un diagrama. Hay otro cambio más en la función OnIdle. Ésta es llamada el programa no tiene nada más que hacer, especialmente cuando hay datos nuevos aún pendientes. def OnIdle( self, event):
nice data representation
# if nothing else to do, update text
self.textbox=wx.TextCtrl(self, style
from message queue
= wx.TE_MULTILINE,
while not self.serial_thread.msg-
pos = (5,5),size=(420, 200)) myfont = wx.Font(10, wx.MODERN, wx.
Queue.empty():
NORMAL, wx.BOLD, False, u’Courier’)
Queue.get()
self.textbox.SetFont(myfont) buttonOn=wx.Button(self, -1, “LED
ON”, pos=(100,230)) OFF”, pos=(200,230))
self.figure = Figure() =
self.figure.
add_subplot(111)
self.textbox.AppendText(msg)
self.axes.plot(self.serial_
thread.x, self.serial_thread.y)
## diagram
msg=self.serial_thread.msg-
## display values in diagram
buttonOff=wx.Button(self, -1, “LED
self.axes
numcols,
self.canvas.draw()
Aquí se representan los valores de x e y recibidos anteriormente (el array x incluye el tiempo en segundos). El gráfico puede verse mediante el comando canvas.draw().
self.canvas = FCanvas(self, -1, self.figure) self.canvas.SetPosition( (450,5))
self.canvas.SetSize((300,250))
....
Primero se genera un Subplot . Por ejemplo, un diagrama puede obtenerse de representar varios Subplots mediante múltiples series de datos. La sintaxis sería:
32 | julio / agosto 2013 | www.elektor-magazine.es
Los cambios realizados en esta sección dan como resultado el programa Diagram.py . En este sencillo ejemplo hemos decidido no mantener fijo el escalado del diagrama. Éste se adapta continuamente según los datos. Aparte, la curva cambia de color con cada diagrama nuevo. Para adaptar los colores y el formato a nuestro gusto, es recomendable consultar la ayuda de Matplotlib.
lenguajes de programación
Conclusiones y planes para el futuro
Ahora ya deberíamos tener una idea básica sobre el tema. El software que explicamos está muy lejos de ser perfecto, por ejemplo, la gestión de errores es bastante rudimentaria. Por lo menos el intérprete imprime los mensajes inmediatamente, de modo que podamos ver cuál puede ser el problema. Uno de los inconvenientes es que el programa puede bloquearse al transcurrir cierto tiempo. Esto se debe a que los nodos experimentales envían nuevos valores dos veces por segundo. Esto conduce a que tarde o temprano los arrays x e y se saturen de valores y el diagrama tarde mucho tiempo en dibujarse. Mientras se está generando una representación, si llegan nuevos valores el thread del GUI se bloquea y la ventana se pone gris. Es curioso, porque sin embargo la ventana del terminal sí sigue activa con el thread de recepción y se ejecuta independientemente. En cualquier caso, este problema puede solucionarse estableciendo unos límites al programa, de modo que el gráfico sólo se refresque tras unos segundos. ¡Ahora te toca a ti probar! (120744)
[3] De BASIC a Python – Parte 1: www.elektor.es/110483
Figura 4. Ventana del terminal con valores numéricos y representación gráfica en X e Y.
[4] De BASIC a Python – Parte 3: www.elektor.es/120744 [5] Documentación de Matplotlib: http://matplotlib.org/contents.html [6] Sandro Tosi: Matplotlib for Python Developers [7] Página del autor: http://staff.ltam.lu/feljc/home.html [8] Python para electrónicos: Andrew Pratt: „Python Programming and GUIs for Electronic Engineers“ http://www. elektor.es/products/books/programming/ python-programming-and-guis-for-electronic.1320886.lynkx
Enlaces y bibliografía [1] Página del ElektorBus: www.elektor.com/elektorbus [2a] ElektorBus, Parte 6: www.elektor.es/110258 [2b] ElektorBus, Parte 8: www.elektor.es/110428
Sobre el autor Jean-Claude Feltes imparte clases de electrónica en el Lycée Technique des Arts et Métiers en Luxemburg. Esta escuela de tecnología y artes otorga cualificaciones profesionales a aprendices y técnicos. Dedica gran parte de su tiempo libre a su pasión por la electrónica y la programación (véase [7]).
www.elektor-magazine.es | julio / agosto 2013 | 33
Proyectos
•
Transmisor de 70 cm de Banda Ancha Con 130 mW de potencia de salida
Sjef Verhoeven, PE5PVB (Holanda)
La mayoría de los radiotransmisores RF de los radioaficionados no están especialmente diseñados para enviar señales de audio de alta calidad con un gran ancho de banda. Con el diseño que se describe aquí del completo radiotransmisor FM de audio de 70 cm (430...440 MHz) de banda ancha, sí es posible; el alcance de baja frecuencia se encuentra entre 20 Hz y 100 kHz.
Datos técnicos • • • • •
Rango de frecuencia 430...440 MHz en pasos de 25 kHz Rango de audio 20 Hz...100 kHz Velocidad de enganche del PLL < 1 segundo Tensión de alimentación 12...15 V Consumo unos 250 mA a 130 mW potencia RF de salida
Todo el mundo ha jugado alguna vez con un walkie-talkie o un transmisor-receptor. Con ellos puedes mantener una conversación inalámbrica. Las desventajas de este tipo de radiocomunicaciones son su poca calidad de sonido y el hecho de que
34 | julio / agosto 2013 | www.elektor-magazine.es
“tengas que esperar el turno” para poder dar una respuesta. Desde el principio del siglo pasado los radioaficionados ya utilizaban esta forma de comunicación. Con la correcta elección de aparatos, frecuencia y antena, los radioaficionados pueden establecer todo tipo de radiocomunicaciones. ¿Pero qué posibilidades tienes si quieres establecer una conexión con una buena calidad de sonido? En este artículo describimos el diseño de un completo transmisor FM de audio de 70 cm de banda ancha (430...440 MHz). La señal emitida es igual a la utilizada en la banda FM pública, lo que quiere decir que el rango de baja frecuencia se encuentra entre unos 20 Hz y 100
transmisor FM
kHz. Debido al gran ancho de banda de audio es relativamente sencillo establecer un audio chat con varios radiotransmisores sin demasiada distorsión. Compáralo con, por ejemplo, Teamspeak, pero sin interrupciones, distorsiones de códec, eco ni retardo. Con la ayuda de antenas de altura adecuada y un posible amplificador es posible establecer sin ningún problema una comunicación que abarque decenas de kilómetros, con condiciones atmosféricas óptimas puede alcanzar hasta 300 km. Para utilizar este radiotransmisor se requiere una licencia de radioaficionado de la categoría ‘Novice’ o ‘Full Licence’. Puedes obtener esta licencia en la Jefatura de Inspección de Telecomunicaciones después de aprobar un examen técnico. El objetivo es que puedas demostrar que dispones de suficientes conocimientos teóricos para utilizar radiotransmisores libres de interferencia, de forma segura y conforme a la regulación vigente (así que no está permitido emitir cualquier música al éter). El examen técnico se realiza un par de veces al año en algún lugar establecido por la Jefatura de Inspección de Telecomunicaciones de la provincia donde reside el interesado. Para más información ver en http://www.ure.es/informacion-general/2-iniciacion/15-obtener-autorizacion.html. La recepción de la señal FM es posible gracias a un escáner o receptor que puede recibir la señal. Muchas veces se trabaja también con un convertidor de recepción, que convierte, por ejemplo, la banda 430...440 MHz a 90...100 MHz. En ese caso puedes escuchar con un receptor FM normal.
Consejos de construcción •
•
•
•
•
•
Utiliza exclusivamente condensadores cerámicos, también por encima de 1 �F. Casi todas las resistencias y condensadores son del tipo 0805, sin embargo a veces aparece el tipo 1206. En caso de hacer la placa impresa uno mismo, asegúrate de que haya suficientes vías. Esto es especialmente importante en la parte que rodea la alta frecuencia. Las bobinas utilizadas NO pueden contener ferrita. Esto es especialmente importante en la parte del oscilador. La ferrita es famosa como generadora de ruido. Se debe integrar el conjunto en una cajita de metálica. El formato de la placa debe ser tal, que tenga las dimensiones estándares. Prepara primero la caja (agujeros para DC, LF y RF). Coloca después la placa sin componentes en la caja y suelda su contorno a la caja por las dos caras. Los componentes sólo se montan cuando la placa está completamente montada en la cajita.
Descripción del esquema
En este diseño se optó por un oscilador Colpitts construido alrededor de un MOSFET de doble puerta (T2) para la generación de la señal de alta frecuencia. Este oscilador funciona directamente a la frecuencia de transmisión. En un oscilador Colpitts se determina la frecuencia por la combinación de un divisor de tensión capacitiva con una bobina puesta en paralelo. En este caso el divisor de tensión se ha construido con C24 y C25 y la bobina es L4. La bobina consta de un trocito de cable coaxial que en principio funciona igual que un stripline. Utilizando un cable flexible (por ejemplo RG174) puedes evitar interrupciones en la modulación causadas por vibraciones mecánicas. Para que el circuito oscile hace falta una realimentación, el R25 se encarga de esto. En los diseños de osciladores Colpitts se puede ver a menudo que se opta por una realimentación
•
Utiliza una tensión de alimentación limpia para alimentar el transmisor. Algunas alimentaciones conmutadas contienen productos en la tensión de alimentación que son directamente audibles como ruido adicional o como pitidos. Una fuente de alimentación convencional sigue siendo la mejor solución.
www.elektor-magazine.es | julio / agosto 2013 | 35
Proyectos
•
+12V
VR4 UA78M05IDCY
+5VVR4
+5VVR3
DC IN R36 C42
C43
C44
100n
100n
220n
7 k 4
R38 7 k 4
R37
R48
7 k 4
K1
+5VVR4 C45 P2 1k
k 0 1
R35
470R
R 3 3
R43
k 0 1
R41
R39
R42
LED1
7 k 4
R 0 7 4
14
2
1
17
4
3
18
6
5
1
8
7
16
10
9
12
11
14
13
16
15
11
18
17
10
20
19
9
RA6
RA2
16
4
12
15
13
3
RA4
PIC16F628A
C47
C46
220p
220p
-I/P
RB7 RB6
RB0
RB3
8
5
Z0
3
Z1
11
RB5 RB4
RB1
VDD
X0
6
10
7
9
14
X
X1 2 Y0 1 Y1
2
RA3
IC4
RA7
12
100n
MCLR
RA1
13
VDD
RA0
IC5
15
Y
4
Z
CD4053BPW RG3
A B C
6
INH
RB2
V EE
V SS
7
8
VSS 5
VR1 UA78M05IDCY +12V
CON2
TP8 +5VVR3
R19
+5VVR1
0R
R44 C16
C13
100n
220n
R46
2 k 2
VR2 L78L09ACUTR
TP3
+12V
VR3 L78L05ACUTR
1
8
2
7
3
6
4
5
R45
BCP54
2 k 2
R 0
PA MODULE
T5
T4
TP4
C50
+12V +9VVR2
R 0
BC857
+5VVR3
R47 100n
C49
C17
C36
C38
C39
C40
10u
220n
10u
100n
100p
P3 10k
100n
+5VVR3
+9VVR2 R21 R22 C28
100R
L7
R29
C30
k 3 3
120nH
10u
C34 R 7 4
120nH
10n
R24 R23 C22
JMP1
C5
R20 C14
10n
LF IN
C11
R7
4k7 R40
P1
D2
R11
T2
10p D3
4p7
R12 100k
L4 L2 330nH
220R
C10 R6
R3
100n
2 k 2
82k
D4
+5VVR1
C9
R2
VCC CP Q1
DRIVE
6 7
IC1
R31
R33
k 1
k 3 3
R 2 8
4p7
k 1
PMBT3904
BZX84-B10
TP9
16
RF1
SDA
L3
13
Q2
100p
SP5511S
SCL
P0 P3
P7
P4
P6
P5 VEE 15
TP6
4p7
C41 R28
C8
RF2
5
270R
36 | julio / agosto 2013 | www.elektor-magazine.es
100n
25p 4
330nH R26
C4 1u
TR1
270R
C25
6p
T1 D1
12
R1
GND
R5
2u2
3.2MHz
VD RF OUT
k 2 2
220n
3
RF IN
BF998
+12V
C2
2
120nH GND
L8
Coax
k 0 1
10u
X1
IC3 ADA4743
56p
R25
TR2
R17
R13 C12
1
BF998
C15
1k
C1
T3
R32 C24
10R
R8
TP1
56p
C20
8p2
R 0
C37
100p
4R7 5p6
k 0 0 1
R 0 8 6
L12
TP5
R 0 7 2
k 2 2
220R
330nH 10u R9 25V
C19
R15
L1
300R
R 0 7 4
Figura 1. Esquema de la placa principal con la parte del controlador y RF.
C31
100p
R4
R27 C33
100p
k 0 0 1
D2...D4 = BB135
10n
R30
R 0 7 2
k 2 2
R34
L11
k 3 3
14
IC2 MGA31189
11 10 9 8
C7 1n
1n
R10 k 1
R14 R 0 5 1
C21 1
22R
3
RF IN
R18 R 0 5 1
RF OUT GND
2
C26
C29
10p
100n
2u2 TR3
120nH
C18 82p
R16
C6
C23
L5
L6
L9
10p L10
6nH8
27nH
27nH
6nH8
RF OUT
100p C27
C32
C35
8p2
12p
8p2
TP7 120267 - 11
transmisor FM
directa sin resistencia, sin embargo la práctica nos muestra que alguna resistencia hace que se produzca una oscilación más estable y limpia. Por último está el condensador de ajuste que hace que el oscilador se encuentre en la banda de frecuencia deseada. D3 y D4 son diodos varicap que se controlan por medio de una tensión con la que se puede sintonizar la frecuencia eléctricamente sobre un alcance de unos 30 MHz. Puesto que es un emisor de FM, necesitamos ser capaces de modular la frecuencia de la señal portadora de acuerdo a la amplitud y frecuencia de la señal de audio. Esto se hace con la ayuda del diodo varicap D2. Variando la tensión sobre este diodo se influye sobre la capacidad del circuito LC, que hace que se produzca un cambio de frecuencia. Para que la modulación sea lo más lineal posible se optó por emplear distintos diodos varicap para la sintonización y la modulación. Para evitar que surja una gran diferencia en la amplitud de modulación entre frecuencias bajas y altas, este varicap recibe una tensión predeterminada a través del divisor de alta resistencia (R11+R12), al que se añade C12 para mayor estabilidad. L1 se encarga de que el camino de la modulación no tenga una carga capacitiva demasiado alta, que provocaría que el oscilador dejase de funcionar. C14 desacopla la entrada de modulación de señales de alta frecuencia y se encarga de que el posterior trayecto no sea influido por la relación LC del circuito oscilador. Por último C5, R4, R7, R8 y R9 se encargan de un pre-énfasis desconectable. Si es necesario puedes aumentar R8 a tu gusto para reducir la amortiguación del pre-énfasis. En este diseño se ha partido de un pre-énfasis de 50 �s. Gracias a la etapa de buffer en la salida de la sección del oscilador, que también se ha realizado con un MOSFET de doble puerta (T3), se ha mantenido la carga de la salida del oscilador lo más estable posible para mantener la estabilidad de la señal de radiofrecuencia. La señal de radiofrecuencia, con una potencia aproximada de 1 mW, se atenúa ligeramente para que haya una buena adaptación con la etapa amplificadora que viene a continuación. En los últimos años se ha invadido el mercado con un gran surtido MMIC. Un MMIC (abreviatura de Monolithic Microwave Integrated Circuit) es un integrado especialmente diseñado para amplificar señales en el rango de las microondas. La gran ventaja de este tipo de integrados es que puedes amplificar sencillamente una señal RF
LCD1
2 x 16 A C + S D D D W 0 1 2 3 4 5 6 7 E E S D L S / V V V R R E D D D D D D D D L L 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 1 1 1 1 1 1 1
+5V +5V LED2
LOCK
R49
R 0 7 4
S1
9 7 5 3 1 1 1 1 1 1 9 7 5 3 1
LED3
K1 C52
C53
C51
100n
100n
100n
PWR
0 8 6 4 2 0 8 6 4 2 2 1 1 1 1 1
ROTARY ENCODER
+5V 120267 - 12
sin la necesidad de emplear circuitos sintonizados. Esto evita mayor complejidad en el circuito, espacio en la placa y también reduce considerablemente el precio de todo el circuito. En este diseño se optó por MMIC de Avago Technologies, por un lado porque cabe perfectamente en este circuito y por otro porque es importante que estos MMIC sean fáciles de adquirir. Con el primer MMIC (IC3, un AD4743) se amplifica la señal RF hasta unos 40 mW. Después de atenuarla pasa a un MGA31189 (IC2). Este es un MMIC capaz de generar una potencia de hasta 250 mW. Sin embargo, limitando la tensión de alimentación de IC2 en este circuito hasta un máximo de 4,2 V (suministrado por T4/T5), la potencia de salida es un poquito menor, unos 120...130 mW. Esta es la potencia perfecta para controlar una etapa de potencia, que en muchos casos es un módulo de potencia RF. Para el ajuste de la frecuencia deseada y para mantenerse sintonizado exactamente sobre ella, se utiliza un PLL (Phase Locked Loop). En esta técnica se compara la frecuencia de emisión, después de pasarla por un divisor programable, con una frecuencia de referencia. En caso de que se detecte una desviación, se intenta corregir mediante una tensión de control hasta que la señal de emisión y la señal de referencia vuelvan a estar en fase. En este caso la tensión de control llega a 2 varicaps (D3 y D4) después de pasarla por un filtro paso bajo. El filtro paso bajo es esen -
Figura 2. La parte de control contiene un codificador rotativo y un LCD de 2x16 caracteres.
www.elektor-magazine.es | julio / agosto 2013 | 37
Proyectos
•
rpc b s e
t o
k
e l e
.
w w w
r
v c
i
e
. c
o
m
Figura 3. La placa principal tiene componentes en las dos caras.
cial y tiene que estar dimensionado de tal forma que la PLL no regule demasiado rápido. Después de todo emitimos en FM, donde la frecuencia varía a consecuencia de la modulación proporcionada (audio). Si el PLL corrige demasiado rápido, tendrá una gran influencia sobre la calidad del sonido de la modulación. Así que es importante encontrar una buena relación entre el ancho de banda máximo (unos 180 kHz) y la estabilidad de la señal. En este diseño se utiliza como PLL un SP5511 o TSA5511 (IC1), fácil de encontrar y con un precio asequible. Originalmente este PLL estaba pensado para sintonizadores de televisión (por satélite). Este tipo se encuentra frecuentemente en un televisor, reproductor de video o receptor de satélite viejos. El paso de frecuencia más pequeño que puede generar este PLL es 50 kHz con un cristal de 3,2 MHz. Sin embargo, lo que queremos es un paso de 25 kHz. Esto se soluciona fácilmente utilizando el segundo armónico de la señal de RF como entrada del PLL. Con una conexión inductiva se capta esta señal entre IC3 e IC2. El microcontrolador (IC4, un PIC 16F628A) controla el integrado PLL a través de I 2C. Una gran desventaja del integrado PLL es que produce intermodulación (crosstalk) entre el bus I 2C y las otras etapas. Esto produce un cliqueo en la señal de audio emitida al ritmo de los datos I 2C. La idea del autor fue controlar, aparte de este transmisor, también una etapa de potencia u otro hardware a través del bus I 2C. Estos datos, que en ese caso no tienen como destino la PLL, también serán audibles. Este problema se ha resuelto en este diseño colocando un HEF4053
38 | julio / agosto 2013 | www.elektor-magazine.es
(IC5) entre el bus I 2C y el integrado PLL. Se desconecta la línea I 2C hacia la PLL en el momento en que los datos I 2C no van dirigidos al PLL. Es una solución muy barata y efectiva. El control del transmisor se hace con un codificador rotativo con pulsador incorporado. Se encuentra junto a 2 LED y el display en una placa aparte (esquema de la figura 2) que se conecta a K1. Sencillamente seleccionas la frecuencia de transmisión y luego pulsas sobre el codificador rotativo para confirmar esta configuración. Entonces se envían los datos correctos al integrado PLL y se lee el estado del PLL. En el momento en que el PLL indica que ya no hay diferencia de fase entre la señal de transmisión dividida y la señal de referencia, se lo comunica al microcontrolador. Este se encarga de que LED2 se encienda (indicación de PLL lock). Además de eso, se conmuta la alimentación del último MMIC, de modo que el transmisor sólo transmita una señal de cuando realmente está funcionando a la frecuencia ele gida. Con P3 se puede ajustar de forma continua la tensión de alimentación del último MMIC, de modo que la potencia de transmisión se reduzca hasta unos 1 mW. De esta manera se puede emplear el transmisor universalmente con diferentes tipos de etapas de potencia. CON2 es un conector de 8 vías con el que se puede controlar posibles aparatos externos con el microcontrolador, por ejemplo una etapa de potencia. Cuando el autor empezó a trabajar en este diseño, aún no estaba familiarizado con la programación de los microprocesadores. Entonces se inició con el PIC Simulator IDE. Es un software de programa-
transmisor FM
ción muy sencillo que utiliza su propia variante de Basic. Lo bueno de este software es que contiene un simulador completo, de modo que puedes simular el software perfectamente antes de programarlo en un controlador. Las desventajas son las limitadas posibilidades de cálculo. Para que no fuera demasiado complejo se optó por trabajar con dos ‘contadores’ independientes. Un contador se encarga de la lectura de la frecuencia mientras que el otro se encarga de la división. En otras palabras, si incrementas la frecuencia del transmisor en el display en 25 kHz, se incrementará el divisor en ‘1’. En los extremos de la banda (430 y 440 MHz) el contador del divisor se configura a un valor predeterminado. Toda la información importante de este proyecto (diseño de las placas, lista de materiales, código fuente y hex del controlador) están disponibles en el sitio web de Elektor [1]. Manejo
Se puede controlar el transmisor al completo con un solo codificador rotativo con pulsador. Elige una nueva frecuencia girando el codificador rotativo. Después aparece ‘TUNE’ en el display de la parte superior a la derecha. En el momento que se pulsa sobre el codificador rotativo, se graba en memoria la nueva frecuencia y se sintoniza sobre ella. Cuando el PLL se engancha, se enciende el lock-LED y se conecta la etapa de potencia. Si el PLL no se engancha, el lock-LED permanece apagado y se muestra el mensaje ‘PLLERR’. En caso de no recibir datos I 2C del PLL se mostrará el mensaje ‘I2CERR’. En ambos casos el microcontrolador sigue intentando programar el PLL hasta que se enganche. Construcción
En la construcción de circuitos de alta frecuencia, especialmente en UHF, es muy importante mantener las conexiones lo más cortas posible. Además debes mantener la masa lo más ‘fría’ posible. En el diseño de la placa del autor (mostrado en la figura 3 de forma reducida) vemos una cantidad importante de vías en el diseño. En caso de querer hacer la placa uno mismo, es muy importante hacer también estas vías. La placa está diseñada para que quepa en una caja metálica de 74 x 148 mm, es un tipo de caja fácil de adquirir. Se debe soldar la placa a la cajita metálica por todo el contorno tanto por la cara superior como por la inferior. Esto asegura un contacto óptimo de la masa. La integración en
Figura 4. En la parte inferior de la placa hay, aparte de unos conectores y un microcontrolador, un trozo de cable coaxial que funciona como bobina del oscilador.
una caja metálica y la soldadura del contorno con la caja es muy importante, una cajita construida por uno mismo con placas vírgenes no es apta para este circuito. El autor trabaja de la siguiente forma con la construcción. Primero coloca la placa impresa vacía en la cajita metálica y monta todos los componentes del chasis necesarios. Se aconseja un conector SMA de chasis para la conexión de la antena. En caso de utilizar un conector para panel puedes soldarlo perfectamente al chasis. Así no necesitas tornillos. Las conexiones de la alimentación y de audio puedes colocarlas a tu gusto. Generalmente se utiliza un conector CINCH de chasis para el conexionado de audio. En una cara de la placa se encuentran todos los SMD, en la otra cara se encuentran 3 conectores, el stripline y el microcontrolador. En la figura 4 puedes ver una imagen en detalle del stripline. Está hecho de un trozo de cable coaxial flexible con una longitud de 4 cm, soldado a la placa por los extremos. En un lado del cable se interconectan el núcleo y la malla de cobre y se sueldan juntos en la placa. En el otro lado se suelda la malla separada en dos en el plano de masa (tal y como muestra la foto), el núcleo se suelda en el agujero que se encuentra en el medio. A continuación construye el circuito bloque a bloque. Empieza con el oscilador. Verifica si oscila entre 400...500 MHz. Lo puedes comprobar con un frecuencímetro o un analizador de espectro. A continuación monta el buffer y las 2 etapas MMIC de amplificación. Asegúrate de crear una conexión temporal para la tensión de alimen-
www.elektor-magazine.es | julio / agosto 2013 | 39
Proyectos
•
Figura 5. Sobre la placa de control hay poco que contar, se construye rápidamente. Ten cuidado de montar el conector de 2x10 pines para la interconexión con la placa principal en la cara posterior.
tación del último MMIC, de modo que también funcione. Verifica la señal RF, por ejemplo con un mili-voltímetro RF. Si funciona la parte RF, puedes construir el circuito del PLL y del microcontrolador. Utiliza para el último un zócalo de 18 pines y prográmalo antes de colocarlo en su zócalo. La parte de control se encuentra en una placa aparte que se muestra en la figura 4. La construcción de esta parte no es crítica. Todos los componentes (a falta de uno) se colocan en la cara de componentes. Se puede utilizar un conector hembra de 16 pines con su correspondiente conector macho para la conexión del display. En la cara posterior viene el conector de 20 pines para la interconexión con K1 de la placa principal a través de un cable plano de 20 hilos. Ajustes
Conecta el transmisor con display incluido a la tensión de alimentación. Ajusta P2 para un contraste óptimo del display. Sintoniza a 435 MHz. Gira TR2 lentamente con un destornillador de plástico y cerámico hasta que el transmisor se encuentre en 435 MHz. Mide la tensión sobre TP1 y gira TR2 hasta que la tensión medida sea de unos 6 V. Ahora con la ayuda de un frecuencímetro o un analizador de espectro puedes poner el transmisor exactamente a 435,0 MHz mediante TR1. Ajusta luego P3 para tener la potencia máxima de emisión. A continuación has de ajustar el fil-
40 | julio / agosto 2013 | www.elektor-magazine.es
tro supresor de banda, para lo que se necesita un analizador de espectro. Mide el segundo harmónico a 870 MHz y ajusta TR3 hasta obtener la mínima potencia. Si no dispones de un analizador de espectro, puedes ajustar TR3 hasta obtener la máxima potencia con un mili-voltímetro de RF. Sin embargo debes tener en cuenta que entonces el filtrado no es óptimo. Entonces tienes que suplir esto en la etapa de potencia conectada después del transmisor. Verifica que el transmisor funcione tanto a 430 como a 440 MHz. Coloca un puente en la posición del puente de pre-énfasis y conecta una fuente de audio, por ejemplo un reproductor de CD. Ajusta P1 a una amplitud óptima sin que surja distorsión. Con eso el transmisor de 70 cm estará listo. Imaginamos que no cualquier radioaficionado dispone de experiencia suficiente como para soldar los SMD. Si hay mucho interés, el autor está dispuesto a construir varios de estos transmisores y ajustarlos a un precio razonable, para eso puedes ponerte en contacto con él [2]. (120267)
Enlaces web [1] www.elektor.es/120267 [2]
[email protected]
Puntos de ajuste P1 P2 P3 TR1 TR2 TR3
Intensidad de la modulación (audio) Contraste del LCD Potencia de salida Ajuste fino del oscilador de referencia Ajuste grueso del oscilador de emisión filtro suprime banda para el 2º harmónico
Puntos de medición TP1 TP2 TP3 TP4 TP5 TP6 TP7
Tensión de control de la PLL Modulación después de pre-énfasis Tensión de oscilador (9 V) Tensión de control de la etapa (5 V) Tensión de la etapa de potencia (0...4 V) Frecuencia después de la división PLL Frecuencia de la frecuencia de la PLL
Subscribe Now!
Subscribe now to the leading
computer applications magazine
specializing in embedded systems and design!
12 issues per year for just Print OR Digital: $50 : : Combo (Print + Digital): $85
www.circuitcellar.com/subscription
Proyectos
•
Marcando el paso Ronald Stärz, Mathias Gfall y Jens Nickel
Driver de motores paso a paso para el ElektorBus El ElektorBus abre la puerta a un mundo de posibilidades, tanto en la automatización como en el campo de la metrología. Gracias a su hardware y software modular podemos crear nuestras propias aplicaciones rápidamente. Ahora añadimos al “catálogo” del ElektorBus una placa para controlar motores paso a paso.
Carrier Sensing, Collision Avoidance, Bus Termination : términos a los que
el estudiante de telecomunicaciones o cualquier aficionado interesado ha de enfrentarse tarde o temprano, sin ser precisamente un juego de niños. Pero el tema se vuelve más interesante cuando tenemos la oportunidad de implementar nuestros propios circuitos y proyectos en un sistema de bus real. El ElektorBus sirve como base para realizar nuestras propias aplicaciones (basándonos en el diseño de referencia). De hecho, el ElektorBus ya juega un papel princi-
Características • • • • • • •
• •
Driver para motor paso a paso L6208 de STMicroelectronics Para motores bipolares de hasta 60 V Corriente máxima del motor: 2,5 A aprox. Puerto RS485 1 LED y 1 pulsador de prueba, para la depuración y el funcionamiento 1 relé de seguridad para la alimentación del motor (controlable por software) Archivos de controlador y placa de la Librería de Firmware Embebido (EFL), disponibles para descarga Librería para motores paso a paso para el EFL, disponible para descarga Aplicación demo compatible con el ElektorBus, open source, disponible para descarga
42 | julio / agosto 2013 | www.elektor-magazine.es
pal en la asignatura de “mecatrónica” en el MCI de Innsbruck [1]. El circuito de esta placa para motor paso a paso es el resultado de un proyecto estudiantil. La placa está disponible en Elektor, tanto vacía como completamente montada y probada. Como siempre, el software puede descargarse gratis [2], es idóneo como punto de partida para otros diseños. Un paso adelante
El circuito de la figura 1 está dividido en varios bloques funcionales. En el centro se encuentra el microcontrolador y el driver para el motor paso a paso. Esta parte del circuito consta además del puerto para el bus, una fuente de alimentación conmutada y un interruptor de posición / final de carrera (ajustable universalmente). El control del motor paso a paso se basa en un IC L6208 de STMicroelectronics, la figura 2 muestra el diseño interior del componente [3]. En él podemos identificar los diodos de libre circulación, imprescindibles para proteger los semiconductores de potencia cuando se utilizan cargas inductivas, como bobinas. Hemos elegido específicamente este driver pues dispone de etapas de potencia y una máquina de estados para gene-
driver de motores
rar las señales de control necesarias, y aparte es capaz de regular de la corriente en los bobinados de motor y proteger contra sobrecorrientes. Por un lado, realizar un control resulta muy sencillo, se reduce a generar cuatro señales de control: sentido del giro (CW/CCW), paso (CLK), modo de funcionamiento (HALF/FULL), así como la señal de enable (EN). Por otro, el alto nivel de integración, que permite minimizar el número de componentes externos, como se muestra en el esquema de la figura 3. Las resistencias (de R6 a R11) en las entradas se utilizan para medir la corriente, pues la caída de tensión en ellas sirve como medida para el regulador de corriente interno. El valor guía se establece en la entrada Vref mediante el potenciómetro P1. Con los valores dados, tenemos que la corriente de los bobinados es de 100 mA, cuando la tensión de referencia son 33,3 mV. Las redes RC formadas por R12/C10 y R15/C11 definen el tiempo de “off” de los MOSFETs de potencia en el circuito del puente [3]. Para generar las tensiones de las puertas el L6208 utiliza una bomba de carga, implementada mediante D2, D3, R4, C5 y C7. R5 y C9 se encargan de fijar el nivel de tensión adecuado en la entrada de enable. Como controlador hemos elegido un ATmega328, que dispone de 32 KB de memoria flash, más que suficiente para utilizar una librería de software modular como por ejemplo la “Librería de Firmware Embebido” (ver más abajo). El circuito del microcontrolador incluye, aparte de los componentes estándar para la estabilización de la tensión y la generación del reloj, un reset manual en JP2. Un pulsador en PD5 (S1) y un LED en PD4 (LED1) se utilizan en el funcionamiento normal y en las tareas de depuración con nuestras propias aplicaciones. En cuanto al hardware, la conexión con el bus se lleva a cabo mediante un transceptor RS485, el LT1785; el bus puede separarse con JP3 y R22, en caso de que la placa del motor paso a paso se trate del primer elemento del bus, o del último. Las clemas de tornillo para las señales del RS485 y la alimentación a 12 V son iguales que en los conocidos nodos experimentales del ElektorBus [4], de modo que es posible cerrar el lazo con las cuatro líneas del bus cómodamente. Alimentación
La tensión de alimentación para el circuito lógico se ha implementado mediante el regulador con-
ALIMENTACIÓN MOTOR
REGULADOR
12V
ELEKTOR BUS
5V
RELÉ DE SEGURIDAD
RS485 CONTROLADOR DE MOTOR PASO A PASO
M
MCU ATMEGA328
MOTOR PASO A PASO
INTERRUPTORES DE POSICIÓN
BOTÓN DE LED DE PRUEBA PRUEBA
mutado IC1 (un LM2675M-5). En combinación con L1, D1, C1 y C3, éste genera los 5 V necesarios sin apenas pérdidas (y a partir de una tensión de entrada de entre 7 y 24 V). La alimentación para la electrónica de potencia es independiente y se encuentra en otra clema, y el motor paso a paso no debe alimentarse a través de la línea de 12 V del ElektorBus. En este punto, el driver L6208 tiene un pequeño inconveniente: si está conectada la alimentación en la parte de potencia, pero no (aún) en el circuito lógico, nos daremos cuenta fácilmente... ¡por el humo que saldrá del driver! Por ello, en el circuito hemos colocado un relé (REL1) en la línea de alimentación del L6208, que puede controlarse con el software mediante el pin PD6. Toda la parte de poten-
VBOOT
VCP
Figura 2. Diagrama de bloques del driver L6208 (ver [3], STMicroelectronics).
VBOOT
VBOOT
10V
10V
VSA
CHARGE PUMP
OCDB
OVER CURRENT DETECTION
THERMAL PROTECTION EN
OUT1A OUT2A
GATE LOGIC
CONTROL
SENSEA
HALF/FULL
RESET
Figura 1. Diagrama de bloques de la placa del motor paso a paso para el ElektorBus.
VBOOT
OCDA
CLOCK
120509 - 13
PWM STEPPING SEQUENCE GENERATION
ONE SHOT MONOSTABLE
CW/CCW
MASKING TIME
+ SENSE COMPARATOR
-
VREFA
RCA BRIDGE A
VOLTAGE REGULATOR
10V
5V
VSB
OVER CURRENT DETECTION
OUT1B OUT2B SENSEB
GATE LOGIC
VREFB BRIDGE B
RCB
120509 - 14
www.elektor-magazine.es | julio / agosto 2013 | 43
Proyectos
•
cia puede desactivarse desde el ElektorBus. Ya que podrían aparecer corrientes de hasta cientos de miliamperios, ocasionando caídas de tensión nada despreciables, hemos optado por un diseño en estrella para las líneas de masa, en la cual podemos ver R1 (resistencia de 0 Ω). R1 permite separar las masas de ambos circuitos en caso de fallo, la parte lógica y la parte de potencia. Si el motor paso a paso se utiliza no sólo con velocidad de giro variable, sino que también ha
+5V
de fijar ciertas posiciones, necesitaremos incorporar interruptores para los finales de carrera. Estos interruptores pueden ser mecánicos o de proximidad (inductivos o capacitivos), así como fotoeléctricos (por dar algunos ejemplos). Para abarcar todas estas posibilidades, la placa dispone de un circuito de entrada universal ajustable para dos canales, formado por R16, R17, R24, C15 y D4 así como R18, R21, R25, C16 y D5. Los circuitos de protección y filtrado de C15/C16
+5V
B F
R13
7 VIN 2 NC
R14
k 0 1
R 0 1
C12
C13
10n
T491B 10u 6V3
C14 T491B
C C C C V V
1 3 5
+5V R24
*
K6 1
IN1
k 0 1
R16 0R R17
2
7 k 2
ISP
GND
INTERRUPTOR A
C15
D4
100n
5V1
MOSI MISO SCK RESET
20
AREF
*
K8 IN2
1
/ 6 T N I C P ( 6 B P
D D N N G G
2
R21 7 k 2
C16
16MHz
C18
+5V
RO DI DE
1 RO 4 DI 3 DE 2 RE
RE
LT1785
R19 k 0 1
+5V
k 0 1
C5
R4 100R
220n
22
15
STEP_DIR
2
STEP_CLK
1
STEP_MODE
12 14
100k R5
3
5n6
k 0 0 1
R6 0 R 1
1W
R7
44 | julio / agosto 2013 | www.elektor-magazine.es
PGND
T E S E R
B S V
VCP
VBoot
OUT2 A
CLK OUT1 B HALF/FULL
1W
2
BC849B GND
Alimentación Motor
PGND
10k
OUT2 B
5
A1
1
21
A2
2
8
B1
1
16
B2
2
EN
C10
Sense A
L6208 RC B
4 9
1W
1n
R12 39k 39k 1n
PGND
R9 0 R 1
GND
1W
R10 0 R 1
1W
R11 0 R 1
Sense B
CTRL
13
D D D D N N N N G G G G 6 7 8 9 1 1
1W PGND
120509 - 11
GND
K2 A1 A2
K3 B1 B2
Motor paso a paso
R15
C11
K1
1
GND OUT1 A
CW/CCW
T1
R26 4k7
P1
68n
REL 1 G5LA145DC
C6
24 VRef A 11 VRef B
RC A
0 R 1
10
Figura 3. Esquema de la placa del motor paso a paso. Para configurar los interruptores de posición, véase el cuadro.
A S V
R8
0 R 1
GND
R1 0R
B
1N4148
M
3 2
IC2
D3
C9
7 1
10n
1N4148
R23
A
R22
D6
k 9 3 0 2
D2 C7
STEP_EN
K7
TERMINATION
+5V
1N4148
PGND
GND
R 0 2 1
R E W O P
VS
10n
2
+5V VS
5V1
1000u 50V
K9
1
RS458A 1
R20
GND
C8
A
22p
D5
FK1H102M C4
7 B 6 A
JP3
R2 GND
B
D N G
D N G
R3
RS458B 2
RS458B 2
VS 100n
IC4
5
S1
K4
+12V
LED1
1 2
GND RS458A 1
C C V
C19
22p
K5
2
R 0 8 6
INTERRUPTOR B
R18 0R
8
X1
Bus
1
/ 7 T N I C P ( 7 B P
7
10u 6V3
k 0 1
+12V GND
30 PD0 (RXD/PCINT16) 31 PC0 (ADC0/PCINT8) ATMEGA328P PD1 (TXD/PCINT17) 32 PC1 (ADC1/PCINT9) PD2 (INT0/PCINT18) 1 ) ) PD3 (PCINT19/OC2/INT1) PC2 (ADC2/PCINT10) 1 2 2 C C S S PC3 (ADC3/PCINT11) PD4 (PCINT20/XCK/T0) O O 9 T / / PC4 (ADC4/SDA/PCINT12) T 1 2 PD5 (PCINT21/OC0B/T1) 10 L L APD6 (PCINT22/OC0A/AIN0) PC5 (ADC5/SCL/PCINT13) A T T 11 X X PC6 (RESET/PCINT14) PD7 (PCINT23/AIN1)
C17 T491B
R25
C1 T491B 68u B160-13-F 10V
IC3
5 3
+5V
D1
8
GND
Interruptores Ref.
1
12 PB0 (PCINT0/CLK0/CP1) 13 PB1 (PCINT1/OC1A) 14 PB2 (PCINT2/SS/OC1B)
22 ADC7 19 ADC6
26 27 28 29
CB
C C V A
15 PB3 (PCINT3/OC2A/MOSI) 16 PB4 (PCINT4/MISO) 17 PB5 (SCK/PCINT5)
23 24 25
10n D N G
8 1
4 6
JP1
+5V
47uH0
6
GND
+5V
8 C3
3 NC 5 ON/OFF
470u 35V
10u 6V3
GND GND
L1
IC1 VSW
LM2675M-5.0
C2
JP2
2 4 6
4
+12V
driver de motores
Configuración de los interruptores de posición Interruptor: Si queremos conectar un interruptor mecánico, tendremos que poner una resistencia de 0 Ω en R16 y dejar R17 sin montar. La resistencia de pull-up de 10 k R24 es opcional (pero debe considerarse su uso si se utiliza un microcontrolador diferente sin resistencias de pull-up internas). Si se cierra el interruptor, el correspondiente pin de entrada se pondrá a nivel bajo. Esta es la configuración por defecto en las placas “recién llegadas de fábrica”.
+5V
+5V
R24
R24
NO MONTAR
K6
Tensión de Entrada
5V
1
IN1
INTERRUPTOR A
R16 0R R17
2
Interruptor
C15
k 0 1
K6 IN1
1
D4
R17
2
100n
5V1
GND
1
INTERRUPTOR A
R16 15k R17
2
C15
NPN Open Collector
D4
k 0 1
Entrada de tensión (5 V): Puenteamos R16 y dejamos R24 sin montar, conectamos la señal de salida de 5 V filtrada a la entrada del microcontrolador.
5V1
R24
NO MONTAR
K6
100n
+5V
R24
IN1
D4
GND
+5V
Tensión de Entrada
C15
DONT PLACE
k 0 0 1
12V
INTERRUPTOR A
R16 0R
100n
5V1
GND
IN1
k 0 1
K6 1
INTERRUPTOR A
R16 0R R17
2 DONT PLACE
C15
D4
100n
5V1
GND
+5V R24 NO MONTAR
Entrada de tensión (12 V): Un divisor de tensión formado por 25k / 10k = 2,5 genera un total de 4,8 V en la entrada del microcontrolador.
K6
Tensión de Entrada
24V
IN1
1 2
INTERRUPTOR A
R16 39k R17
C15
D4
100n
5V1
k 0 1
120509 - 12
GND
Entrada de tensión (24 V): Mediante el divisor de tensión formado por R16 / R17 se obtiene una tensión de salida de 4,9 V. NPN en colector abierto: Los interruptores con salidas de este tipo necesitan algo de circuitería adicional para generar una señal de salida. Normalmente suele tratarse de resistencias de pull-up para adaptar la señal al nivel requerido. Si hay tensión en la base del transistor, el diodo colector-emisor conducirá, y el potencial de la entrada del microcontrolador se pondrá a masa.
y los diodos Zener D4/D5 son necesarios siempre, y las resistencias depende del caso. En el cuadro se muestran las distintas posibilidades. Las placas se suministran sin las resistencias R17/R21, y R16/R18 son de 0 �, de modo que puede conectarse directamente un interruptor o pulsador mecánico. R24 y R25 son resistencias de pull-up opcionales; no obstante, las que ya incorpora el controlador AVR internamente son suficientes para un funcionamiento correcto. Software
El hecho de utilizar un Atmega328 no ha sido coincidencia, pues ya ha dado buenos resultados en el nodo experimental del ElektorBus. Y ya que es compatible con el ATmega88 utilizado en la serie de artículos del bus [5] podemos servirnos del mismo software, aunque ligeramente modificado. Es posible generar un código reutilizable y perso nalizable fácilmente basándonos en la “Librería de Firmware Embebido” (o EFL) [6], la cual ya incorpora un módulo para la comunicación con el
ElektorBus (figura 4). Aparte, la EFL ya dispone de un archivo de controlador para el Atmega328, y los bloques periféricos como el driver RS485, el LED y el pulsador se conectan a los mismos pines que en el nodo experimental, para el cual también existe un archivo de placa por defecto en la EFL. En este archivo de inicialización de la placa podríamos prescindir del segundo LED, el segundo pulsador y el conector de expansión (ya que no existen en la placa del motor paso a paso). Hemos preparado otro archivo en caso de que sólo queramos incorporar el driver del motor paso a paso como bloque periférico, y que puedan desarrollarse aplicaciones personalizadas independientes del hardware. Pero ya que hemos planificado placas adicionales con más funciones para el ElektorBus, para este caso he aquí una mejor forma de hacerlo. Los periféricos comunes en todas las placas del ElektorBus, por ejemplo el driver RS485, el LED y el botón de test, se encuentran en un archivo llamado “BoardEFL.h/.c”, que hemos colocado junto con el resto del código en el subdirectorio
www.elektor-magazine.es | julio / agosto 2013 | 45
Proyectos
•
APLICACIÓN MOTOR PASO A PASO
N Ú M O C
LED BUTTON
ELEKTORBUS
EXTENSIÓN MOTOR PASO A PASO ELEKTORBUS CORE
Figura 4. El firmware estará listo rápidamente gracias a los módulos de software de la EFL.
LIBRERÍAS
UART
CAPA DE PLACA
CONTROLADOR
EFL CAPA DE HARDWARE
(ATMEGA 328)
HARDWARE 120509 - 15
EXTENSION
ELEKTORBUS CORE
ALIMENTACIÓN MOTOR
REGULADOR RELÉ DE SEGURIDAD
12V ELEKTOR BUS
5V
RS485
Figura 5. La placa está separada (virtualmente) entre el núcleo del ElektorBus y un módulo de expansión. Este mismo código sirve para el resto de placas del ElektorBus.
M
CONTROLADOR DE MOTOR PASO A PASO
MCU
ATMEGA328
MOTOR PASO A PASO
de MODE no se utiliza en el software). Aparte introducimos un bloque para el relé de seguridad y otro para el interruptor de posición. Ahora, todo esto será independiente del hardware utilizado. Ya no tendremos que volver a recordar los pines del controlador, sino únicamente el tipo de bloque periférico y su número. Aunque ahora podamos operar con las tres señales EN, CLK y DIR independientemente del cableado de la placa, no podemos dar por hecho que cualquier driver de motor paso a paso pueda ser controlado mediante dichas tres entradas. Con el fin de que los desarrolladores no tengan que estudiarse una y otra vez las hojas de datos, y el código siga siendo independiente del hardware, en el archivo de expansión se han implementado algunas funciones de bajo nivel para motores paso a paso. Por ejemplo, de esta manera es posible fijar el sentido según el parámetro Direction sea 0 o 1:
(VIRTUAL) EXTENSION PORT INTERRUPTORES DE POSICIÓN
void StepperMotorDirection(uint8 Stepper-
BOTÓN DE LED DE PRUEBA PRUEBA 120509 - 16
MotorBlockIndex, uint8 Direction)
O avanzar el motor un paso: “ElektorBusCore”. Las funciones especiales de la placa, como el driver del motor paso a paso, se inicializan en un archivo adicional (“ExtensionEFL.h/.c” en el subdirectorio “ElektorBusStepperMotor”). El ATmega328 está conectado mediante un puerto de expansión virtual con el driver del motor paso a paso. En la figura 5 se ha representado el esquema electrónico. Código del motor paso a paso
En [2] puede descargarse el código fuente correspondiente. En este caso, el proyecto EFL se llama ElektorBusStepperMotor, y al hacer click en ElektorBusStepperMotor.atsuo se abrirá en Atmel Studio. En el directorio de proyecto “Hardware” podremos ver el archivo de placa BoardEFL.h/.c, con inicialización de las funciones del núcleo del ElektorBus y el conector de expansión (virtual). En el archivo de expansión se encuentra la función Extension_Init(), a la cual se realiza una llamada en el inicio de la aplicación. Esta función incluye un bloque periférico para el driver del motor paso a paso. En la tabla con la asignación de pines (incluida en la documentación de la EFL [6]) hemos de introducir los tres pines del puerto de expansión, para las señales EN, CLK y DIR (la señal
46 | julio / agosto 2013 | www.elektor-magazine.es
void StepperMotorStep(uint8 StepperMotorBlockIndex, uint8 MillisecondsDelay)
Esta última función de paso congela la ejecución del programa. Para aplicaciones más profesionales hemos implementado una función que permite controlar el motor con un timer. Ésta espera un array como parámetro, que codifica una rampa con los valores de la velocidad. El motor empieza lentamente, y poco a poco va ganando velocidad hasta alcanzar un valor máximo; al final la rampa funciona a la inversa, es decir, se va reduciendo hasta detener el motor (importante: en este modo, sin embargo, no es posible leer el estado de los interruptores de posición). Primero hemos de inicializar el timer con... void StepperMotorTimerSetup(uint8 StepperMotorBlockIndex, uint8 MillisecondsDelay)
...indicando los milisegundos por paso se define la velocidad mínima del motor. La función utiliza el primero de los timers de 16 bits del controlador sin utilizar. Con la función...
driver de motores
void StepperMotorTimerSteps(uint8 StepperMotorBlockIndex,
uint16
Steps,
uint8* RampData, uint8 RampMax, uint8 StepsShiftForNextRampIndex)
...se inicia el modo controlado por timer. RampData y RampMax describen la rampa, un valor de 128 en el array estipula la velocidad mínima, y los valores más pequeños representan velocidades mayores. Con la variable StepsShiftForNextRampIndex podemos determinar tras cada cuantos pasos debe saltarse al siguiente valor de velocidad de la serie. El número de pasos es dos elevado a este valor, por ejemplo, un valor de 2 significa que para cada velocidad se avanzan 4 pasos. Una vez recorridos todos los valores del array, éste seguirá funcionando a velocidad constante, y a la hora de detenerse se utilizarán estos mismos valores del array pero en orden inverso. Las funciones de bajo nivel en la capa de hardware ahorran al desarrollador bastante trabajo. Lo único que falta es codificar una función para leer los interruptores de posición, y realizar la calibración necesaria para los movimientos del motor. Hemos incluido el código para estas funciones en una pequeña librería para motores paso a paso, que se encuentra sobre el interfaz de bajo nivel descrito anteriormente. Como siempre sucede con la EFL, el código puede utilizarse para controlar distintos bloques periféricos del mismo tipo, en este caso hasta ocho drivers para motores paso a paso en una misma placa. El código fuente (StepperMotorEFL.c) se encuentra en el directorio de proyectos “Libraries”. Así mismo, podemos descargar la documentación de Doxygen en un Zip [2], que incluye descripciones de las funciones disponibles. Pequeña demostración
Para probar y demostrar el diseño hemos construido un sencillo sistema utilizando un motor paso a paso de 12 V (Nanotec SP2575M0206-A), un indicador de posición y dos interruptores de final de carrera (ver la figura 6). La placa del motor paso a paso está conectada al ElektorBus gracias al conocido conversor RS485/USB y este a su vez a un PC. El verdadero código de la aplicación se encuentra en el archivo principal de nuestro proyecto (ElektorBusStepperMotor.c). La función principal del EFL y la inicialización de LED y el botón, el puerto UART y la librería del ElektorBUS en la
función ApplicationSetup() están descritos fuera [6][7]. Mediante... StepperMotor_LibrarySetup(SwitchEventCallback, 0, 0);
Figura 6. Demostración con interruptores de posición. La placa del motor paso a paso se conecta al PC mediante un conversor RS485/USB.
...inicializamos la librería del driver para el motor paso a paso. El primer parámetro nombra la función en el código de aplicación a la que ha de llamarse cuando se activa uno de los interruptores de final de carrera. En nuestro caso hemos implementado esta función (un poco más abajo en el programa principal) de forma que el LED de la placa haga toggle. Los parámetros adicionales (0, 0) establecen los números de bloque que relacionan el driver del motor, el interruptor de posición y el relé de seguridad. En nuestro caso el bloque de interruptor #0 y el bloque de relé #0 se corresponden con el primer driver de motor #0, pero en principio esto podría ser distinto en otras placas. Cuando el usuario presiona el botón de la placa se lleva a cabo una calibración automática. Primero el motor gira en una dirección hasta que se activa un interruptor de posición; después va en sentido contrario hasta activar el otro interruptor. Después se memoriza el número de pasos entre ambas posiciones. La función de la librería StepperMotorCalibration() determinará ahora en qué sentido gira el motor según el bit de “direction” sea 1 o 0, y de nuevo se almacena esta información. Una vez calibrado, el motor podrá moverse a la posición deseada utilizando un valor entre 0 y
www.elektor-magazine.es | julio / agosto 2013 | 47
Proyectos
•
1023, que representan los finales de carrera. Una llamada a... StepperMotor_GotoMotorPosition(0, 512, 4);
...hace que el motor paso a paso gire hasta la posición central, con una duración por paso de unos 4 ms. Naturalmente nos gustaría controlar el motor desde el ElektorBus. Es bastante fácil diseñar un panel de control en HTML que se ejecute en el ElektorBus Browser en el PC, y que el mismo interfaz de usuario pueda funcionar en un smartphone o tableta con Android [8][9]. El archivo HTML puede encontrarse en el directorio UIBus,
y puede arrastrarse sencillamente desde el directorio de descarga al escritorio. El resto del procedimiento nos resultará familiar: iniciamos ElektorBusBrowser.exe, seleccionamos el puerto COM correcto, hacemos click en “Connect” e iniciamos el planificador. Los botones en HTML enviarán los mensajes del ElektorBus desde el PC a la placa del motor paso a paso, y la posición de giro del motor puede fijarse con un valor de 10 bits en channel 0. En el firmware la librería del ElektorBus recibirá estos mensajes y llamará a la función ProcessPart(). Ésta procesa las partes del mensaje entrante y hace que el motor avance hasta la posición deseada.
Lista de materiales Resistencias: (0805, si no se especifica otra) R1 = 0 Ω R2, R12, R15 = 39 kΩ R3 = 680 Ω R4 = 100 Ω R5, R23 = 100 kΩ R6 a R11 = 1R0 (Vishay CRCW25121R00FKEG) R13, R19, R20 = 10 kΩ R14 = 10 Ω R16, R18 = 0 Ω (ver cuadro de texto) R17, R21 = no montado (ver cuadro de texto) R22 = 120 Ω R24, R25 = 10 kΩ opcional (ver cuadro de texto) R26 = 4k7 P1 = potenciómetro de 10 kΩ (POT4MM-2)
Condensadores:
rpc b s e
t o
k e
l
e
.
w w w
r
v c
i
e
. c
o m
(0805, si no se especifica otra) C1 = 68 µF / 10 V, tántalo (AVX TPSB686K010R0600) C2 = 470 µF / 35 V, electrolítico (Panasonic EEEFK1V471AQ) C3, C5, C8, C12 = 10 nF C4 = 1000 µF / 50 V, electrolítico (Panasonic EEVFK1H102M) C6 = 68 nF C7 = 220 nF C9 = 5n6 C10, C11 = 1 nF C13, C14, C17 = 10 µF / 6V3 (AVX TCJA106M006R0300) C15, C16 = 100 nF C18, C19 = 22 pF
Inductancias: L1 = 47 µH (744773147)
48 | julio / agosto 2013 | www.elektor-magazine.es
Semiconductores: D1 = Schottky 1 A / 60 V (B160-13-F) D2, D3, D6 = diodo 1N4148 D4, D5 = diodo Zener 5V1 (BZX384-B5V1) T1 = BC849B, SOT-23 LED1 = LED verde (5988270107F) IC1 = LM2675M-5.0 IC2 = L6208D (SO24) IC3 = ATmega328P-AU IC4 = LT1785CS8
Varios: JP1 = conector tipo pin-header de 2x3 pines, 2,54 mm JP2, JP3 = conector tipo pin-header de una fila, 2,54 mm K1 a K9 = clema de tornillos para montaje sobre placa, 5,08 mm Rel1 = relé SPDT (Omron G5LA145DC) S1 = pulsador (Omron B3S-1000) X1 = oscilador de cuarzo de 16 MHz, 50 ppm, 16 pF (Epson Toyocom FA-365) Placa referencia 120509-1
driver de motores
Como siempre, esta demo sólo está pensada como punto de partida para nuestros propios experimentos. Una buena aplicación práctica sería el control automático de un estor o una persiana veneciana para regular la luz ambiente, oscureciendo (parcialmente) la habitación cuando entra demasiada luz. En anteriores entregas hemos presentado el hardware y el software de un sensor de luz basado en el ElektorBus [6][10].
Enlaces de Internet
En la próxima entrega iremos más allá, presentando la esperada placa Xmega-Webserver, que cuenta también con un puerto RS485 y es ideal para realizar otras aplicaciones interesantes del ElektorBus.
[6] www.elektor.es/120668
(120509)
[1] www.mci.edu [2] www.elektor.es/120509 [3] www.st.com/st-web-ui/static/active/en/ resource/technical/document/datasheet/ CD00002294.pdf [4] www.elektor.es/110258 [5] www.elektor.com/elektorbus
[7] www.elektor.es/130154 [8] www.elektor.es/110405 [9] www.elektor.es/120097 [10] www.elektor.es/110428
Publicidad
Todo un laboratorio de electrónica en un solo dispositivo USB Con NI myDAQ, tu ordenador se convierte en el instrumento. Al instalar el controlador de hardware NI ELVISmx dispondrás de: Multímetro Digital, Osciloscopio, Generador de Funciones, Analizador Bode, Analizador de Señales Dinámicas, Generador de Forma de Onda Arbitraria, Generador de Salidas Digitales y Lector de Señales Digitales. Ocho instrumentos de ingeniería para trabajar como y donde tu quieras.
¡NI myDAQ por solo 149 Euros! (incluyendo licencias de estudiante de LabVIEW y Multisim)
Contenido del paquete: Dispositivo NI myDAQ, DVD de instalación que contiene NI ELVISmx y NI DAQmx, así como las versiones para estudiante de LabVIEW y Multisim con sus licencias correspondientes, Cable USB, Puntas de prueba para el multímetro, Cable de audio (3,5 mm), Conector de tornillos con destornillador NI, Tarjeta informativa de iniciación, Tarjeta informativa de programas de ejemplo de TI, Bandeja de almacenamiento reutilizable.
Más información y pedidos en: www.elektor.es/myDAQ ¡Atención! Para poder adquirirl NI myDAQ deberás acreditar tu condición de estudiante.
www.elektor-magazine.es | julio / agosto 2013 | 49
Proyectos
•
8 Relés... y mucho más Módulo de ampliación para placas con Linux Benedikt Sauter [1] y Jens Nickel
En la edición de Abril presentábamos un módulo de expansión para la placa Linux de Elektor, y por aquel entonces mencionábamos que ésta también podía conectarse a otra placa controladora. Los desarrolladores de Embedded Projects no se han dormido en los laureles, y han concebido otras placas de expansión que están disponibles a través de Elektor. Como aperitivo, presentamos una placa con ocho relés.
Figura 1. Módulo de relés.
El módulo de relés ( figura 1), al igual que la placa de expansión, se controlan mediante el conector de 14 pines Gnublin. Este “Embedded Extension Connector” se encuentra también en la placa servidor web Xmega de Elektor (en la próxima edición), y otras placas que están en marcha. La placa de expansión es apta para principiantes que (aún) no se manejen muy bien en Linux, pero lógicamente también para usuarios avanzados que prefieran desarrollar sus aplicaciones en “bare metal“ (es decir, sin ayuda de ningún sistema operativo). La placa de relés es obra de “Embedded Pro jects”, al igual que la placa Linux de Elektor, de las manos de Benedikt Sauter. Pertenece a una serie de placas de desarrollo (ver cuadro), compatibles con el conector nombrado anteriormente, el cual dispone de pines para el SPI, I2C, PWM, entradas analógicas y entradas/salidas digitales.
50 | julio / agosto 2013 | www.elektor-magazine.es
En el laboratorio de Elektor se ha diseñado un módulo que se comunica gracias a un conector de expansión de 10 pines ( Embedded Communication Connector ) para el UART/TTL (véase el cuadro). Al final tenemos una especie de “zoo” de placas controladoras y de expansión que pueden combinarse de forma flexible. ¡A los aficionados a los microcontroladores les espera un segundo semestre cargado de sorpresas! Placa de relés
En la figura 2 se muestra el esquema del circuito de la placa de relés. Al igual que en la placa Linux de Elektor, un extensor conectado por I2C, el PCA9555 (IC1), aumenta el número de salidas digitales a 16, de las cuales utilizaremos 8. La dirección del componente I2C puede fijarse mediante los puentes K9 a K11. Con K13 y K14 se activan las resistencias de pull-up para el bus I2C.
microcontroladores
+5V
+5V
R8
+3V3
+5V
R9
X1.A D1
R 0 7 2
K1
1 2
LED2
X1.B D2
R 0 7 2
K2
3 4
LED3
L4
BAT54
4uH7 1 6
BAT54 T1
SW
5
VOUT
VIN
T2
R1
R24 R2
IC2
R 0 7 2
k 6 7 9
MCP1640BT 3
- I/CHY EN
R22
GND C3
2
C4
4u7
k 9 0 3
+5V
4u7
+5V
R10
+3V3
+3V3
GPIO11 SPI SCK
13
12
11
10
9
8
7
6
5
4
3
2
1
SPI MISO
PWM DATA GPA1
K3
1
GPIO14
R4
2 k 2
SYSCLOCK O
C2
4u7
100n
4
BAT54 T3
T4
R6
K13 1 K14 24
GPA0
I/O0.0 22
I2C SCL
23
SCL
I/O0.1
SDA
I/O0.2 I/O0.3
+3V3
I/O0.4 I/O0.5 I/O0.6
K9 1
IC1
I/O0.7
I/O1.0 21 A1
2
K11 1
3
A0
I/O1.1
A1
I/O1.2
A2
I/O1.3
A2
I/O1.4 I/O1.5 1
INT
I/O1.6 I/O1.7
R15
BSS123
k 0 1
4 5 6 7
+5V
+5V
8 9 R14
10 11
PCA9555D
A0
K10 1
R7
BSS123
k 0 1
GPA3
13
K5
1
X3.B D6
R 0 7 2
2
LED6
14
R16
X3.A D5
R 0 7 2
K6
3 4
LED7
BAT54
BAT54
15 T5
16
T6
17 18
R12
19 20
R13
BSS123
k 0 1
BSS123
k 0 1
VSS
k 0 1
12
+5V
+5V
R19
R20
X4.A D7
R 0 7 2
K7
1 2
LED8
BAT54 K1...K8 = G6D-1A-ASI5VDC
X4.B D8
R 0 7 2
K8
3 4
LED9
BAT54 T7
R17 k 0 1
Figura 2. Circuito del módulo de relés.
3
2 k 2
SPI MOSI 1
C1
K4
LED5
BAT54 R3
X2.B D4
R 0 7 2
2
LED4
VDD I2C SDA
R11
X2.A D3
R 0 7 2
K12 14
BSS123
k 0 1
4
VFB
LED1
R5
BSS123
k 0 1
T8
R18
BSS123
k 0 1
BSS123
130157 - 12
www.elektor-magazine.es | julio / agosto 2013 | 51
Proyectos
•
Módulo de amplicación para el Gnublin/Embedded Extension Connector (opciones disponibles) 8 relés (130212-91) Display para texto, 4x20 (130212-92) Driver para motor paso a paso (130212-93) Extensor de E/S (130212-94) Sensor de temperatura (130212-95) Placa de distribución “Bridge Module” (130212-71) Adaptador para Raspberry Pi “GnuPi” (130212-72) En Elektor están disponibles éstas y otras placas. Los componentes SMD siempre vienen montados, y los componentes clásicos se suministran en un kit, para montarlos nosotros mismos [2].
Adaptador para Raspberry Pi La placa adaptadora para Raspberry Pi “GnuPI” hace que el sistema sea aún más versátil, pues permite conectar la Raspberry Pi, obteniendo así más conectores para Gnublin/EEC [2]. De esta manera todas las placas de expansión mostradas pueden conectarse con la conocida plataforma RPi. Un consejo: la API para C/C++ de Embedded Projects también puede utilizarse para la Raspberry Pi. Para convertir una aplicación de Gnublin/Placa Linux de Elektor en una para Raspberry Pi basta con cambiar una línea de código: #define BOARD_GNUBLIN
➞
#define BOARD_RASPBERRYPI
Módulo de ampliación para el Embedded Communication Connector Puerto RS485 (en desarrollo) Puerto RS232 (próximamente) Módulo de radio a 433 MHz (en desarrollo) Bluetooth mediante BTM-222 (próximamente) WLAN mediante WizFi220 (próximamente) USB mediante BOB (próximamente) Más información en la página de Elektor.LABS [8].
52 | julio / agosto 2013 | www.elektor-magazine.es
Las salidas digitales IO 0.0 a IO 0.7 del extensor de puertos controlan cada una un FET, que a su vez activa un relé. Se utiliza un LED para cada una, a modo de indicador. El conector Gnublin/Embedded Extension Connector dispone de un pin de alimentación a 3,3 V, que se encarga del suministro energético para placa de expansión. Para generar la tensión de 5 V necesaria para la bobina del relé necesitaremos un convertidor boost (IC2). Para conectar la placa controladora y la de relés se utiliza un cable plano. Los desarrolladores de Embedded Projects ya han considerado la posibilidad de poder conectar varias placas de expansión a la vez; en Elektor ta mbién está disponible una placa de distribución (figura 3) [2]. API para C/C++
En [3] y [4] ya mostrábamos cómo conmutar las salidas del extenor de puertos integrado en Linux. Pero ahora hay otra posibilidad aún más fácil. Benedikt Sauter y sus colegas han desarrollado una API completa para C/C++, con la cual las placas de expansión pueden controlarse cómodamente. Las funciones pueden utilizarse en nuestros propios programa s, pero también dispone de una serie de pequeñas herramientas para la línea de comandos. Daremos más detalles en próximas ediciones, en las que también presentaremos otras placas de expansión. En los listados podemos ver un aperitivo de la API para C/C++. El listado 1 muestra cómo acceder fácilmente a las entradas y salidas digitales de la placa Linux de Elektor. En el listado 2 se detalla cómo leer valores en una entrada analógica. Por último, en el listado 3 puede verse cómo utilizar la placa de relés. La nueva API [5] permite adentrarse en el mundo de Linux embebido fácilmente, aunque seamos principiantes; no requiere conocimientos de conceptos complejos en C, como por ejemplo los punteros. Para los nombres de las funciones, el autor se ha inspirado en las de Arduino. Lógicamente, los curiosos pueden echarle un vistazo al código fuente [ 6]. Debian para la placa Linux de Elektor
El sistema Gnublin-Linux se ha ampliado no sólo con nuevo hardware, sino también con esta actualización de software. Quien lo desee tam-
microcontroladores
Listado 1: Controlando salidas digitales con la placa Linux de Elektor. #define BOARD_GNUBLIN #include “gnublin.h” int main() { gnublin_gpio gpio;
Figura 3. Placa de distribución.
gpio.pinMode(3,OUTPUT);
while(1){
gpio.digitalWrite(3,HIGH);
sleep(2);
gpio.digitalWrite(3,LOW);
sleep(2); }
}
bién puede incorporar Debian a su placa Linux de Elektor (en lugar del sistema de archivos ELDK). Independientemente de si disponemos de la versión de 8 MB de la placa o la de 32 MB, Debian puede instalarse fácilmente en la tarjeta SD; en Internet puede encontrarse una buena guía [7]. (130157)
Listado 2: Lectura de un valor en una entrada analógica. #define BOARD_GNUBLIN #include “gnublin.h” int main() { gnublin_adc ad;
while(1){ printf(“AD value %i \n”,ad.getValue(1));
Enlaces [1]
[email protected]
} }
[2] www.elektor.es/gnublin [3] www.elektor.es/120596 [4] www.elektor.es/120518
Listado 3: Control de la placa de relés.
[5] http://wiki.gnublin.org/index.php/API
#define BOARD_GNUBLIN
[6] https://github.com/embeddedprojects/ gnublin-api
#include “gnublin.h”
[7] http://wiki.gnublin.org/index.php/ GNUBLIN-Elektor
int main() { gnublin_module_relay relay;
[8] www.elektor-labs.com/ECC relay.setAddress(0x24); relay.switchPin(4, ON); sleep(2); relay.switchPin(4, OFF); }
www.elektor-magazine.es | julio / agosto 2013 | 53
Proyectos
•
Controlador de Iluminación Ambiental Crear ambiente con LED RGB Actualmente se pueden adquirir las tiras de
Goswin Visschers (Holanda)
LED de colores en todo tipo de versiones y medidas por un precio asequible. Con este circuito controlador puedes componer y reproducir tus propios colores e incluso programas completos de luces. Gracias a la alimentación por baterías también se puede utilizar el controlador en lugares donde no hay un enchufe a mano. Inicialmente este circuito fue diseñado para controlar tiras de LED de colores de un famoso fabricante sueco de muebles. Las tiras de LED de colores de esta marca se suministran con un controlador sencillo. Con él puedes configurar manualmente un número limitado de colores. Esta limitación ha impulsado al autor a diseñar su propio controlador con más posibilidades. Este controlador de iluminación ambiental es apto para todos los LED RGB y tiras de LED RGB que mediante resistencias en serie pueden funcionar a una tensión de 12 V. Como el autor no pudo disponer de una fuente de alimentación en el sitio donde había ubicado las tiras de LED, este controlador funciona con una batería de 12 V tipo gel. Las características del circuito se pueden ver en el recuadro. Esquema
Como se puede ver en la figura 1, el diseño del esquema es sencillo. Para el controlador se optó por un PIC16F887 debido a la EEPROM integrada en la que se puede guardar los pro-
54 | julio / agosto 2013 | www.elektor-magazine.es
gramas de luces de forma sencilla, sus amplias posibilidades de E/S y el ADC integrado. Aunque se emplea más frecuentemente el 16F877A, se optó por su hermano debido a una configuración específica del ADC (2 entradas ADC en RA0 y RA1 sin tener que utilizar las entradas de tensión de referencia en RA2 y RA3). RC3 está conectado al interruptor S1. Con ello se puede mostrar la capacidad de la batería en el LCD de 2 formas diferentes. El conector K6 es el conector ICSP para la programación en circuito del microcontrolador. El cristal X1 provee al microcontrolador de una señal de reloj de 20 MHz. Esta velocidad ‘alta’ de reloj es necesaria porque el controlador la divide internamente por 4. Los 5 MHz resultantes son imprescindibles para el regulador PWM realizado por software. El display (un tipo estándar de 2 x 16 caracteres, que también se puede adquirir a través de la tienda de Elektor) está conectado al puerto RB. Con la ayuda de un puente sobre J1 y J2 se puede cambiar la polaridad de la tensión de alimentación de la retroiluminación del LCD cuando se utilice otro tipo de LCD. T2 desconecta la iluminación después de haber dejado de manejar el controlador durante más de 10
regulador luces LED
Características • • • • •
• •
• • • •
Rango de la tensión de alimentación desde 11 hasta 15 V Compensación de la intensidad luminosa con una tensión de alimentación en disminución Display LC, 2 líneas con 16 caracteres Posibilidad de componer uno mismo 13 colores mediante valores RGB Programación de 3 programas luminosos que constan de 20 cambios de colores. El tiempo máximo de permanencia en un color es 255 s y el tiempo máximo de una transición a un color nuevo también es 255 s. Ambos tiempos se pueden configurar en pasos de 1 s. Ejecución continua de uno de los 3 programas Aviso acústico cuando la batería se ha descargado y desconexión automática de las tiras de LED Indicación LED de la carga de batería restante Circuito de carga de batería incorporado con conmutación automática de carga por goteo ‘Protección de niños’ para evitar que cambien la configuración de los colores o los programas. Posibilidad de controlar un controlador a través de un convertidor RS232/USB
Figura 1. El esquema del regulador de luces, con un PIC16F887 como elemento central.
+5V RE1.B R8
D1
F2
R2
R1 1R
K1
3A15 F
k 0 1
R10 k 0 1
R11
LCD1
k 0 1 R L C D D C C C N G G M V G P P
47R
5W
1N5400
R9 k 0 1
0W5
S2
1
2
3
4
k 1
5
A C 0 1 2 3 4 5 6 7 D D S C W B B B B B B B B E E S C O S / V V V R R E D D D D D D D D L L
+5V
Power
+12V
+5V
R21
LC DISPLAY 2 x 16
K6
CHILD LOCK
+5V
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
BACKLIGHT
+12V
J1
+5V
1
C10 P1 R3
K7
2A T
R6
k 0 1
100n 11 V DD 1
1
32
R22
V DD
RE3/MCLR/VPP
2 3 R4 C1
12V Battery
470u 16V
C2
C3
100n
C4 100u 16V
100n
C7
R7 C8
9 k 3
1u 16V
470n
D3
C9
9 k 3
4 5 6
1u 16V
7
1N4148 8 9 10
22
RD3
IC2
1N5400
RB0/AN12/INT
RA1/AN1/C12IN0– RA2/AN2/VREF–/CVREF/C2IN+ RA3/AN3/VREF+/C1IN+
RB1/AN10/C12IN3–
RB7/ICSPDAT
16 17 18
RC0/T1OSO/T1CK1
RD5/P1B
RC1/T1OSI/CCP2
20
40
RD4
RC6/TX/CK
RD1
RC7/RX/DT VSS
OSC1
12
13
OSC2 X1
5 1
C5
3 2
Submenu_2 BACK
ENC3
25
5
R20
26
k 1
4
1
31
BZ1
D5
+12V
4
28
VSS
14
Submenu_1
29
24
RD0
R19 k 0 1
ENTER
23
RC4 /SD I/ SDA
R18 k 0 1
ENC2
RC2/P1A/CCP1 RC 3/ SCK /SCL
R16 k 0 1
27
RC5/SDO 19
k 0 1
39
30
RD7/P1D RD6/P1C
15
R17
38
RB6/PICSPCLK
PIC16F887-I/P
BC547
37
RB5/AN13/T1G
RE1/AN6
+5V
36
RB4/AN11
RE0/AN5
T2
35
RB2/AN8
RA5/AN4
+5V
33 34
RB3/AN9/PGM/C12IN2–
RA4/T0CKI/C1OUT
R 7 4
21
RD2
RA0/AN0/ULPWU/C12IN0–
RE2/AN7
J2
10k
k 0 1
LM7805
D2
F1
R5
k 0 1
IC1
3 2
C6 20MHz
15p
+5V RE1.A
D4
4 R15
T3
5
2 R14 k 0 1
R13
R12
k 0 1
1
1
2
MODE SELECT
T4
k 0 1
K3
4
4
5
1
+5V
T5
2 3
3
2
+5V
USB Serial Bridge Module
4
1
3
S1
2
K2
3
BATTERY DISPLAY
1k
BC547
K8 MOD-110533 DIL
1
ENC1
1N4148 T1
15p
Menu
6
K4
7
3
8
4
9
CBUS4
+5V
CBUS3
VCC10
CBUS2
+3V3
CBUS1
GND
CBUS0
CTS
RESET
R1
DCD
RXD
DSR
TXD
DTR
RTS
D6
23
1N4148
22 21 20 19 18 17 16 15
1 2
K5
Elektor - 110533
3
3x IRL540NPBF
4
USB 110406 - 11
www.elektor-magazine.es | julio / agosto 2013 | 55
Proyectos
•
pc b s
r t o k
e l e
.
w w w
e
r
v c
i
e
. c
o m
Figura 2. La placa contiene también elementos de mando y el LCD.
s. Con P1 se puede ajustar el contraste. Aquí se emplea un control mediante 8 bits en vez de 4 bits al contrario de la mayoría de los circuitos con LCD. Esta es simplemente una elec-
Lista de materiales Resistencias: R1 = 47 Ω/0,5 W R2 = 1 Ω/5 W R3,R5,R6,R8...R14,R16...R19 = 10 kΩ R4,R7 = 3k9 R15,R20,R21 = 1 kΩ R22 = 47 Ω P1 = 10 kΩ de ajuste, horizontal
Condensadores: C1 = 470 �F/16 V radial C2,C3,C10 = 100 nF C4 = 100 �F/16 V radial C5,C6 = 15 pF C7 = 470 nF C8,C9 = 1 �F/16 V radial
Semiconductores: D1,D2 = 1N5400 D3,D4,D6 = 1N4148 T1,T2 = BC547B T3,T4,T5 = IRL540 (International Rectifier, código Farnell 8651078) IC1 = LM7805 IC2 = PIC16F887 (programado, EPS 110406-41) D5 = LED rojo, 3 mm
56 | julio / agosto 2013 | www.elektor-magazine.es
ción; después de todo el controlador dispone de suficiente E/S. Un regulador por ancho de pulsos determina la intensidad de los colores de los LED conecta-
Varios: X1 = cristal de cuarzo de 20 MHz F1 = fusible de 2 A T con porta-fusibles para placa F2 = fusible de 3,15 AT con porta-fusibles para placa BZ1 = zumbador de corriente continua (con oscilador incorporado) RE1 = relé SPDT de 12 V, corriente de conmutación 2 A mínimo (por ejemplo Finder 40.31.7.012.0000, código Farnell 1169158) MOD1 = Elektor convertidor USB/Serie BOB-FT232R [1] S1,S2 = interruptor deslizante acodado para placa (por ejemplo C&K OS102011MA1QN1, código Farnell 1201431) S3,S4,S5 = codificador rotativo con pulsador incorporado (por ejemplo Alps EC12E2424407, código Farnell 1520813) K1,K7 = clema de 2 vías para placa, paso 5 mm K2,K3,K4,K5 = conector de 4 vías, paso 2,54 mm K6 = conector de 5 vías, paso 2,54 mm LCD1 = LCD 2x16 caracteres, con retroiluminación (por ejemplo Elektor 120061-71)) J1,J2 = tira de 3 pines con puente, paso 2,54 mm Zócalo de 40 terminales para IC2 Placa 110406-1, de venta en [2]
regulador luces LED
dos. Aunque el controlador dispone de suficientes salidas PWM, el autor no las utiliza para facilitar el trazado de la placa de circuito impreso del prototipo. Por eso se programó el PWM en software. El control de los LED se hace con T3, T4 y T5, MOSFET de potencia que conmutan a nivel TTL. Las tiras con LED RGB (4 unidades máximo) se conectan a los conectores K2...K5. Cada FET puede suministrar fácilmente varios amperios sin necesidad de una refrigeración adicional. Bz1 es un zumbador con oscilador incorporado. Así que el suministro de tensión de alimentación es suficiente para que haga ruido. Para su manejo se utilizan 3 codificadores rotativos con pulsador incorporado. RA0 y RA1 del microcontrolador sirve de entradas para la conversión A/D. RA0 mide la tensión de la batería y RA1 detecta cuando se conecta un cargador de baterías y la tensión de este es superior a unos 4 V. Los divisores de tensión R5/ R4 y R6/R7 reducen las tensiones de tal forma que entran en el rango de medición del controlador. C8 y C9 eliminan el rizado en la medida que se necesite. En el esquema también se puede ver un módulo serie/USB (Elektor BOB, número de artículo 110553-91 [1]), que se encarga de una eventual conexión con el PC. Con la ayuda de varios comandos en un programa terminal, se puede controlar el circuito a distancia (ver el manual de uso que puede ser descargado de forma gratuita [2]. La estabilización de la tensión de alimentación se hace con un clásico 7805, con unos condensadores (IC1, C1...C4) y un diodo (D2) para la protección de la polaridad. El valor del fusible F1 incorporado en el regulador depende de la carga. Si se usan tiras de LED de 2 m es suficiente un fusible de 2 AT, pero habrá que verificar esto para cada caso. Por supuesto que debes hacerlo cuando todos los colores iluminen a intensidad máxima. Al conector K7 se conecta la batería tipo gel, en K1 el adaptador de red que tiene que poder suministrar unos 15 V (2 A mínimo). El transistor T1 controla el relé RE1, que a su vez puentea la resistencia R1 cuando tiene que cargar la batería. El tipo de relé no es crítico mientras sus contactos puedan conmutar a más de 2 A y la tensión de la bobina ascienda a 12 V. Puedes leer más sobre su funcionamiento en el apartado ‘Manejo’. El propio circuito sólo consume unos 25 mA durante el uso, con el LCD retroiluminado incrementa a unos 50 mA.
Placa
La figura 2 muestra la placa de circuito impreso del controlador de luces diseñada en el laboratorio de Elektor. Solo se han utilizado componentes de montaje convencional, de modo que también para los soldadores menos experimentados es fácil de hacer. Todos los componentes se montan en la cara de los compontes. Con un alicate plano se doblan los terminales del estabilizador y los MOSFET, de modo que después de soldarlos queden pegados a la placa. Estos componentes no necesitan disipadores para un uso normal. Lo mejor es colocar el microcontrolador (preprogramado) en un zócalo. Si quieres utilizar la comunicación serie con el PC, habrá que colocar también el convertidor USB/Serie BOB-FT232R. Puedes montarlo directamente sobre la placa o colocarlo sobre dos filas de conectores SIL de 9 terminales. Software
El programa del circuito está escrito en ANSI C con ayuda de MPLAB y está compilado con el compilador C de Hi-Tech completamente funcional en modo de evaluación (válido por 45 días). En este caso la versión ‘lite’ del compilador no es suficiente porque no proporciona suficiente optimización. Por tanto el ejecutable es demasiado grande para la memoria de 8 kB del microcontrolador. Desde la web de Elektor [2] se puede descargar de forma gratuita el código fuente y hex igual que el diseño de la placa de circuito impreso. Como de costumbre también se puede pedir el controlador preprogramado en Elektor. La parte más importante del software es la ISR (Interrupt Service Routine o Rutina de Servicio de Interrupción). Esta rutina ha sido optimizada con ayuda de la función stopwatch de MPLAB para que se ejecute lo más rápidamente posible. La ISR está dividida en varios trozos de código que pueden ser ejecutados cada 100 �s, 5 ms, 100 ms ó 1 s. Cada 100 �s se llama a la ISR, que con ayuda de contadores se encarga de que se ejecute algo en los otros momentos citados. Para ahorrar memoria se utilizó, en primera instancia, un contador que determinaba los momentos de 1 ms y 100 ms. Durante cada llamada de interrupción (cada 100 �s) se calculaba el módulo (el resultado es la resta de una división). Si el resultado era 0 había pasado 1 ms. Durante la depuración con el stopwatch resultó que el cálculo del módulo requería tanto tiempo que era
www.elektor-magazine.es | julio / agosto 2013 | 57
Proyectos
•
Listado 1 fade_step_red = current_red_value - next_red_value; fade_step_green = current_green_value - next_green_value; fade_step_blue = current_blue_value - next_blue_value; fade_step_red = fade_step_red * 100; fade_step_green =
fade_step_green * 100;
fade_step_blue = fade_step_blue * 100; fade_step_red = fade_step_red / fade_time; fade_step_green =
fade_step_green / fade_time;
fade_step_blue = fade_step_blue / fade_time;
Listado 2 tmp_red_value = fade_tmr * fade_step_red; tmp_green_value = fade_tmr * fade_step_green; tmp_blue_value = fade_tmr * fade_step_blue; tmp_red_value = tmp_red_value / 100; tmp_green_value = tmp_green_value / 100;
divide el resultado con el tiempo de la transición. A continuación incrementa o decrementa cada valor en cada paso durante el tiempo de la transición (en este caso el tiempo de transición se expresa en pasos de 100 ms). El resultado de esta división puede ser un número con muchas cifras detrás de la coma, así que hay que utilizar una variable tipo float para calcular y guardar el número. Los microcontroladores PIC16F son sólo micros de 8 bits, así que el compilador tenía mucha dificultad con las variables tipo float ‘grandes’. Esto resultó en problemas de temporización y fallos en el código compilado. La solución para eso fue relativamente sencilla: La multiplicación y división de enteros requiere menos tiempo y menos memoria que en coma flotante. Así que la diferencia de los valores PWM de cada color se multiplica primero por 100 antes de dividir los por el tiempo de la transición. Mira el código del Listado 1.
tmp_blue_value = tmp_blue_value / 100; red_value = next_red_value + tmp_red_value; green_value = next_green_value + tmp_green_value; blue_value = next_blue_value + tmp_blue_value;
más sensato utilizar un contador adicional para determinar los intervalos de 1 ms. La regulación automática de la iluminación funciona de la siguiente manera: La frecuencia normal del PWM es 100 Hz a 11 V. En caso de que la tensión de la batería sea mayor que 11 V significaría que los LED se iluminan más intensamente con el mismo ciclo de trabajo. La adaptación del ciclo de trabajo a la tensión de la batería significa que para cada color hay que calcular un nuevo ciclo de trabajo. Sin embargo un método más sencillo es mantener igual el tiempo del ‘encendido’, pero bajar la frecuencia del PWM con una tensión más alta. Por este motivo sólo hay que ejecutar el cálculo una única vez para el mismo resultado. La diferencia entre una frecuencia PWM de 100 HZ ó 90 Hz no es visible. Otro trozo de software que causó quebraderos de cabeza al programador fue el código de fundir los colores. En realidad el cálculo es muy sencillo: Toma el valor actual PWM de cada color, calcula la diferencia con el valor PWM del paso siguiente y
58 | julio / agosto 2013 | www.elektor-magazine.es
Cada paso de transición (cada 100 ms) se calcula el valor PWM actual. Finalmente se divide por 100. El resultado es un entero ‘redondeado’ a 2 decimales, sin números detrás de la coma (Listado 2). Gracias a esta solución podemos fundir colores sin mayores problemas de prestación con un microcontrolador de 8 bits. Manejo
Después de conectar el controlador aparece su nombre y número de versión en el display, 1 segundo más tarde está disponible el menú. El manejo del circuito es muy intuitivo, pero también está disponible como descarga gratuita un amplio manual en inglés [2]. Puedes pasar por el menú mediante el codificador rotatorio ENC1. Primero están los 3 menús ‘ Run Program
’ ( x desde 1 hasta 3) para la ejecución de programas preprogramados. Selecciona uno de los 3 programas y pulsa ENTER (pulsador de ENC2). Puedes volver al menú pulsando BACK (pulsador de ENC3). La opción de menú ‘ Charge Battery’ se encarga de la carga vigilada de la batería. Conecta un cargador de 15 V y selecciona después esta opción. Ahora se accionará el relé, de modo que se puentee la resistencia R1 y fluya más corriente por la batería. En este caso se desconectan las tiras de
regulador luces LED
LED de colores porque la tensión de entrada es demasiado alta y puede dañarlos. El relé se desconecta cuando la tensión de la batería alcanza 13,8 V. Después queda una corriente de carga ‘por goteo’ mucho más pequeña y se vuelven a conectar los LED de colores. ‘Battery Charge’ muestra la carga de la batería restante en pasos de 10%. Este valor se determina midiendo la tensión de la batería y mostrándola en porcentajes. 0% es 11 V, 100% es 13,8 V. El LED D5 muestra el estado de carga de la batería. Si la batería está llena (13,2 V), el LED se ilumina constantemente. Si la batería empieza a quedarse vacía, parpadea con una frecuencia de 1 Hz. El ciclo de trabajo depende de la carga restante. Cuando la batería está casi vacía, el LED se enciende muy brevemente. Si la batería se ha quedado tan vacía que los LED de colores se desconectan, el zumbador da pitidos. El interruptor S2 funciona como ‘protección de niños’ cuando este se cierra. En ese caso no están
disponibles las opciones de menú ‘ Edit Program ’ y ‘Edit ’ . Para configurar uno de los colores, selecciona ‘Edit ’, pulsa ENTER y mediante los 3 codificadores rotativos configura los colores rojo, verde y azul entre 0 y 100% con pasos de 1%. Pulsa ENTER de nuevo para guardar la nueva configuración o BACK para volver al menú sin grabar la nueva configuración. La composición de un programa se hace seleccionando ‘Edit Program ’ y pulsando ENTER. Selecciona el color con el codificador rotatorio ENC1, el tiempo ‘Hold’ con el codificador rotatorio ENC2 y configura el tiempo de transición ‘Fade’ con ENC3.. (110406)
Enlaces web [1] www.elektor.es/110553 [2] www.elektor.es/110406 Publicidad
RFID
MIFARE and Contactless Cards in Application
NUEV O LIBRO
MIFARE es la tecnología RFID más ampliamente utilizada, y este libro (en inglés) facilita una amplia y práctica introducción al ella. Entre otras cosas, los capítulos iniciales tratan los fundamentos físicos, los estándares relevantes, el diseño de antenas RFID, consideraciones de seguridad y criptografía. Se describe en detalle el diseño completo del hardware y el software de un lector. El firmware del lector y el software para PC asociado soportan la programación con c ualquier lenguaje .NET. El programa para PC desarrollado especialmente, “Smart Card Magic.NET”, es un sencillo entorno de desarrollo que soporta el envío de comandos a una tarjeta al hacer clic con un ratón, y también tiene a habilidad de crear scripts C#. Alternativamente, se pueden seguir todos los ejemplos utilizando Visual Studio 2010 Express Edition. Finalmente, se presentan la mayoría de los estándars API para lectores de tarjetas inteligentes. 484 páginas • ISBN 978-1-907920-14-1 € 49.90
- 10 % p ar a m ie m b r o s
G RE E N
Más informacíon y pedidos en www.elektor.es/rfid www.elektor-magazine.es | julio / agosto 2013 | 59
Proyectos
•
El Mando a Distancia Imbatible: un Smartphone Transmisor y app para dispositivos Android
Peter Zirngibl
Los mejores mandos a distancia disponibles en el mercado incorporan una gran
(Alemania;
pantalla táctil. Exactamente igual que un smartphone, de modo que, ¿por qué no
[email protected])
utilizar una de estas joyas multifunción como control remoto para los aparatos de audio y video del salón?
Con ellos podemos navegar por Internet, enviar e-mails, mensajes y chatear, grabar y escuchar audio, sacar fotos y grabar vídeos, escuchar la radio y ver la televisión, utilizarlos como navegador... y sí, ¡también hacer llamadas telefónicas! Cientos de miles de apps han convertido los smartphones en la panacea. Por ello, es de suponer que también haya aplicaciones para controlar los
60 | julio / agosto 2013 | www.elektor-magazine.es
equipos de audio y vídeo modernos a distancia desde la palma de la mano, con la única condición, lógicamente, de que los equipos también estén conectados a la misma red WLAN. Con los equipos que sólo disponen de controles remotos mediante los tradicionales infrarrojos y no están presentes en la red no resulta tan fácil, pues (aún) no existe la opción de controlarlos con un emisor de IR.
audio y video
3V3 3V3 C1
0 1
6 1
R M
100n
LD1 3
C C V
IC2 PC0 PC1 PC2
14 DS 11 SHCP 12 STCP
74HC595N D N G
E O 3 1
15 1 2 3 4 5 6 7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
R1 R2 R3 R4 R6 R7 R8 R9
270R 270R 270R 270R 270R 270R 270R 270R
10 9 7 5 4 2 1
C C
a b c d e f g
R10 8 C C
dp
SC39-11SURKWA
8
0 1
100n
LD2
6 1
R M
3
C C V
IC4 14 DS 11 SHCP 12 STCP
74HC595N D N G
E O 3 1
15 R13 270R Q0 1 R14 270R Q1 2 R15 270R Q2 3 R16 270R Q3 4 R17 270R Q4 5 R18 270R Q5 6 R19 270R Q6 7 R20 270R Q7
10 a 9 b 7 c 5 d 4 e 2 f 1 g
C C
C C
F E R A
C C V
MISO SCK RESET
PC0 PC1 PC2 PC3 SDA SCL RESET
23 24 25 26 27 28 1
PB0 PB1 PB2
14 PB0 (ICP) 15 PB1 (OC1A) 16 PB2 (SS/OC1B) 17 PB3 (MOSI/OC2) 18 PB4 (MISO) 19 ATmega88-20PU PB5 (SCK) 1 2
PC0 (ADC0) PC1 (ADC1) IC3 PC2 (ADC2) PC3 (ADC3) PC4 (ADC4/SDA) PC5 (ADC5/SCL) PC6 (RESET)
2 2
6
9
SC39-11SURKWA
2 JP2
PD0 (RXD)
3
PD1 (TXD) PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) PD5 (T1) PD6 (AIN0) PD7 (AIN1)
L A T X
D N G
dp
K1
1 2
7
C C V A
MOSI MISO SCK
8
L A T X
X1
0 1
BT_TX
1 3 5 R5
k 1
BT_RX PD2 PD3
6 11 12 13
PD4
D1
MOSI
3V3 R23 R 0 0 1
D N G 8
C8
C6
C5
22p
22p
S1
S2
S3
10u 25V PD2
DOWN
ENTER
2
IC6
1
UP
X1 = 14.7456MHz
8
2 4 MOSI 6 ISP
JP3
4 5
9
Q7S
3V3
100n
6
3V3 C4
C3
7 k 4 0 2
9
Q7S
R12
R11 7 k 4
k 0 1
3
TSOP32236 +5V K2
3V3 R24
C C V P
3 AIO0 4 AIO1 5 PIO0 6 PIO1 7 PIO2 8 PIO3 9 PIO4 11 PIO5 12 PIO6 13 PIO7 14 PIO8 15
D6
T E S E R
MOD1
BTM-222
R25 R26 36 PIO9 PIO10 35 k k PIO11 1 1 D5
6 1
1N4001 +5V
C7
k 0 1 2
RE1
D2
100n 7 1
C9
C C V
RF_IO
37
34 SPI_MISO 33 SPI_CLK 32 SPI_CSB 31 SPI_MOSI 30 UART_CTS 28 UART_RTS 27 UART_TX 26 UART_RX 25 PCM_CLK 24 PCM_OUT 23 PCM_IN 22 PCM_SYNC 21 USB_D20 USB_D+
ANT
100u 25V PC3 PB0
3V3 K3 BT_TX BT_RX
BT_TX BT_RX
PB1 PB2 PD3 PD4
D D D D D D N N N N N N G G G G G G 1 0 8 9 9 8 1 1 1 2 3
1 IN1 2 IN2 3 IN3 4 IN4 5 IN5 6 IN6 7 IN7 8 IN8
R21 0 1
R 0 1
IC5
D3
K
18 OUT1 17 OUT2 16 OUT3 15 OUT4 14 OUT5 13 OUT6 12 OUT7 11 DOUT8
3V3
R22 R 0 1
8
SCL
2x TSAL6200
SDA
4
IC7 7805 D7
3 1 2
V 7 1 WP A0 IC1 6 2 SCL A1 5 24C512 A2 3 SDA D N G
ULN2803A
K4
100n
C C
N G 9
C2
JP1
D4
1
1N4001 C10
C13
100u 25V
100n
+5V
IC8 LF33CV
3
1
2
3V3
3 2
C14
C12
C15
C16
C11
100n
10u 25V
100n
100n
10u 25V
120043 - 11
Lo que falta es un adaptador inteligente en la que por un lado tengamos un smartphone con Bluetooth, y por el otro el dispositivo controlado por infrarrojos. Con inteligente nos referimos a que sólo haga falta memorizar la configuración la primera vez. De modo que, ¿cómo va a saber el adaptador de que variante del control se trata, y qué comando ha de ejecutar esta y otra acción? Existen en el mercado mandos a distancia universales simples y asequibles, preprogramados para controlar miles de dispositivos, pero que normalmente sólo conocen unas pocas instrucciones estándar como PLAY y STOP. Los comandos no son configurables, y la función de memoria sólo está disponible en los modelos más caros. A veces, en los modelos de alta gama también
Figura 1. El hardware no resulta muy complicado gracias a la utilización del módulo Bluetooth.
es posible introducir macros, cadenas de instrucciones utilizadas a menudo, una tras otra (por ejemplo: ver un DVD = encender el reproductor de DVD, la TV y el receptor de AV, ajustar correctamente los canales de vídeo y audio). Con nuestro adaptador de Bluetooth/IR esto también debería ser posible. Hoy en día los mandos a distancia univers ales de alta gama pueden programarse desde el PC. No obstante, para reducir la dificultad a la hora de programar, hemos prescindido de la preprogramación y la programación desde el PC. El adaptador debe aprender todos los comandos desde el mando a distancia original. Esto significa que el diodo IR del mando y el receptor han de colocarse enfrentados, transmitiendo
www.elektor-magazine.es | julio / agosto 2013 | 61
Proyectos
•
• VDD
Regulator
Antenna
LNA
RX_IN
SPI UART
VDD 1.8V USB
Switch BPF
Power AMP
BlueCore4-EXT TX_A
PCM PIO
I N T E R F A C E
TX_B
• •
•
Balun 4M or 8M Flash Memory X-Tal 16MHz
• 120043 - 12
PVCC
• •
Figura 2. Diagrama de bloques del módulo Bluetooth BTM-222.
así los comandos. Luego veremos cómo funciona esto, pero primero echemos un vistazo al hardware. Un controlador con conexión inalámbrica
Figura 3. El módulo Bluetooth ha de configurarse con un programa terminal según los parámetros indicados.
El circuito de la figura 1 muestra la electrónica del adaptador, la cual no es muy complicada. Consta principalmente de un microcontrolador Atmel Atmega88 y algunos otros grupos de componentes, entre los cuales tenemos:
•
Una EEPROM 24C512 con una memoria de 512 kBit y puerto I2C para almacenar los códigos programados Un módulo receptor infrarrojo TSOP32236 Dos diodos emisores de infrarrojos TSAL6200, controlados mediante un driver de potencia integrado ULN2803 Un display de 7 segmentos de dos cifras, con un registro de desplazamiento de 8 bits HC595 para mostrar los códigos programados y el estado de la programación Tres pulsadores: UP, DOWN y ENTER, necesarios a la hora de programarlo Un puerto de programación “In-System” K1 Un relé conmutador, controlado también por el driver de potencia Estabilizadores de tensión a +5 V y 3,3 V
Todo esto no tiene nada de especial, ya ha sido ya testeado hasta la saciedad, por lo que la verdadera “sensación” del circuito es el módulo Bluetooth BTM-222 de Rayson. En esta página [1] podemos encontrar una descripción del módulo y su hoja de datos. Es pequeño, manejable, relativamente fácil de usar y sobre todo asequible, ya que su precio ronda los 10 €. En los tiempos tiemp os que corren, con los ordenadores teniendo cada vez menos y menos puertos “cableados”, un módulo como este ofrece la posibilidad de controlar periféricos. El BTM-222 se trata de un dispositivo de clase 1, con un rango de alcance de hasta 100 m. Como muestra el diagrama de bloques de la figura 2 , cuenta con múltiples puertos serie, de los cuales el UART es ideal para utilizar con microcontroladores. A través del UART (y el puerto USB), el BTM-222 es capaz de garantigarantizar una tasa de transferencia de 921 kBit/s. Si el BTM-222 sólo se comunica con el microcontrolador mediante el UART, UART, el dispositivo puede funcionar sin apenas conexiones externas. El parámetro “clásico” por defecto 8N1 significa: Tasa de transferencia 19.200 8 bits de datos Sin paridad 1 bit de stop El microcontrolador necesitará abrir el canal UART correspondiente. Si fuera necesario, cualquier parámetro o configuración del módulo puede ajustarse con las llamadas instrucciones de AT. Toda la información adicional al respecto está disponi-
62 | julio / agosto 2013 | www.elektor-magazine.es
audio y video
ble en la hoja de datos [1]. La configuración se almacena en una memoria flash interna. El núcleo “azul” del módulo se sirve de un reloj de 16 Mhz generado por el oscilador interno. La s eñal de salida pasa a través de un balun y un amplificador de potencia de +18 dBm directamente a la antena. Para la recepción, el BTM-222 cambia la antena al amplificador de bajo ruido LNA. Un filtro paso banda BPF mejora las características de la recepción. El BTM-222 no dispone de antena externa, pero puede adaptarse fácilmente a una varilla larga, o como ocurre aquí, a un pequeño trozo de cable. El módulo dispone de conexiones que muestran muestra n el estado de los datos (LED D5 en el pin 11) y la conexión (LED D6 en el pin 13). También podemos conectar un LED en el pin 14 (no utilizado aquí) como indicador de la tensión de alimentación. Configuración del BTM222
Primero hemos de configurar el módulo Bluetooth con los parámetros correctos. Para ello retiramos los jumpers JP2 y JP3, interrumpiendo así la conexión serie con el controlador. Ahora conectamos el BTM-222 al PC, por ejemplo mediante un cable TTL-232R TTL-232R de FTDI en K3. Sin embargo, la toma VDD de este cable suministra 5 V, tensión demasiado alta para el BTM-222 (cuya alimentación es de 3,3 V y en ningún caso debe superar los 3,6 V). Por ello, sencillamente sencillamente dejamos sin conectar el pin 1 de K3 y alimentamos el módulo Bluetooth a través de la placa. Ahora iniciamos un programa terminal en el PC como por ejemplo Hyperterminal o Hterm (figura 3 ), seleccionamos el puerto COM (virtual) en el cual está conectado el módulo Bluetooth y nos aseguramos de que la configuración del puerto serie dada anteriormente es correcta. Ahora comprobamos que el módulo responde al comando ATI1. Esta instrucción instrucción debería mostrar en pantalla la configuración del módulo. Si no hay ninguna respuesta, entonces deberíamos comprobar la alimentación a 3,3 V, la configuración del puerto COM y las conexiones en K3 (¿quizá están intercambiados TxD/RxD?). Si no estamos seguros de la configuración actual del módulo, o si algo va mal y queremos devolver el BTM-222 a los ajustes por defecto, basta con c on poner PIO4 a nivel alto durante al menos tres segundos. Ahora cambiamos la configuración del UART a 4800 Baudios (ATL = 0), con paridad (ATM = 2), y sin control del flujo (ATC = 0). Hemos de
ajustar el programa terminal cada vez que cambiemos los parámetros. Finalmente, también es posible modificar detalles como el nombre del módulo o el código PIN para la conexión Bluetooth, a nuestro gusto. Ahora encendemos el smartphone (o cualquier otro dispositivo con Android), asegurándonos de que el BTM-222 ha sido encontrado satisfactoriamente satisfactoriamente y es posiposi ble establecer la conexión con el código PIN seleccionado. Si todo funciona, apagamos el circuito del mando a distancia, retiramos la conexión con el PC y conectamos ambos jumpers, JP2 y JP3. La app remota
El smartphone con Android estará listo para el control remoto tras instalar la aplicación Remote_Control.APK . Ahora iniciamos la app y enlazamos con el módulo BTM-222. Posteriormente, en SELECT DEVICE optamos por el módulo Bluetooth y establecemos la conexión mediante CONNECT. CONNECT. El LED D6 permanecerá encendido indicando que el módulo se ha conectado con el dispositivo Android. D5 parpadeará cuando se comiencen a recibir datos desde el smartphone. El adaptador transmite un valor (0 a 99) más un carácter de final de línea (/n), con los que se especifica la posición de memoria que ha de ejecutarse. En el modo de reproducción reproducc ión se interpretan los comandos recibidos del módulo Bluetooth. El principio es bastante simple: si se recibe “2/n”, el adaptador se dirige a la posición 2 y ejecuta la instrucción alojada allí (con lo que sube el volumen de los altavoces en el dispositivo 1). Las posiciones 73 y 74 son especiales. En estas la salida no es una señal infrarroja, sino que se activa el relé Re1 durante 2 s (73), o bien se desactiva (74). En K2 podemos encender y apagar dispositivos externos.
Figura 4. App de control remoto ejecutándose en un smartphone.
www.elektor-magazine.es | julio / agosto 2013 | 63
Proyectos
•
La figura 4 muestra la app en el smartphone, en todo su esplendor. Con las flechas de arriba seleccionamos entre cinco dispositivos distintos (del 1 al 5). Para cada dispositivo podemos podemos introducir un nombre en el cuadro de texto y memorizarlo con SAVE. El nombre se conservará, apareciendo de nuevo en el próximo reinicio. Aparte, también es posible etiquetar las funciones, de la 1 a la 10. Para ello pulsamos EDIT, EDIT, seleccionamos el botón deseado e introducimos un texto. Tras pulsar SAVE se guardará el texto. Los textos son los mismos para todos los dispositivos. Artillería infrarroja
El software del controlador está dividido en el modo de programación y el de funcionamiento. En el modo de programación se graban los comandos infrarrojos del mando a distancia. Esto se hace de la siguiente manera:
Lista de materiales Resistencias: R1 a R4, R6 a R9, R13 a R20 = 270 Ω R5, R25, R26 = 1 kΩ R10, R24 = 10 kΩ R11, R12 = 4k7 R21, R22 = 10 Ω R23 = 100 Ω
Condensadores: C1, C2, C3, C4, C7, C13, C14, C15, C16 = 100 nF C5, C6 = 22 pF cerámico C8, C11, C12 = 10 µF/25 V radial C9, C10 = 100 µF/25 V radial
Semiconductores:
Figura 5. Diseño de la pl aca. Todos los elementos de control se encuentran en la parte posterior.
D1, D5, D6 = LED rojo, 3 mm, baja corriente D2, D7 = 1N4001 D3, D4 = diodo emisor de infrarrojos a 940 nm, TSAL6200 (Vishay) LD1, LD2 = 7-Segment-LED-Display 10 mm (Kingbright SC39-11SURKWA) IC1 = CAT24C512LI-G (On Semiconductor) IC2, IC4 = 74HC595N IC3 = ATmega88-20PU (Atmel), programada: 120043-41 [2] IC5 = ULN2803APG IC6 = receptor de infrarrojos a 36 kHz TSOP32236 (Vishay) IC7 = 7805 IC8 = LF33CV (ST) Mod1 = Módulo Bluetooth BTM-222 (Rayson)
64 | julio / agosto 2013 | www.elektor-magazine.es
Primero hemos de borrar completamente la memoria EEPROM serie. Para ello pulsamos los tres botones a la vez y después conectamos la tensión de alimentación. En el display de 7 segse gmentos aparecerá dE. (delete), con lo que ya podemos soltar ya los botones. El proceso de borrado durará algunos minutos, al finalizar aparecerá 00 en el display. Para memorizar los comandos en el modo de programación, mantenemos pulsado el botón ENTER (puerto D6 a GND), después activamos la alimentación. En el display de 7 segmentos aparecerá Pr. (de modo de programación), programación), parpadeando 3 veces brevemente. Ahora hemos de introducir un número entre 0 y 99 mediante los botones UP/DOWN (puertos D5 y D7) y confirmamos con ENTER. Después el display indicará con – que el circuito está listo. El mando a distancia ha de situarse a entre 5 y 10 cm del receptor IR, pulsando sobre la función deseada una
Varios: X1 = oscilador de cuarzo a 14,7456 MHz Re1 = relé de 6V SPDT (1x um), Finder 43.41.7.006.2000
audio y video
vez (¡una!). Para evitar que se registre ningún ruido, lo ideal es llevar a cabo es te proceso lo más rápido posible. Una vez confirmada la programación, el display mostrará io. Los mandos de alta gama permiten la entrada de macros, con hasta seis instrucciones seguidas una tras otra. Las macros se almacenan como cualquier otro comando. Al grabar instrucciones del mando a distancia se mide la longitud de los pulsos y se almacenan en la EEPROM como Unsigned integer Variables . Si tras programarla queremos memorizar más comandos, durante el mensaje de confirmación (es decir, cuando parpadea io.) mantener pulsado el botón ENTER otra vez, pues tras la programación se realiza un reset del microcontrolador. Si no se presiona ningún botón durante el reset, el programa entrará directamente en el modo de funcionamiento. En este modo podemos seleccionar con los botones de UP/DOWN el comando
S1 a S3 = interruptor táctil SPNO, redondo JP1 a JP3 = conector tipo pin header de 2 pines, con jumper K1 = conector tipo pin header de 2x3
que deseamos, y proceder con ENTER para que sea emitido por el diodo infrarrojo. Conviene que comprobemos que el comando se ha grabado correctamente. En la placa La placa para el mando a distancia está disponible en Elektor [2], así como el controlador programado. En el mismo enlace también puede encontrarse la app compilada y el código fuente. Si echamos un vistazo al diseño de la placa en la figura 5 nos quedaremos más tranquilos, ya que el módulo Bluetooth, aun siendo un SMD, es posible soldarlo hasta con una punta de 1,25 mm. No deberíamos tener grandes problemas. Hemos de poner algo más de atención a la orientación del módulo. El pin 1 puede identificarse gracias a un punto en el apantallado de metal (en la cara en la cual está situada la antena de cable). Este punto ha de conectarse con PC1 en la tar -
rpc bs e
t o
k e
l
e
.
w w w
r
v c
i
e
. c
o m
K2 = clema de 3 pines para montaje sobre placa, RM 5 K3 = conector SIL de 4 pines K4 = conector de baja tensión, 2,1 mm Placa 120043-1 [2]
www.elektor-magazine.es | julio / agosto 2013 | 65
Proyectos
•
Tabla 1. Asignación de las posiciones de memoria con sus funciones Funciones
Dispositivo 1
2
3
4
5
MUTE
0
8
16
24
32
ON/OFF
1
9
17
25
33
VOL+
2
10
17
26
34
VOL-
3
11
19
27
35
PRG+
4
12
20
28
36
PRG-
5
13
21
29
37
AUX
6
14
22
30
38
31,90-94
39, 95-99
MAKRO
7, 75-79
15, 80-84 23, 85-89
Función 1
40
50
60
Función 2
41
51
61
Función 3
42
52
62
Función 4
43
53
63
Función 5
44
54
64
Función 6
45
55
65
70
Función 7
46
56
66
71
Función 8
47
57
67
72
Función 9
48
58
68
73
1)
Función 10
49
59
69
74
2)
1) Activar
relé durante 2 s
2) Hacer
(120043)
“toggle” en el relé
jeta. Los pads anchos del medio de la cara y los alrededores forman parte de las líneas de masa del módulo.
Editando la app La app ha sido desarrollada con el App-Inventor del MITs [3]. Si queremos cambiar o editar algo, tendremos que crear una cuenta de Gmail e iniciar sesión en la página [3]. Ahora descargamos Remote_ Control.ZIP en el directorio “My Projects” del AppInventor en “More Options” -> “Upload Source”. La app podrá editarse, compilarse online y descargarse el archivo “Remote_Control. APK ” resultante en el PC, o volcarse directamente al dispositivo con Android.
66 | julio / agosto 2013 | www.elektor-magazine.es
Una vez el módulo se ha soldado correctamente, podemos proceder a colocar el resto de componentes. Los integrados conviene situarlos en zócalos. Ambos displays y los tres botones, así como D5 y D6 van en la parte posterior de la placa. De esta manera encontramos todos los elementos de interacción con el usuario en una misma cara, y resulta fácil alojar el dispositivo en una carcasa. Como antena basta un simple cable. Siendo quisquilloso, matemáticamente hablando, para operar en los 2,4 GHz debería tener una longitud de 3,1 mm ( l /4), pero el valor no es demasiado crítico, ya que no se trata de una aplicación para la cual necesitemos gran rango de alcance. Lo principal es que la antena se quede fuera si el montaje se hace en una carcasa de metal.
Enlaces [1] www.mikrocontroller.net/wikifiles/f/fc/ BTM222_DataSheet.pdf [2] www.elektor.es/120043 [3] http://appinventor.mit.edu
iluminación nocturna por energía solar
Iluminación Nocturna por Energía Solar con Backup de Ión-Li Michael A. Shustov (Rusia)
Esta iluminación nocturna tiene dos fuentes de alimentación: una célula solar con una tensión de salida máxima de unos 6 V, y una célula de Ión-Li con una tensión entre 3,7 V y 4,2 V. Tres (de los cuatro) interruptores electrónicos de un 74HC4066N (IC1) controlan el funcionamiento del dispositivo. IC1 obtiene su tensión de alimentación a través de los diodos D1 o D2, dependiendo de cuál es la fuente de alimentación que suministra la tensión más elevada. En consecuencia, el 4066 consigue un valor de entre 3,7 V y 6 V para funcionar. Durante el día, la tensión suministrada por la célula solar alcanza el valor máximo típico de unos 6 voltios. IC1a está cerrado debido al nivel Alto presente en su entrada de control (terminal 13), con lo que la batería de Ión-Li se carga con unos 10 mA por medio de la resistencia R3 y el diodo D3 conectados en serie. Al mismo tiempo, el LED D6 se enciende para indicar que la batería está siendo cargada. El interruptor IC1b está cerrado también, lo que provoca que el interruptor IC1c esté abierto y que el LED D5 permanezca apagado. Si la tensión suministrada por la célula solar cae por debajo de 1/3 de la tensión de alimentación de IC1, es decir, por debajo de 1,3 V, más o menos, el conmutador IC1a se abre y el LED ‘Charge’ (‘Carga’) se apaga. La tensión en la entrada de control del interruptor IC1b cae a cero, provocando que el conmutador se abra. Por consiguiente, el conmutador IC1c se cierra, conectando el LED ‘Night Light’ (‘Iluminación
D1
D2
1N4148
1N4148
14
IC1
IC1 = 74HC4066
7
IC1.A 1
S1
D3
R3 2
62R
1N4148
13
R1 k 0 0 1
SC6V
IC1.C
9
LI-ION4.2 6
IC1.B SOLAR CELL 6V
3
R2 R 0 3 3
R5
R4 k 0 0 1
BATT 4V2
8
5
R6 4
D4
R 0 2 1
D6
D5
1N4731A
k 0 0 1
CHARGE
130178 - 11
NIGHT LIGHT
nocturna’) a la batería a través de la resistencia R6, que establece la corriente en el LED a 10-13 mA. Queda libre la elección del color del LED (el prototipo tenía un LED verde). La velocidad de carga de la batería, así como la intensidad de los LEDs se puede ajustar adaptando los valores de R3, R2 y R6, manteniendo una corriente máxima de paso de 20 mA por los conmutadores 4066. El diodo zéner D4 evita niveles de tensión de carga de la batería excesivos. Cuando el conmutador S1 está abierto impide que la batería se descargue cuando el circuito está en el almacén o sin uso, por la razón que sea. (130178)
Lista de materiales Resistencias R1,R4,R5 = 100kΩ 1% 0,25W R2 = 330Ω 1% 0,25W R3 = 62Ω 1% 0,25W R6 = 120Ω 1% 0,25W
Semiconductores D1,D2,D3 = 1N4148 D4 = 1N4731A diodo zéner (4,3V) D5 = LED, 5mm, color a elegir D6 = LED, rojo, 5mm IC1 = 74HC4066
Varios S1 = Interruptor de palanca, Newark/Farnell # 1310879
0 0 . ) c 1 v ( r I - o t 8 k 7 e l 1 0 E 3 1
V 2 . 4 2 N O I I L + 1
1 C I
4 D
3 D 2 D 1 D
5 1 3 2 R R R R
D 6
6 R
5 D
4 R
V 2 6 C S
+ 1
rpc bs e
t o
1 S
k e
l
PCI # 130178-1 Conectores marcados como SC6V y LI-ION4.2V = Bloque terminal para PCB, separación entre terminales de 5mm
e
.
w w w
r
v c
i
e
. c
o
m
www.elektor-magazine.es | julio / agosto 2013 | 67
Proyectos
•
De vuelta a las particularidades del
Medidor LCR de 0,05 % El lujo de la precisión accesible a todos
Jean-Jacques Aubry,
El éxito del medidor LCR
(Ollioules, Francia)
Las reacciones atentas y entusiastas de numerosos lectores tras la publicación de este proyecto, muestran que los aparatos de medida de buena calidad siguen estando entre sus montajes favoritos. El autor, Jean-Jacques Aubry, ha escr ito en el foro francés [4] una rectificación (el único error significativo detectado hasta ahora) sobre el plano de mecanizado para el conector USB y SW1. Para el mecanizado de SW1, la cota de 1,16 mm debe ser de 0,96 mm. Para el de J19, la cota de 8,03 mm debe ser de 5,39 mm y la cota de 3,97 mm de 6,61 mm. En la página web se ha incorporado un dibujo corregido para su descarga gratuita, al igual que una nueva versión del esquema eléctrico que rectifica algunos puntos a tener en cuenta. En la lista de materiales del circuito principal, J17, listado con J7, J8…, es en realidad J9. También se encuentra duplicada la resistencia R81, siendo el valor correcto el de 7,5 k�, por lo que el valor de R81 = 10 k� debe ser suprimido. En el esquema del circuito principal R31 = 750 � y en el esquema de la placa de expansión la resistencia en serie con el LED D5 es R8 = 1 k�. Y, por último, C30 = 1n5, 5 % NPO. Estas rectificaciones no tienen ninguna incidencia sobre el funcionamiento del circuito. El circuito
68 | julio / agosto 2013 | www.elektor-magazine.es
impreso y el módulo ya montado quedan sin cambios y, como todo funciona bien, hasta ahora (21 de mayo de 2013) no ha habido ninguna actualización desde la publicación del tercer artículo. Y puesto que estamos hablando de detalles, al principio del documento First time Setup (en inglés), que también podéis descargar desde nuestra página web, el fichero del ‘ firmware’ ha sido nombrado erróneamente como LCR3A_update_Vxxx.hex . El nombre correcto es LCR3A_firmware_Vxxx.hex . El autor no tendrá ningún inconveniente en responder directamente a cualquier otra pregunta en el foro y buscará voluntarios para que dialoguen con los usuarios de su medidor LCR de precisión. En los tres artículos de la descripción del medidor LCR [1], algunos aspectos del mismo han sido pasados por alto para no alargar demasiado la publicación. Os proponemos aquí echar una ojeada a esos detalles que pueden ser interesantes también fuera del ámbito del instrumento aquí descrito. Es el caso de una rutina en particular para la visualización en una pantalla gráfica de iconos que exige una cierta soltura. También veremos la precisión de las medidas, los factores de imprecisión y los errores. Para que la lectura de este artículo sea útil, evidentemente, es aconsejable haber leído previamente los tres artículos precedentes, principalmente la descripción del esquema eléctrico y los principios de medida. Librería para el visualizador gráfico
El programa cargador de arranque (‘bootloader ’) y el firmware utilizan, si fuese necesario, un visualizador gráfico (GLCD) para mostrar mensajes e imágenes. La memoria RAM del visualizador está organizada en 128 columnas y ocho líneas de octetos (64 bits o píxeles). O, si los elementos a mostrar (iconos) sobrepasan los 8 bits de altura y están definidos en varios octetos: la altura de las dos fuentes de caracteres utilizadas es, por ejemplo, de 11 y de 16 bits. Todos los iconos están definidos en el fichero glcd_bitmaps.c (o bootloader_glcd-bitmaps.c para su versión minimalista, sin algunos de los ico-
medidor LCR
nos y de las fuentes utilizadas por el firmware). Si queremos que se pueda escribir en cualquier posición, por ejemplo, un caballo en los límites de los octetos y que la escritura en la memoria RAM del GLCD se haga por octetos completos en direcciones bien definidas, tenemos que: Conocer el contenido de la RAM antes de la escritura. Hacer cálculos muy precisos entre los viejos y los nuevos octetos para modificar tan sólo los píxeles (bits) necesarios. El número de líneas de puerto disponibles para el visualizador hacen obligatorio el uso del modo serie. Por desgracia, este modo no permite la •
•
lectura de la memoria RAM del visualizador. Así pues, es necesario crear, en la RAM del MCU, un espejo de la memoria del GLCD: uchar xdata GLCD_Array[LCD_COLS][LCD_ROWS];
Estos cálculos entre los antiguos y los nuevos octetos se hacen rápidamente confusos a medida que el número de casos diferentes a resolver se hace más grande. La solución que yo he adoptado consiste, para una columna, en ¡pasar de una representación por 8 octetos a una representación por 64 bits! Esta solución necesita:
1. La creación en la memoria RAM del MCU de la imagen de una columna donde cada octeto es
representativo de un único píxel de la columna de la RAM del GLCD, por lo tanto, valor 0 ó 1. uchar xdata Column_Array[(LCD_ROWS + 1) * 8]; // + 1 para 2º byte de caracteres en la última línea
2. La creación de una rutina de lectura de la columna del visualizador (en realidad, del espejo) y
de escritura, después de la transformación en bits equivalentes (0 ó 1), en
Column_Array[].
void GLCD_read_column(uchar col) { uchar rows, pix, i, j; i = 0; // lee la columna col, byte a byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = GLCD_Array[col][rows]; // escribe pix, bit a bit for (j = 0; j < 8; j++) { Column_Array[i] = pix & 0x01; pix >>= 1; i++; } } }
3. La creación de una rutina de lectura del contenido de Column_Array[], escritura en la RAM del GCLD y actualización del espejo de memoria : void GLCD_write_column(uchar col) { uchar rows, pix, i, j; i = 0; // escribe columna col, byte a byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = 0; // lee pix, bit a bit for (j = 0; j < 8; j++) { pix += Column_Array[i] << j; i++; } if (GLCD_Array[col][rows] != pix) es modificado {
// solo si el byte GLCD de la RAM
www.elektor-magazine.es | julio / agosto 2013 | 69
Proyectos
•
GLCD_set_pos(rows, col); GLCD_WriteData(pix); GLCD_Array[col][rows] = pix;
// se almacena en GLCD de la RAM // actualiza el ‘espejo’ de la RAM
} } }
4. La creación de una rutina para visualizar un icono definido en formato bitmap. La podemos hacer
donde queramos y con las dimensiones que sean (¡siempre en los límites del visualizador!). void GLCD_show_icon(uchar code *bitmap, uchar width, uchar height, uchar x, uchar y, uchar mode) { uchar tx, ty, pix, hb, i, j, k; hb = (height - 1) / 8 + 1; // carácter octavo en los bytes for (tx = 0; tx < width; tx++) // lazo para ancho de columnas { GLCD_read_column(tx + x); i = y; k = 0; for (ty = 0; ty < hb; ty++) // lee hb bytes del icono { pix = *(bitmap + ty * width + tx); // lee un byte if (mode == GLCD_PIXEL_OFF) pix = ~pix; for (j = 0; j < 8; j++) // escribe 8 bits de pix en Column_Array { if (mode != GLCD_PIXEL_INV) Column_Array[i] = pix & 0x01; else Column_Array[i] ^= pix & 0x01; pix >>= 1; if (k == height) break; i++; k++; } } GLCD_write_column(tx + x); } }
5. Y por último, la creación de una rutina de escritura de un texto que será tan sólo la escritura de
una sucesión de iconos definidos en una fuente de letras. void GLCD_draw_text( uchar x, uchar y, uchar *text , uchar mode ) { uchar i, posx, posy; uchar *pt; posy = y - font_height + 1; for( pt = text, i = 0; *pt; i++, pt++ ) { posx = x + i * font_width; if( posx + font_width > LCD_COLS ) { i = 0; posx = x; posy += font_height; } GLCD_show_icon( font + (*pt - font_offset) * font_charsize, font_ width, font_height, posx, posy, mode ); } }
70 | julio / agosto 2013 | www.elektor-magazine.es
medidor LCR
Precisión de las medidas La impedancia a medir se puede escribir como:
Z x =
V p
+
I p
+
j V q j I q
×
Gi Rsense Gv
=
V p I p + Vq I q I p
2
+
I q
2
+
j
Vq I p − Vp I q I p
2
+
I q
×
Gi Rsense Gv
2
expresión en la que Gi y Gv son las ganancias de corriente y de tensión de la cadena de amplificación y Rsense la resistencia del convertisseur¬_IU .
G i = G INA128
×
G BUFFER
×
GPGAi
×
GDAC i
G v = G INA128
Tenemos así, utilizando la representación serie de una impedancia: Z
RS =
V p I p + Vq I q I p
2
+
I q
×
GPGAi GDAC i Rsense
2
X S =
GPGA v GDAC v
=
×
RS
G BUFFER +
2
+
I q
GPGAv × GDAC v
j X S
Vq I p + Vp I q I p
×
×
GPGAi GDAC i Rsense
2
GPGA v GDAC v
Si se desprecian los errores de digitalización como se explicó en el apartado Hay que vigilar la ganancia del primer artículo [1], tenemos:
Δ RS RS
=
Δ X S X S
=
⎡ Δ GPGAi Δ GPGAv ⎤ ⎡ Δ G DAC i Δ G DAC v ⎤ Δ Rsense + + + + ⎢ G i ⎥ ⎢ ⎥ GPGAv ⎦ G DAC v ⎦ Rsense ⎣ PGA ⎣ G DAC i i ≠v i≠v
Se puede dividir el error global en dos partes principales: El error debido a la imprecisión de las ganancias del PGA103 y del DAC8811. El error sobre el verdadero valor de las resistencias del convertisseur¬_IU (error de calibración). • •
A esto hay que añadir un error debido a: La visualización (± 1 bit de la última cifra). Al error de fase residual (después de la compensación del error de fase). A las fluctuaciones creadas por el ruido de amplificación y las señales parásitas captadas por los hilos de medida (tensión de red, etc.). • • •
Y después, el error de digitalización, que aparecerá en las gamas 1 y 8, cuando las amplitudes de las señales de tensión o de corriente se hagan demasiado diferentes por la falta de ganancia.
Factor de imprecisión Error de ganancia De acuerdo con la documentación BURR-BROWN (TI ) del PGA103 Ganancia
1
10
100
Error de ganancia típico
±0,005%
±0,02%
±0,05%
Máximo error de ganancia
± 0,02%
±0,05%
±0,2%
Para las gamas 3 a 6, el amplificador programable PGA103 tiene siempre una ganancia unidad y el término
⎡ Δ GPGAi Δ GPGAv ⎤ ⎢ G i + G v ⎥ ⎣ PGA ⎦ PGA
es nulo.
Para las gamas 2 y 7, este término introduce un error máximo de ±0,07 % (±0,025 % típico). Para las gamas 1 y 8, este término introduce un error máximo de ±0,22 % (±0,055 % típico).
www.elektor-magazine.es | julio / agosto 2013 | 71
Proyectos
•
De acuerdo con la documentación de TI del DAC8811C, su precisión relativa máxima es de ± 1 LSB. Así pues, el error máximo sobre la ganancia será de ± 1/N, donde N es el código que determina la ganancia del amplificador final.. escalón post_Ampli.
0
1
2
3
4
5
6
N
7 500
8 700
10 000
11 600
13 500
15 500
18 000
escalón post_Ampli.
8
9
A
B
C
D
E
N
24 000
27 600
32 000
36 900
42 600
49 100
56 700
Cuando los escalones de post_amplification_U y de post_amplification_I son iguales, el término es nulo.
Si no, es máxima cuando uno es 0 y el otro 1; con lo que vale
1 7500
1 +
7 20 700 F 65 500
⎡ Δ G DAC i Δ G DAC v ⎤ ⎢ G i + G v ⎥ ⎣ DAC ⎦ DAC
, es decir, el 0,025%.
8700
Nota: El uso de la versión B (DAC8811B) dobla este error. convertisseur¬_IU , cuya ganancia de lazo abierto no es infinita, introduce también un error de medida. Siendo la ganancia de bucle cerrado ≤1 paran las gamas 3 a 6, su ganancia de lazo abierto de unos 80 dB (10000) a 10 kHz introduce un error suplementario de, aproximadamente, el 0,01 %. Dicho error será despreciable a frecuencias inferiores.
• El
Nota: En el ordenador, el programa AU2011 permite visualizar el valor del error de ganancia. Error de fase El uso en el convertisseur¬_IU de un amplificador de una banda de paso muy grande (50 MHz) y las diferentes compensaciones de fase (descritas en el documento Puesta en funcionamiento [3] que podéis descargar) permiten reducir al mínimo las rotaciones de fases parásitas. Sin embargo, no son eliminadas totalmente. Además, la fase del amplificador final se ha supuesto que es independiente de la ganancia, algo que sólo es verdad en un primer grado, ya que en el margen de uso del DAC8811, con los datos ubicados entre las direcciones 0x2000 et 0xFFFF, su banda de paso es bastante constante (de unos 8 MHz). Este error residual tendrá una incidencia sobre el valor del parámetro secundario, tanto más marcado cuanto la fase del componente bajo prueba se aproxime a 0 ° o a ± 90 °. Error de calibración El error inicial es el de las resistencias de precisión colocado sobre el circuito impreso, es decir, del ±0,05 %. Es posible mejorar este error siguiendo las indicaciones del párrafo 7 Calibración de las resistencias del documento que podéis descargar Puesta en funcionamiento [3].
(130174)
Enlaces y referencias
[1] Medidor LCR de 0,05 % 1ª parte www.elektor.es/110758 [2] Medidor LCR de 0,05 % 2ª parte www.elektor.es /130022 [3] Medidor LCR de 0,05 % 3ª parte www.elektor.es /130093 [4] www.elektor.fr/forumLCR
72 | julio / agosto 2013 | www.elektor-magazine.es
microcontroladores
¡Rápido, a guardar! (2.0) Al
D1
TR1
1N4001 D1
230V
IC1 = LM393; TLC372
IC2
IC1 = LM393; TLC372
IC2
B1 1N4001 R1
R3
R5
k 0 7 4
k 2 8
R1
k 0 1
2
R3
1
INT
2
MCU
3
230V
Power Supply
3
4 R2 k 0 2 2
100n
1
Jürgen Werner (Alemania)
R2
C3
IC1.A
1
INT
MCU
R4 C1
k 0 7 4
1000
8
4
R4 C2
k 0 1
8
IC1.A
C1
R5
k 0 1
k 7 4
C2
k 7 4
k 7 4
100
100n
100n 120674 - 11
2
desconectar o producirse un corte de tensión en un circuito con microcontrolador, muchas veces resulta útil guardar el estado actual o ciertos valores en una EEPROM, de modo que esta información se encuentre disponible automáticamente tras el reinicio. Para ello ya contábamos con el circuito diseñado en su día por Rainer Reusch (véase la figura 1), publicado como consejo de diseño en Elektor [1]. El principio de funcionamiento es el siguiente: la tensión en D1, con C2 a modo de buffer, se dirige a un comparador, el cual suministra una señal en caso de que la tensión de entrada caiga. Gracias a D1 y C2, en el apagado la tensión en la entrada no inversora de IC1.A se reduce más rápido que en la entrada inversora. Como resultado, tenemos una señal de nivel bajo en la salida del comparador. Por lo tanto, mientras quede energía en el condensador electrolítico del buffer, el microcontrolador tendrá tiempo suficiente para ejecutar la rutina de interrupción necesaria para almacenar los datos. Este método funciona bastante bien. Al menos en los casos sencillos. Sin embargo, uno de los problemas es para grabar la EEPROM se necesitan algunos milisegundos. C2 debe estar dimensionado más grande de lo necesario, pues ha de proporcionar además la corriente de reposo para el regulador de tensión. Aparte, debido al rizado, el dimensionamiento de C1, por ejemplo, no resulta trivial en absoluto. El tema se pone aún más problemático si en lugar de utilizar un transformador con un puente rectificador optamos por una moderna fuente de alimentación, ya estabilizada, o si se trata de una fuente conmutada. En tal caso el diseño no funciona, pues debido a los condensadores de buffer integrados en la fuente la tensión no caería lo suficientemente rápido.
120674 - 12
Tras lidiar con este tipo de problemas, Jürgen Werner ha presentado el circuito de la figura 2, con una versión mejorada e incluso más fácil de implementar. El comparador se desplaza hacia detrás del regulador de tensión. Ahora sólo comparamos la tensión de entrada con la de salida del regulador. No es necesario el diodo en serie con la entrada del regulador de tensión. El condensador electrolítico de buffer C1 puede ser más pequeño. Sin embargo, lo mejor del circuito es que ya no depende de lo rápido que caiga la tensión de entrada. Si se desconecta la alimentación, caerá la tensión de entrada, mientras que la tensión de salida se mantendrá constante gracias al regulador de tensión. Si se dimensiona correctamente, el divisor de tensión en el terminal no inversor del comparador siempre será un poco menor que en el inversor, apareciendo por lo tanto una señal de nivel bajo, con lo que en el microcontrolador se saltará a una rutina de interrupción. El circuito está dimensionado para una fuente con salida de 9 V y un regulador de tensión de 5 V. D1 protege al regulador de tensión contra corrientes inversas. Con 100 �F en C1 y una carga de 5 mA, el microcontrolador al menos dispondrá de 17 ms para guardar los datos importantes en la EEPROM. Aquí lo mejor es utilizar una interrupción disparada por flanco. Si aparte desactivamos otras unidades del controlador que consuman cierta potencia como por ejemplo el ADC, dispondremos de aún más tiempo para grabar los datos. (120674)
[1] ¡Rápido, a guardar!, Elektor, Marzo de 2009, www.elektor.es/080379
www.elektor-magazine.es | julio / agosto 2013 | 73
Industria
•
rpc b s e t o r k v e i l e
.
w w w
c
e
. c
o m
Fabricación Profesional de Placas de Circuito Impreso
Cómo se fabrica tu PCB de cuatro capas en el Elektor PCB Service La tecnología de fabricación profesional de placas de circuito impreso (PCB) ha evolucionado inmensamente desde que Elektor publicó sus primeros “paneles” hace unos 50 años. En este artículo nos vamos a adentrar en la cocina de nuestro Elektor PCB Service, prestado por nuestro fabricante asociado Eurocircuits, para comprobar cómo cocinamos nuestras tartas (multicapa). Seguro que entender los procesos de fabricación nos va a permitir diseñar nuestras PCBs para que se puedan producir de forma más fácil y barata, a la vez que mejoramos su fiabilidad en el tiempo, de manera que nuestros clientes vuelvan siempre a nosotros. Así pues, vamos a ver cuáles son los procesos de fabricación de una PCB de 4 capas. Normalmente los fabricantes profesionales de circuitos impresos no producen una única PCB. En lugar de ello, combinan varios circuitos dentro de un gran panel de producción, algo que es mucho más eficiente de producir y manejar a lo largo de los procesos de fabricación. A menudo se le llama a esto “order pooling” (algo así como “agrupamiento de pedidos”). Eurocircuits también produce sus PCBs de esta forma. En las imágenes deberíais ser capaces de distinguir cuatro diseños individuales combinados en un único panel. 1
(1) Desde el Gerber a los datos de producción
El diseñador de la placa ha preparado su trazado de pistas en un sistema CAD (Computer Aided Design o Diseño Asistido por Ordenador). En respuesta a que cada sistema CAD utiliza un formato de datos propietario, la industria de las PCBs desarrolló una estructura de fichero de salida estándar para asegurar que se usa un formato uniforme para describir las propiedades físicas de una placa. Este formato es el llamado “Extended Gerber” o “RS274X”. Los ficheros Gerber definen las capas de las pistas de cobre, así como las máscaras de soldadura y las posiciones y designaciones de los componentes. El primer trabajo del proceso global es verificar si los datos proporcionados por un cliente están de acuerdo con los requerimientos de fabricación. Habitualmente esto se hace de forma automática. Los anchos de las pistas, el espaciado entre pistas, los ‘pads’ (‘islas’) alrededor de los taladros, el tamaño más pequeño de los agujeros y similares, se compara con los establecidos en la fabricación. Una vez que el diseño ha sido aprobado, un ingeniero sacará todos los ficheros de herramientas necesarios para ejecutarlos en las máquinas que producen y prueban las PCBs.
2
(2) Herramientas fotográficas para transferencia de la imagen de la PCB
Un plotter de fotografía láser (‘fotoplotter’) imprime las películas necesarias para la producción. Éstas se desarrollan automáticamente y permanecen listas para los procesos de fabricación de la PCB. Para cada capa de PCB se genera una película o ‘fotolito’. Cada una de las películas se alinea con las otras poniendo taladros de
3
74 | julio / agosto 2013 | www.elektor-magazine.es
información y mercado
lineación de manera precisa en cada una de ellas. Estos agujeros se alinearán con los pines de alineamiento en el equipo de imagen, de manera que las diferentes capas de la placa queden perfectamente alineadas. (3) Imágenes de la cara más interna
Para producir las capas interiores de una PCB multicapa, los fabricantes como Eurocircuits empiezan normalmente con un panel laminado, el cual es un conjunto de resina epoxi y fibra de vidrio (o sustrato), con una capa de cobre pegada previamente en cada cara. Lo primero es limpiar la capa de cobre y llevar a una sala limpia para asegurarse de que no queda polvo sobre la superficie, donde se podría producir un cortocircuito o un circuito abierto. Al panel limpio se le da un baño de película fotosensible, el ‘photoresist’ (técnica de fotograbado). A continuación, la imagen de la película se transfiere a la PCB por medio de una “impresión” usando potentes lámparas UV (ultravioleta) para fijar el material foto-resistivo a través de la película transparente, con lo que queda fijado el patrón de cobre. La cama de la impresora tiene pines de alineamiento que deben coincidir con los agujeros del fotolito y del panel. El operador posiciona la primera película usando los pines, a continuación, el panel recubierto y, seguidamente, la segunda película. Los pines aseguran que las caras superior e inferior están alineadas de forma precisa. Una vez “impreso”, el panel es rociado con una solución alcalina potente para eli minar cualquier elemento que evite el curado completo de la placa. Seguidamente, el panel se lava a presión y se taladrado. Ya tenemos el patrón de cobre que está cubierto por la capa resistente al ácido. El operador debe verificar el panel para asegurarse de que en la superficie de cobre está limpia y todos los elementos del material foto-resistivo no deseados han sido eliminados.
4
4
(4) Grabado de las capas interiores
Ahora el trazado de cobre se graba empleando una potente solución alcalina para disolver el cobre expuesto. Este proceso se vigila cuidadosamente para asegurar que los anchos finales de los conductores son exactamente como se han diseñado. A continuación, se retira la capa foto-resistiva azul que protege la imagen de cobre. El operario comprueba que todo el elemento foto-resistivo ha sido eliminado.
5
(5) Alineamiento e inspección de las capas interiores
El corazón interno de nuestra placa multicapa está ahora completo. El operador debe perforar los agujeros de alineamiento del panel para alinear las capas interiores y exteriores. Como no hay ninguna posibilidad de corregir ningún error sobre las capas interiores, una vez que las capas exteriores han sido añadidas, se debe hacer una nueva inspección completa a todo el panel. Un sistema de inspección óptica automático busca en toda la placa y la compara con una imagen digital generada de los datos del diseño original. (6) Pegado de las capas interiores y exteriores
6
Las capas exteriores están formadas por láminas de fibra de vidrio pre-impregnadas con resina epoxi sin curar (‘prepreg’) y una delgada lámina de cobre. Primero se colocan una capa de cobre y dos hojas pre-impregnadas (‘prepreg’) sobre una plancha con base de acero. A continuación se coloca cuidadosamente el bloque pre-tratado usando los pines de alineamiento. Finalmente, dos láminas más pre-impregnadas, más otra lámina de cobre y una lámina de aluminio prensado, se colocan en la parte superior. Esta pila de elementos se monta sobre una prensa de pegado que utiliza láminas de presión calientes y se añade presión para pegar todas las capas de la PCB. El calor funde y cura la resina epoxi de la pre-impregnación, mientras que la presión pega juntas las distintas capas. El proceso de pegado es controlado por un ordenador de manera que se asegura un pegado permanente que durará el tiempo de vida de la PCB.
7
www.elektor-magazine.es | julio / agosto 2013 | 75
Industria
•
(7) Taladrado Taladrado por rayos X de los agujeros de referencia.
Antes de grabar las capas de cobre externas hay que taladrar todos los agujeros para los componentes con pines y para las vías. Primero se usa la taladradora equipada con rayos X para localizar las posiciones de los taladros en el cobre de las capas interiores. La máquina taladra agujeros de alineamiento para asegurar una perforación precisa por el centro de los ‘pads’ de las capa interiores. Preparación de las pilas para e l taladrado.
7
Para configurar la taladradora el operador primero coloca un panel del material desechable en la mesa de la taladradora para impedir que la taladradora rasgue la hoja de cobre ya que el taladro sale por la cara inferior. Por lo tanto, el operador carga el panel y una hoja de aluminio de entrada. Perforación de los agujeros.
La máquina de taladrado está controlada por ordenador. El operador selecciona el programa de perforación correcto. Éste dice a la máquina qué broca usar en las coordenadas XY. La taladradora emplea usillos propulsados por aire que pueden girar hasta a 150.000 rpm. La perforación de alta velocidad asegura agujeros de paredes limpias para proporcionar una base segura al chapado posterior. La perforación es un proceso lento, ya que cada agujero debe ser taladrado individualmente. Dependiendo del tamaño de la broca, se pueden taladrar hasta tres paneles PCB en un recorrido. La máquina selecciona la broca a usar del estante de brocas, verifica que es el tamaño correcto y la carga en la cabeza de la ta ladradora.
8
Recorte del exceso de resina.
Durante el proceso de pegado/soldadura se produce un excedente de resina de la pre-impregnación que aparece en el borde del panel, fuera del área de imagen. Este exceso de resina se elimina en una perfiladora controlada por ordenador. El panel taladrado está listo ahora para la fase de ‘chapado’ o metalizado. 8
(8) ‘Plating’ o Metalizado – primera parte
Primero se deposita una capa conductora sobre las paredes del taladro. El operador sujeta el panel sobre una ‘plantilla’ de manera que los paneles pueden ser transportados por una serie de baños químicos y de aclarado, donde las paredes de los taladros son sembradas con micro-partículas de paladio y una capa de cobre de, aproximadamente, 1 micra de espesor. El cobre restante es recogido para el “electro-metalizado”, un proceso para depositar una capa de metal en una superficie conductora eléctrica. Pero primero... (9) Imágenes de las capas exteriores
... el panel es transferido de nuevo a la sala limpia y cubierto de una capa de pre-impregnación (‘foto-resistivo’), que consiste en pasar un rodillo caliente en el cobre
9
9
10
76 | julio / agosto 2013 | www.elektor-magazine.es
10
información y mercado
11
11
12
usando un laminador de hoja de corte. El operador carga la primera película sobre los pines de alineamiento, seguida del panel laminado y, finalmente, la segunda película. Después de quitar la película de Mylar que protege la impregnación, el material ‘foto-resistivo’ no curado es eliminado con una máquina reveladora. El operador comprueba de nuevo los paneles para asegurarse de que la superficie de cobre está limpia y de que todo el material ‘foto-resistivo’ no deseado ha sido quitado. (10) ‘Plating’ o Metalizado – segunda parte
Ahora las placas son metalizadas con cobre. El operador comienza con la línea de metalizado automatizada, donde se limpia la superficie de cobre y se activa en varios baños y luego se metaliza por electrodeposición. El proceso entero es controlado por ordenador para asegurar que cada panel permanece en cada baño exactamente el tiempo preciso. Para asegurar una buena conductividad a través de los agujeros, las paredes de los taladros deben tener un sedimento de unos 25 micra s de cobre de espesor. Debido al modo en que trabaja la electrodeposición, también se produce una sedimentación de unos 25 a 30 micras en el resto de las pistas superficiales. Así, comenzando con una hoja de cobre de 17,5 micras, obtendremos una capa de cobre de 40 a 42 micras después del procesamiento. En el siguiente paso (ataque químico para retira r la película de cobre no deseada), se distribuye una delgada capa de estaño sobre el cobre. Cuando se ha completado el estañado, el operador usa una prueba no destructiva para comprobar el grosor correcto del cobre y del chapado de estaño.
12
13
(11) Grabado de las capas exteriores
Ahora se graban las capas externas. Primeramente, la resina resistente que cubre la parte de cobre no deseada es disuelta y retirada con un proceso de lavado. A continuación, una potente solución alcalina ataca y disuelve cualquier trozo cobre expuesto. El proceso es controlado cuidadosamente para evitar que el ácido ataque lateralmente las pistas, de manera que el ancho de las pistas acabadas sea exactamente el que se había diseñado. Finalmente, se retira la fina capa de estaño que se ha usado para proteger la imagen de cobre.
13
(12) Revestimiento de la máscara de soldadura (‘Solder mask’)
Antes de aplicar la máscara de soldadura, los paneles primero se limpian y cepillan para quitar cualquier suciedad superficial. A continuación, los paneles son cargados en la máquina de revestimiento vertical que cubre simultáneamente ambos lados del panel con la tinta de máscara de soldadura epoxi. El panel es colocado en un ‘rack’ y colocado sobre un secador con cinta transportadora que cura la resina lo suficiente para permitir que se pueda imprimir sobre ella (“tack-dried”). El operador comprueba la resina añadida completa y uniformemente. Después, los paneles ya revestidos son impresos usando de una impresora de luz UV. El operador monta la película de fotolito en la máquina y coloca el panel sobre
14
www.elektor-magazine.es | julio / agosto 2013 | 77
Industria
•
los pines de alineamiento. Al igual que en el grabado y la protección del baño metá lico (‘plating’) usados en el proceso anterior, las lámparas de luz UV de la máquina curan la tinta donde la película es transparente. Aquí es donde la máscara de soldadura quedará fijada en la placa terminada. Los paneles impresos se colocan en una cinta transportadora que los saca de la sala limpia a la zona de revelado, donde se les retira la resina no curada y la protección que no se desea. El operador comprueba la alineación de la máscara de soldadura en el panel y se asegura que no hay ningún rastro de tinta en los ‘pads’ o en los taladros. Para proporcionar una capa más robusta y permanente, la capa resistente se cura una vez más en un horno con desplazamiento.
15
(13) Acabado de los ‘pads’ y de los taladros
Los ‘pads’ de cobre y los taladros para los hilos de los componentes o los terminales, no tienen máscara de soldadura de ellos. Ahora se aplica un acabado de superficie para soldar para proteger el cobre hasta que los componentes sean soldados sobre la placa. La imagen muestra un acabado dorado, que se consigue depositando, por medios químicos, 5 micras de níquel en el cobre, seguido de 0,1 micras de oro sobre el níquel. Bajo la legislación de Reducción de Substancias Peligrosas (RoHS) de la Unión Europea, el plomo no puede ser usado en los acabados, con lo que se ofrece una solución de oro sobre níquel, así como un acabado de plata de ley o nivelación de aire caliente sin plomo. Para la última opción el panel se sumerge en un baño de estaño fundido. Al sacar el panel del baño, el chorro de a ire caliente barre el metal fundido sobrante del panel hasta dejar una fina capa de estaño de unos 2 micras de espesor.
15
(14) Galvanoplastia con oro
La galvanoplastia con oro es necesaria para conectores exteriores que tienen que ser conectados y desconectados repetidamente, como un conector de bus. En primer lugar, el operador pone la cinta protectora sobre la placa, encima de los conectores. A continuación, monta el panel en un baño horizontal de electrodeposición. Entre 1 y 1,5 micras de oro son depositados electrónicamente sobre unos 4-5 micras de níquel plateado.
16
(15) Impresión de serigrafía
Se utiliza una impresora de chorro de tinta especial para imprimir la serigrafía directamente sobre la placa. Esta impresora trabaja igual que una impresora de chorro de tinta convencional, donde las diminutas gotitas de tinta son rociadas sobre el panel para generar la imagen. Ahora, tanto la másca ra de soldadura de tinta epoxi como la serigrafía son curadas finalmente. Este proceso lleva, aproximadamente, 10 minutos usando un horno con transporte interno de cinco etapas. (16) Fresado de los paneles
Ahora el panel está listo para separar las diferentes PCBs con un proceso de fresado. Una fresadora controlada por ordenador fresa primero cualquier pequeña ranura o recortes internos. A continuación, la cabeza de la fresadora recoge automáticamente un cortador de 2 mm, comprueba el diámetro y recorta el perímetro de cada PCB.
17
(17) Pruebas eléctricas
Al final del proceso de producción de una PCB, cada PCB multicapa se prueba eléctricamente de acuerdo a los datos originales de la placa. Un comprobador con punta de prueba flotante verifica cada red para asegurar que todo es correcto (ningún circuito abierto) y no hace corto con ningún otro nodo. Como opción, se puede usar un método más rápido, utilizando una máquina Acceler8. Esta máquina usa 4000 diminutas puntas de prueba a modo de cepillo. Cons-
18
78 | julio / agosto 2013 | www.elektor-magazine.es
información y mercado
truye un mapa electrónico de la PCB a partir de una placa verificada previamente. Seguidamente, compara cada placa con su mapa. Esto recorta tiempos de prueba en un 90 %. (18) Inspección final
En el último paso del proceso, un equipo de inspectores con vista de águila verifica cuidadosamente cada PCB. Si todo está correcto se imprime una nota de entrega. Las PCBs son selladas al vacío para mantener fuera la humedad y el polvo. A continuación, son envueltas en plástico de burbujas, colocadas en sus cajas, selladas y enviadas a los clientes.
Ahora sabes cómo fabricamos tu placa en el Elektor PCB Service y que es lo que ocurre una vez que hace tu pedido en www.elektorpcbservice. com . En la siguiente entrega nos centraremos en los requerimientos de diseño que tenemos que cumplir considerando algunas de las propiedades físicas del proceso de producción que se han descrito aquí.. (130061) rpc b s e t o r k v e i l e
.
w w w
c
e
c .
o m
Ilustraciones cortesía de Eurocircuits.
Enlaces en Internet www.elektorpcbservice.com
Eurocircuits es un fabricante de placas de circuito impreso (PCB) con tecnología estándar, con sede en Europa. Su cuartel general está situado en la pintoresca ciudad belga de Mechelen, mientras que las unidades de producción están cerca de Aachen, en Alemania y en Eger, Hungría. Eurocircuits está especializada en el suministro de prototipos y pequeños lotes de PCBs para diseñadores, departamentos de desarrollo de productos, compañías electrónicas de este nicho de mercado, universidades e instituciones de investigación.
Publicidad
EAGLE V6 Getting Started Guide Aprendiendo a volar con Eagle
NUEV O LIBRO
Este libro (en inglés) facilita al lector una introducción al uso del paquete de software de diseño EAGLE PCB de CadSoft. Después de leer este li bro al tiempo que se practica con varios ejemplos, y se completan los proyectos, el lector debe sentirse capaz de afrontar retos más complejos. El libro te permitirá rápidamente: • obtener una visión general de los principales módulos de EAGLE: el editor de esquemas; el editor de diseño y el autorouter en un solo interface; • aprender a utilizar algunos de los comandos básicos de los módulos editores de esquemas y diseño de EAGLE; • aplicar tu conocimiento de EAGLE a un pequeño proyecto; • aprender más de algunos de los conceptos avanzados de EAGLE y sus capacidades; • comprender como EAGLE se relaciona con las etapas de fabricación de las PCBs; • crear un proyecto completo, desde el diseño a la fabricación de la PCB. El proyecto comentado en el libro es un popular y comprobado diseño del equipo de ingeniería de Elektor. 208 páginas • ISBN 978-1-907920-20-2 • 34,50 € Incl. una copia de EAGLE 6.4.0 en CD-ROM para MS Windows, Linux and Mac.
- 10 % p ar a m ie m b r o s
G RE E N
Más informacíon y pedidos en www.elektor.es/eagle www.elektor-magazine.es | julio / agosto 2013 | 79
ENCUENTRA LA DIFERENCIA Wisse Hettinga
En línea con la fuerte tendencia de la industria, Renesas subraya que su última placa GR Sakura es compatible con Arduino. Esta visión general os permite comprobar por vosotros mismos cómo de cerca es esta compatibilidad. Diferencia #1 ¡Vale, la placa GR Sakura es rosa! Pero entonces, mira las especifcaciones - ¡Rosa es Poder! Diferencia #2 Tiene 8 bits, 16 MHz y la memoria limitada del controlador AVR contra los completos 32 bits, los 96 MHz y la gran capacidad de memoria del procesador de Renesas. La verdadera pregunta es, ¿qué aplicaciones sacarán realmente todo el potencial de la GR Sakura? Diferencia #3
La funcionalidad Host USB de la placa Sakura muestra su potencial. Está implementada con un conector Mini-B, mientras que se puede montar un conector tipo A en la cara posterior de la placa.
Arduino Uno
GR Sakura
Tensión(es) de Alimentación
Tensión de funcionamiento del procesador de 5 V.
Tensión de funcionamiento del procesador de 3,3. Tensión de funcionamiento de la placa de 5 V.
USB
Conector tipo B Por defecto, la tarjeta trabaja se alimenta del USB.
Conector Mini B. Conector tipo A que proporciona soporte Host. Por defecto, la tarjeta trabaja se alimenta del USB.
Red
No
Ethernet RJ45
80 | julio / agsoto 2013 | www.elektor-magazine.es
encuentra la diferencia
ARDUINO UNO
vs. GR
SAKURA FULL Diferencia #4
No podemos negar que la verdadera potencia del concepto de Arduino se debe a su enorme y fácilmente accesible librería de programas (en www.arduino.cc) más que en el hardware. Sin embargo, tampoco debemos subestimar las opciones de programación disponibles para la placa de Sakura. Hay muchas funcionalidades que cobran vida una vez que comenzamos a usar el Compilador Basado en la Nube (‘Cloud Base Compiler’). Basta con conectar la placa a nuestro PC, pulsar los botones adecuados – todos bien documentados – y comprobar que la placa aparece como una nueva unidad de disco conectada a nuestro PC. Con el nuevo disco se crea un enlace que nos lleva directamente a la página web. Si tenéis un teléfono Android, echad un vistazo al sencillo ‘icono’ Gadget Director, basado en lenguaje de programación.
Podéis encontrar todas las referencias en www. designspark.com e ir a los Centros de Diseño. (130177)
Arduino Uno
GR Sakura
Procesador
ATmega328 8 bit Frecuencia de funcionamiento de 16 MHz.
RX63N 32 bit Frecuencia de funcionamiento de 96 MHz.
Memoria
32 KB Flash de la que 0,5 KB son usados para el ‘bootloader’. SRAM: 2 KB EEPROM: 1 KB
1 MB Flash RAM: 128KB Flash de Datos: 32 KB Zócalo MicroSD
www.elektor-magazine.es | julio / agosto 2013 | 81
Comenzando un Diseño de un Esquema Eléctrico Neil Gruending (Canadá)
La última vez hablé sobre cómo DesignSpark utiliza la tecnología de ficheros para almacenar los parámetros de configuración. En este artículo comenzaremos un nuevo proyecto e iniciaremos el diseño de un esquema eléctrico. Comenzaremos configurando las librerías de DesignSpark y, a continuación, configuraremos el bloque del título del esquema eléctrico, de manera que podamos crear un esquema eléctrico con una apariencia agradable. Configurando las librerías
Figura 1. Rutas de las Librerías Inspecting de DesignSpark.
DesignSpark utiliza los ficheros de librería para organizar toda la información de nuestro diseño. Los símbolos de los esquemas eléctricos están en un tipo de librería y las huellas de los componentes para la PCI están en otra. Seguidamente, ambas se combinan para hacer una librería de componentes que podemos usar para colocar componentes y símbolos de documentación en nuestro diseño. La única diferencia entre un símbolo de documentación y un componente habitual es que un símbolo de documentación contiene, o bien el símbolo del esquema eléctrico o bien el símbolo de la PCB, pero no ambos. Si queremos más información sobre el sistema de librerías de DesignSpark y cómo funcionan, hay un buen tutorial en la referencia [1]. En este artículo haremos un símbolo de documentación de esquema eléctrico para utilizar un pequeño bloque en un esquema eléctrico, pero antes necesitamos hacer una doble verificación sobre los caminos de búsqueda de las librerías de DesignSpark. Haremos esto yendo al menú ‘Files -> Libraries...’ y seleccionando la pestaña ‘Folders’. Aquí veremos una pantalla que se debe asemejar a algo como lo de la Figura 1 . Queremos estar seguros de que el directorio en el que estamos almacenando nuestros ficheros de librerías aparece listado como el primer elemento de la ventana ‘Folders and Search Order’, que en
82 | julio / agosto 2013 | www.elektor-magazine.es
mi caso es ‘C:\Users\Neil Gruending\Documents\ dspcb2lib\library’. Podemos volver a ordenar la lista de directorios seleccionando el directorio que queremos y desplazarlo usando los botones ‘Up’ y ‘Down’. Recomiendo que no salvéis ningún cam bio o ningún nuevo fichero en los directorios por defecto del sistema de librerías de DesignSpark ya que, en una posible actualización futura de las librerías, estos ficheros serán sobre-escritos. Ahora que hemos configurado las rutas de las librerías, ya podemos crear una nueva librería de símbolos del esquema eléctrico donde almacenar nuestro bloque de título del esquema, seleccionando el botón ‘New Lib…’ en la pestaña ‘Schematic Symbols’. A continuación, seleccionamos el botón ‘New Item…’ para abrir una página en blanco de símbolo de esquema. Para más información podemos volver a ver el tutorial de creación de símbolos en la página web de DesignSpark [1]. Creando un bloque de título de un esquema eléctrico
Personalmente, siempre utilizo los bloques de título en un esquema eléctrico para hacer que éste parezca más profesional y para ayudar a documentar el diseño. DesignSpark es diferente a otros paquetes ya que los bloques de títulos del esquema son almacenados en una librería de componentes de esquemas en lugar de en un fichero plantilla o sobre un fichero de tecnología, lo que significa que DesignSpark ignorará cualquier elemento de dibujo en un fichero de tecnología de esquemas. DesignSpark viene con varias plantillas de bloques de títulos en su librería Schema, en varios tamaños diferentes como A4 y ‘Letter’, pero yo prefiero usar la plantilla Tabloid (11 in. × 17 in.) para mis diseños. También prefiero usar una zona de documentación más tradicional que ocupa menos en la zona de dibujo. En mi último artículo os mostré cómo usar las fuentes ‘truetype’ en un fichero de tecnología de esquemas, pero hay una desventaja en su uso dentro de un bloque de título de esquema. Esto es debido a que DesignSpark desplaza ligeramente las fuentes ‘truetype’ hacia abajo cuando se imprime un esquema en un fichero PDF. Esto, normalmente, no importa mucho para cosas como
trucos y consejos
los nombres de las referencias, pero en los bloques de título, donde el alineamiento del texto es más importante, lo notaremos bastante. Así pues, decidí utilizar las fuentes ‘stroke’ para mi bloque de título, tal y como se muestra en la Figura 2. Recomiendo que deis nombre a varios estilos de texto de manera que os sea más fácil modificarlos más tarde. En mi caso acabé utilizando los estilos de texto que se muestran en la Figura 3. Los números y letras alrededor de la estructura del área de dibujo usan el estilo de texto ‘Frame’ y la descripción de campos usa el estilo de texto ‘Title-small’. El campo de ‘items’ usar el estilo ‘Title’. Como DesignSpark no soporta variables de proyecto, tenemos que añadir los bloques de texto en el bloque de título de manera manual, este es el motivo por el que todos los campos del bloque de título están en blanco en el componente ‘esquemático’. Además, no tenemos que añadir estos estilos de texto al fichero de tecnología del esquema ya que serán copiados sobre el esquema cuando añadamos el bloque de título. Una vez que hemos acabado de editar el bloque de título, lo salvamos en la librería de símbolos del esquema que hemos creado previamente, de manera que podamos crear un símbolo de documento de esquema. El primer paso es abrir el Library Manager (‘File->Libraries…’) e ir a la pestaña ‘Components’. Podemos crear una nueva librería de componentes seleccionando el botón ‘New Lib…’ y, a continuación, crear el símbolo de documento pulsando sobre el botón ‘New Item…’ que nos abrirá la ventana ‘New Component’. Aquí ya podemos dar un nombre al componente y seleccionar nuestro símbolo de bloque de título. Desmarcando la casilla ‘PCB Symbol’ haremos que el componente sea un símbolo de documento de esquema como el que necesitamos. Salvamos nuestros cambios y vamos a iniciar un nuevo proyecto en DesignSpark. Creando un nuevo proyecto
DesignSpark usa los proyectos para recoger toda la información relevante sobre un diseño, como los documentos de los esquemas eléctricos y la PCB, en un único lugar. La principal razón de usar un proyecto es la de permitir que un conjunto de hojas de esquemas eléctricos estén enlazadas al diseño de una PCB. Las hojas de los esquemas eléctricos enlazadas pueden así actuar como un proyecto más grande donde la información global de la red es compartida y todas las referencias de los componentes son únicas.
La creación de un nuevo proyecto en DesignSpark es muy simple. Vamos la opción de menú ‘File -> New’ y abrimos la ventana ‘New Design’; seleccionamos ‘Project’ y pulsamos sobre ‘OK’. A continuación se nos preguntará dónde queremos salvar el nuevo proyecto y, seguidamente, se nos creará un proyecto en blanco para nosotros. Ahora ya podemos añadir los ficheros existentes al proyecto usando el menú ‘Project -> Add Files to Project…’. Añadir nuevos elementos a un proyecto se hace abriendo la ventana ‘New Design’, pero antes de pulsar sobre el botón ‘OK’ debemos asegurarnos de que tenemos marcada la casilla ‘Add to Open Project’.
Figura 2. Estructura y diagrama del bloque del título del esquema eléctrico.
Figura 3. Formato de texto del bloque de título.
Conclusión
Ahora que ya podemos crear un proyecto y crear plantillas de esquemáticos con una apariencia agradable, el siguiente paso es comenzar a dibujar nuestro diseño usando componentes de las librerías de DesignSpark. También podemos crear y usar nuestras propias librerías con algunos atributos extras en los componentes que harán que sea Figura 4. Un bloque de título de un esquema más fácil generar una lista de eléctrico completado. materiales (BOM) más tarde. El pequeño bloque que he dibujado aquí (ver Figura 4), está disponible en mi proyecto dsppcb2lib , en Bitbucket, en la referencia [3]. (130181)
Referencias en Internet [1] www.designspark.com/tutorial/ components-library-structure-library-manager [2] www.designspark.com/tutorial/componentscreation-with-symbol-footprint-wizards [3] https://bitbucket.org/neilg/dspcb2lib
www.elektor-magazine.es | julio / agosto 2013 | 83
Oscilador Wien de Banda Ancha con Potenciómetro Sencillo Merlin Blencowe (Reino Unido)
Este oscilador en puente de Wien (por Max Wien, 1866–1938), produce una onda senoidal de baja distorsión de amplitud constante, de una frecuencia comprendida entre 15 Hz y 150 kHz. Tan sólo requiere cuatro amplificadores operacionales y trabajará sin descanso con una pila de 9 voltios. Además, a diferencia de la mayoría de los osciladores en puente de Wien, no requiere de un potenciómetro de doble galleta para su ajuste. El amplificador operacional IC2b proporciona una masa artificial de manera que el circuito puede trabajar con una tensión de alimentación unipolar (batería de 9 V o regulador de tensión). IC2a es el amplificador principal del oscilador. El rango de frecuencia está dividido en cuatro décadas por medio de un conmutador rotativo, SW1, de
cuatro líneas y de 2 polos. Sólo se ajusta un brazo de la red Wien, pero el cambio de realimentación positiva que se produciría normalmente, es compensado por IC1b, que trabaja para aumentar R2, con lo que la realimentación negativa cambia lo suficiente para mantener la oscilación. Un cambio lineal en la resistencia del potenciómetro de sintonía se traduce en un cambio logarítmico, poco fino, de la frecuencia. Para obtener un cambio lineal más convencional, se ha usado un potenciómetro de ajuste logarítmico, de manera que al girar su mando en sentido anti-horario, provoca un incremento de la frecuencia. Si lo preferimos, podemos usar un potenciómetro anti-logarítmico para girar
C9
R12 100R
+4V5
47u D1
R6
R3
10k
10k
R8 3
2
IC1.A
R7 k 0 0 1
1N4148
1
R1
k 1
k 0 1
C10
C1
C2
1u
100n 2
IC2.A
C3
C4
10n
1n
3
1 1
47u
2
8
3 10
R9
P2
K2
R2 SW1 k 0 1
R 0 0 1
2
RANGE
R4
1 LEVEL 10k
R 0 0 1
7 D2
D4
R13
k 2 1
1N4148
5
R5
LDR
7 P1
14
IC1.B 6
FREQ
1u
100n
12 C7
C8
10n
1n
+4V5
D3
R10
1N4148
BATT+
13 C6
5 10k
+9V
C5
k 0 1
K1 2
C12
1 47u 16V
8
8
IC1
IC2
4
4
5
IC2.B
7
+4V5
6 R11 C11 k 0 1
47u 16V
BATT–
IC1, IC2 = TL072
84 | julio / agosto 2013 | www.elektor-magazine.es
120330 - 11
pruebas y medidas
en sentido horario, pero estos componentes son bastante difíciles de encontrar. IC1a es un integrador que monitoriza la amplitud de la señal de salida y que controla un LED (D2). El LED debe montado frente a la LDR (Light Dependent Resistor, o Resistencia Dependiente de la Luz) y protegido de la luz ambiente (por ejemplo, con un trozo de tubo termo-retráctil). Así, IC1a es capaz de controlar la ganancia de IC2a de manera que la oscilación se mantiene con un mínimo de distorsión. La amplitud de salida máxima del generador es de unos 2 Vp-p cuando el LED y la LDR están montados los más próximos posible. La dispersión es
menos del 0,5 % en el rango más bajo y demasiado baja para que el autor la pueda medir en los rangos más altos. Cualquier LDR debería funcionar, funcionar, siempre y cuando su resistencia en oscuridad sea mayor de 100 kΩ. Si no disponemos de una LDR con una resistencia tan elevada, intentad incrementar R5 hasta que la oscilación comience. El autor construyó varios prototipos del circuito en placas de montaje rápido, usando encapsulados de amplificadores operacionales dobles y cuádruples y ambos modelos trabajaba igual de bien. Los ficheros de DesignSpark de los esquemas eléctricos y del diseño de la placa del circuito para este proyecto, están disponibles para su descarga en e n www.elektor.es/120330. www.elektor.es/120330. (120330)
LISTA LISTA DE COMPONENTES Resistencias R1,R2,R3,R6,R10,R11 = 10kΩ R7 = 100kΩ R4,R9,R12 = 100Ω R5 = 12kΩ R8 = 1kΩ P1,P2 = 10kΩ potenciómetro, ley logarítmica R13 = LDR, R(oscuridad) >100kΩ, por ejemplo, el modelo VT90N1 de Excelitas Tech (Newark/Farnell # 2568243)
Condensadores C1,C5 = 1�F sólido C2,C6 = 100nF C3,C7 = 10nF C4,C8 = 1nF C9-C12 = 47�F 16V, electrolítico, radial
Semiconductores D1,D2,D3 = 1N4148 D4 = LED, red, 5mm IC1,IC2 = TL072ACP
K1,K2 = bloque terminal para PCI, separación entre terminales de 5 mm. PCI # 120330-1
Varios SW1 = conmutador rotatorio de 4 posiciones y 2 polos, modelo RTAP42S04WFLSS de C&K Components
www.elektor-magazine.es | julio / agosto 2013 | 85
DesignSpark-PCB
•
Controlador de Carga Fotovoltaico de 4 A
T. A. Babu (India)
El uso de fuentes de energía solar fotovoltaica (PV) está en crecimiento debido a la preocupación por el calentamiento global, por una parte, y a la relación coste-eficacia por otra. Muchos ingenieros implicados en la electrónica de potencia se sienten tentados por la energía solar y terminan siendo ‘adictos’ debido al concepto de energía ‘verde’. ‘verde ’. El circuito que presentamos aquí trabaja con una corriente de hasta 4 amperios, a partir de un panel solar, lo que equivale, aproximadamente, a 75 vatios de potencia. En este diseño se ha introducido un algoritmo de carga llamado ‘modulación de tiempo de pulso’. La corriente eléctrica que fluye desde el panel solar hacia la batería está controlada por un MOSFET de canal N, T1. Este MOSFET no requiere del uso de ningún disipador térmico que se deshaga de su calor, ya que su rango de RD-S(on) es sólo de 0,024 Ω. El diodo Schottky D1 impide la descarga de la batería sobre el panel solar por la noche, a la vez que proporciona la protección contra inversión de polaridad en la batería. En el esquema eléctrico, las líneas con un toque de color rojizo indican caminos de corrientes potencialmente más altos. El controlador de carga nunca consume corriente de la batería. Siempre está alimentado por el panel solar. Por la noche el controlador de carga no trabaja. Durante el día, tan pronto como el panel solar produce suficiente corriente y tensión, el controlador comienza a cargar la batería. La tensión final de la batería es dividida por la resistencia R1 y el potenciómetro P1. La tensión resultante establece establece el estado de carga del con-
86 | julio / agosto 2013 | www.elektor-magazine.es
trolador. trolador. El corazón del controlador de carga es IC1, un dispositivo de tensión de referencia del tipo TL431ACZ, con un amplificador de error de colector abierto. Aquí, la tensión de muestra de la batería se compara constantemente con la tensión de referencia interna del TL431. Mientras el nivel establecido con P1 esté por debajo de la tensión de referencia interna, IC1 obligará a que el MOSFET conduzca. Como la batería comienza a tomar carga, la tensión en sus extremos finales aumentará. Cuando la batería alcanza el punto de trabajo de ‘cargada’, la salida de IC1 cae a menos de 2 voltios y desactiva claramente c laramente el MOSFET, MOSFET, deteniendo toda corriente eléctrica hacia la batería. Con T1 desactivado, el LED D2 también se apaga. No hay ningún camino de histéresis proporcionado en el CI regulador. Por consiguiente, tan pronto como la corriente hacia la batería se detiene, la salida de IC1 permanece a nivel bajo, evitando que el MOSFET siga conduciendo incluso si la ten sión de la batería cae. La química de la batería de ácido de plomo exige una carga flotante, por lo que se ha implementado un oscilador muy simple aquí para realizar esta función. Nuestro oscilador explota la resistencia negativa de los transistores (descubierta por primera vez por Leo Esaki y parte de sus estudios sobre el efecto ‘túnel’ de los electrones en los sólidos, que le valieron el Premio Nobel de Física en 1973). En esta realización se ha usado el típico transistor NPN 2SC1815. Cuando el LED se apaga, R4 carga el condensador de 22 �F (C1) hasta que su tensión es lo bastante alta para causar que la unión base-emisor de T2 pase a saturación. En este punto, el transistor se enciende rápidamente y descarga el condensador a través de R5. La caída de tensión en los extremos de R5 es suficiente para activar T3 que, a su vez, modifica la tensión de referencia establecida. Ahora, de nuevo, el MOSFET intenta cargar la batería. batería . Tan pronto como la tensión de la batería alcanza una vez más el nivel carga final, el proceso se repite. Las pruebas han demostrado que un transistor 2SC1815 trabaja correctamente en este circuito. Otros transistores pueden ser más ‘temperamentales’. Os aconse jamos que que estudiéis estudiéis el laureado laureado trabajo de Esaki Esaki
fuentes de alimentación
D1
MBR1645G
R1 k 5 1
R2
R3
3 k 3
3 k 3
IC1
K1
K2 2
2
TL431ACLP
1
12V
1 P1
2SC1815
T3
R4
T2
SOLAR
12V BATTERY
2M2
5k
BC547 R5
D2
C1 k 1
22u 25V
T1
CHARGE
IRFZ44NPBF
para averiguar por qué, pero os advertimos que hay matemáticas duras por delante. Cuando la batería se carga totalmente, el tiempo de oscilador ‘activo’ se acorta, mientras que el tiempo de oscilador ‘desactivado’ permanece largo, según lo establecido por los componentes de temporización R4 y C1. En efecto, se envía un pulso de corriente a la batería que se acortará con el tiempo. Este algoritmo de carga puede ser llamado ‘Modulación de Tiempo de Pulso ’. Para ajustar el circuito necesitaremos nece sitaremos un buen voltímetro digital y una fuente de alimentación variable. Ajustamos la fuente a 14,9 V, es decir, los 14,3 voltios de la batería más los 0,6 V, aproximadamente, que caen en los extremos del diodo de Schottky. Giramos el potenciómetro hasta el punto en que el LED se apaga, es decir, el punto de interrupción, y el LED comenzará a oscilar. Debemos intentar
11075 110751 1 - 11
este ajuste más de una vez ya que, cuanto más próximo a los 14,3 V conmute el comparador, más exacto será el cargador. Desconectamos ahora la fuente de alimentación del regulador de carga y ya lo tendremos listo para el panel solar. solar. El ajuste de 14,3 V mencionado aquí podría aplicarse para la mayoría de las baterías de ácido de plomo, tanto las de célula inundada como las selladas pero, por favor, favor, comprobad y verificad el valor de las mismas con el fabricante. Debemos seleccionar el panel solar de modo que su capacidad en amperios esté dentro del límite de carga seguro de la batería que estamos intentando usar. Los ficheros de DesignSpark de los esquemas eléctricos y del diseño de la placa del circuito para este proyecto, están disponibles para su descarga en www.elektor.es/110751 . (110751)
r t o k
pc b bs
e
l
e
.
w w w
e
r
v c
i
e
. c
o m
LISTA DE MATERIALES Resistencias R1 = 15kΩ R2,R3 = 3,3kΩ 1% R4 = 2.2MΩ R5 = 1kΩ P1 = 5kΩ potenciómetro de ajuste
Condensadores C1 = 22�F 25V, radial
Semiconductores D1 = MBR1645G (ON Semiconductor) D2 = LED, 5mm
IC1 = TL431ACLP (Texas instruments) T1 = IRFZ44NPBF (International Rectifier) T2 = 2SC1815 (Toshiba) (componente marcado como: C1815) T3 = BC547
Varios K1,K2 = bloque terminal de 2 terminales para PCB, separación entre terminales de 5 mm. Placa referencia 110751-1
www.elektor-magazine.es | julio / agosto 2013 | 87
Proyectos
•
Mini-Tester para Servos Imprescindible para aficionados al modelismo Bernhard Kaiser y Michael Gaus
Generalmente, resulta difícil apreciar si un servo está estropeado a primera vista, desde el exterior. Por lo tanto, ¡cualquier aficionado al modelismo debería tener un dispositivo como este! +5V P1
R2 k 1
50k
R3
C3
R1 100n 14
k 0 1
K1 +5V GND
k 0 2 2
VCC 2
1 6 2 1
THR1
RST1
TRIG1
OUT1
DIS1
IC1
CV1
4 5 3
NE556CN 12 8 13
THR2
/NOPB
TRIG2
RST2 OUT2
DIS2
CV2
K2
10 9 11
PULS
1
+5V
2
GND
3
GND
Figura 1. El mini-circuito del tester de servos con un temporizador dual.
C4
C2
47n
47n
7
C1
Servo 10u 16V
120474 - 11
Los servos son populares en el modelismo porque son pequeños, ligeros y asequibles, y tampoco hacen falta grandes esfuerzos para controlarlos. Éstos se conectan directamente al receptor de radio. Generalmente cuentan con tres terminales: alimentación positiva (+5V), masa (GND) y línea de control (pulsos), la cual determina la posición del servo. La señal de esta línea, proporcionada por el receptor de radio, está modulada en ancho de pulso. Los pulsos positivos de aproximadamente 1 ms de duración corresponden a un movimiento hacia la rpc b s e
t o
k e
l
e
.
w w w
r
v c
i
e
. c
o
m
Figura 2. El circuito puede montarse cómodamente sobre esta placa.
Lista de materiales Resistencias: R1 = 220 kΩ R2 = 1 kΩ R3 = 10 kΩ P1 =potenciómetro de 50 k, lineal
Condensadores: C1 = 10 �F, 16 V, RM7,5 C2, C4 = 47 nF C3 = 100 nF
88 | julio / agosto 2013 | www.elektor-magazine.es
izquierda, y los de 2 ms hacia la derecha; en 1,5 ms está el punto medio. Mediante el ancho del pulso se determina el ángulo que debe seguir el servo. La tasa de repetición de los pulsos es de aproximadamente 20 ms, pues corresponde a una señal de 50 Hz. Sin embargo, esta frecuencia no es tan crítica. Si el modelo no funciona como debería, aparte del emisor y el receptor de radio, el problema también suele ser el propio motor. Con este circuito pueden comprobarse rápida y fácilmente los servomotores, identificando el origen del problema Semiconductores: IC1 = NE556CN
Varios: K1 = conector tipo pin-header de 2 pines, RM 2,54 mm K2 = conector tipo pin-header de 3 pines, RM 2,54 mm Placa referencia 120474-1 Los archivos del proyecto para DesignSpark están disponibles aquí [1].
minitester
(o no). El generador de pulsos de la figura 1 es el pan de cada día de muchos electrónicos. Dos temporizadores
El generador de pulsos se ha diseñado con un temporizador integrado dual NE556, cuyo ancho de pulso puede ajustarse mediante un potenciómetro. Temporizador 1 en el NE556 genera a través de la resistencia R1 así como del condensador C2 la tasa de repetición de la señal de control del servo. La señal de salida en el pin 5 tiene un factor de servicio aproximadamente simétrico. Mediante el condensador C3 se dispara el segundo temporizador con un flanco negativo, generando posteriormente un único pulso positivo en la salida (pin 9). El ancho de pulso depende del condensador C4 así como del valor de la resistencia equivalente de R3 y P1. El ancho de pulso puede cambiarse accionado P1. Según los valores dados de los componentes, el ancho de pulso puede ajustarse entre 0,5 y 2,6 ms, cubriendo así el rango normal de entre 1,0 y 2,0 ms. Sin embargo, el potenciómetro no
debe moverse hasta sus extremos, en caso contrario el servo alcanzaría los finales de carrera, lo cual sólo contribuye a reducir su vida útil. Al conectar la alimentación el potenciómetro debe encontrarse en aproximadamente en el punto medio. La tasa de repetición de los pulsos en el montaje de prueba es de unos 18 ms. La mayoría de servos operan en el rango de tensiones entre 4,8 y 6 V. Aquí hemos optado por una alimentación de entre 5 y 6 V, que se obtiene conectando cuatro pilas AA en serie. También basta con conectar cuatro baterías NiMH, aunque la tensión resultante sea sólo de 4,8 V. Para que el montaje del circuito sea lo más cómodo posible, se ha desarrollado una placa (figura 2 ), disponible en Elektor [1]. Gracias a ella, no deberíamos tener ningún problema. (120474)
Enlaces [1] www.elektor.es/120474 Publicidad
powered by Eurocircuits
tor k le E e d s a v e u C B s n P s a l n e o t n e 25 % de de scu ¡Aprovéchate ahora: Elektor PCB Service ofrece siempre un descuento durante los 90 días posteriores al lanzamiento de las nuevas placas de Elektor!
En www.elektor.es/pcb encontrarás todas las PCBs de Elektor
www.elektor-magazine.es | julio / agosto 2013 | 89
Proyectos
•
Limitador de Sobre-Corriente X-Treme Un arranque controlado para grandes electrolíticos y Cia.
Raymond Vermeulen (Laboratorios de Elektor)
Figura 1. Un boceto del estilo de Bob Pease de una idea para el limitador de sobre-corriente.
Este proyecto totalmente analógico, sin microcontrolador (!), fue diseñado en respuesta a los peticiones de ayuda de un acérrimo aficionado a los aviones de modelismo del personal de Elektor. Le gusta volar grandes modelos de alta potencia. Un problema con el que se topó fue la autodestrucción de los conectores de alimentación cuando se conecta el paquete de baterías al avión (es decir, el controlador del motor). Siempre el daño era debido al fuerte chispazo que se producía por las grandes sobre-corrientes. Éstas eran chispas caras debido a que se trataba de conectores dorados con contactos de 6 mm de diámetro. Claramente se requiere de un limitador de sobre-corrientes que asegure un flujo de corriente eléctrica inicial controlado, sin chispa, en lugar de un trastazo y una pequeña explosión. Sin embargo, un regulador así no cae del
90 | julio / agosto 2013 | www.elektor-magazine.es
cielo y me llevó un tiempo el desarrollarlo en los Laboratorios de Elektor. Más abajo se muestra un resumen de como el proyecto evolucionó de un boceto a un modelo de trabajo que gusta a todos. Encontramos el buen camino en la Nota de Aplicación de Motorola, número AN1542 [1]. Usando los toscos bocetos de concepto (ver Figura 1), se consiguió diseñar un limitador de sobre-corriente para una tensión de batería de 37 voltios y una carga de 200 amperios en el funcionamiento normal. Para conseguir una baja Rds(on) total es mejor usar un par de MOSFETs en paralelo. Después de ejecutar una simulación en LTspice, el problema parecía no estar en los amperios, sino en la capacitancia de carga responsable de la sobre-corriente, con lo que el circuito fue diseñado para el peor de los casos. Aún así, había preocupaciones sobre el área de funcionamiento segura de los MOSFETs. Para tener una idea, se hicieron algunas medidas sobre un pequeño controlador de motor BLDC de 3 fases y 10 A, y el resultado fue que teníamos “tan sólo” 120 �F de capacidad de entrada. Un poco más tarde, se conecto un controlador de motor más grande, especificado para 120 A, y se encontró que presentaba una capacitancia de entrada de 13.800 �F (13.8 mF), con una ESR de, aproximadamente, 2,7 m Ω.
limitador de sobre-corriente
K4 VBATT
R1 4 7 k 2
K3
LOAD
C3 470n 100V
R3
R9
R8 T1
3 k 3
*
k 0 1
3 k 3
PMEG6010CEH T2 D2
1SMB5925B
R5
R7 470k
C1
10u 25V
1M8
D1
T3
R6
10V 3W
R10
3 k 3
D4
D3 T4
R 0
T5
IC1 3
T7
5
T8
1 T6
4 R2
2
2N7002
2N7002 R4 C2
5 k 1
LT1716CS5#PBF
Figura 2. Esquema eléctrico del Limitador de SobreCorriente X-Treme. Las pistas de la PCB de alta corriente están resaltadas y son más gruesas.
k 0 7 4
10u 25V
VBATT
HSME-A401-P4PM1 T1...T6 = IPB017N06N3 SM6T12CA K2
120733 - 11
Avanzando hacia un circuito práctico, se eligió el MOSFET IPB017N06N3 de Infineon principalmente por la promesa de 1,7 mΩ de la resistencia ‘en activo’ por dispositivo, sin olvidar el coste relativamente bajo y la buena disponibilidad en los distribuidores. Así pues, la pregunta que permanecía era: ¿cuántos MOSFETs necesitamos? De vuelta a la simulación LTSpice, ahora usando el modelo IPB017N06N3, hubo que adaptar los valores de algunos componentes. Además, encontramos un radiador barato, de tamaño estándar (1/2 bloque) y con agujeros pre-taladrados. Mirando el esquema eléctrico de la Figura 2 hay algunas diferencias importantes con la versión propuesta en la AN1542. En la nota de Motorola la forma de la corriente es una onda cuadrada que provoca una corriente y una tensión repentinas que mueren despacio. Por contra, el circuito mostrado aquí tiene el aumento suave de corriente, que provoca una corriente con forma de diente de sierra. Así pues, la gráfica de disipación de potencia ( P FET) se parece a una parábola invertida. La Figura 3 muestra las formas de onda básicas que, podría decirse que respetan la zona de funcionamiento segura del MOSFETs mucho mejor que en la AN1542. El diodo TVS (supresión de tensión transitoria), D3, ayuda a proteger el MOSFETs en caso de inversión de polaridad accidental.
K1
BATT
Tabla 1. Valor de Trabajo / dependencia de la tensión de batería Tipo Batería ( Litio)
Voltios Batería
Vtrip
R1
4S
12 – 16,8 V
11 V
180 Ω
5S
15 – 21 V
14,2 V
620 Ω
6S
18 – 25,2 V
16,8 V
1 kΩ
8S
24 – 33,6 V
22,9 V
1.87 kΩ
10S
30 – 42 V
28,9 V
2.74 kΩ
11S
33 – 46,2 V
31,8 V
3.16 kΩ
12S
36 – 50,4 V
34,9 V
3.6 kΩ
Se probó un primer prototipo con un condensador de 15.000 �F (15 mF), con y sin carga resistiva, conectándolo a una tensión de alimentación de 40 V a través del circuito X-Treme. Parecía que todo funcionaba como se esperaba, aunque sin la carga resistiva conectada, el bloqueo de las bajas tensiones no funcionaba correctamente en el flanco de bajada. Como prueba final, el circuito se usó con un regulador BLDC que controlaba un motor de 10 kW, sin carga. El consumo era de 8,5 A a velocidad continua y entre 20 y 30 A con aceleración. Las pruebas se hicieron con 37 V y 48 V, haciendo ‘arranques en frío’ varias veces. Aunque los cables y los conectores se calentaron de forma apreciable, los MOSFETs y el resto del circuito per-
www.elektor-magazine.es | julio / agosto 2013 | 91
Proyectos
•
cuito no debería usarse con tensiones de batería más bajas de 12 V. Por suerte esto sucede raras veces en aplicaciones de motores de gran potencia (BLDC). Podemos ver fácilmente por qué. La placa de circuito impreso trabaja potencialmente con tensiones muy altas, tanto en modo ‘pico’ como en ‘continuo’, lo que significa que
VDS
t
tenemos que reforzar todas las pistas de los drenadores y las fuentes de los MOSFET en la PCB, así como la longitud total de las pistas de la placa de las líneas BATT- y BATT+, con trozos de hilo de cobre rígido de 2,5 mm 2 (AWG 13), preferentemente dos en paralelo .
VGS
t
ID
t
PFET
Figura 3. Nuestro circuito resultante con la forma de una parábola inversa para la disipación de potencia de los MOSFETs.
t 120733 - 13
manecieron fríos. No se escucho ningún sonido tipo “golpe” (tan habitual en las cargas de altas corrientes), ni ningún condensador explotando. Esto nos animó a continuar con el diseño y la producción de una tarjeta de circuito impreso TH/ SMD, de una sola cara (!). En la Figura 4 se muestra el diseño de los componentes. El valor de R1 establece la tensión de trabajo, que es dependiente de la tensión de la batería. Las interdependencias están listadas en la Tabla 1. En la práctica, el cir-
Lista de materiales Resistencias (Todas 0,25 W, 1%, SMD 1206) R1 = 2,74kΩ * R2 = 1,5kΩ R3,R6,R8 = 3,3kΩ R4,R5 = 470kΩ R7 = 1,8MΩ R9 = 10kΩ R10 = 0Ω
Condensadores C1,C2 = 10�F 10% 25V, X5R, 1206 C3 = 470nF 10% 100V, X7R, 1206
92 | julio / agosto 2013 | www.elektor-magazine.es
La mayor parte de este trabajo de ‘fontanería’ está en la zona que será cubierta más tarde por el radiador. Si encontramos hilo de cobre de 1,5 mm2 (AWG16), será más fácil hacer conjuntos de hilos de dos, tres o hasta cuatro trozos en paralelo. También deberemos aplicar cantidades generosas de estaño a lo largo de las pistas y los hilos de cobre. Es un poco como un curso de fontanería para principiantes. Si, por alguna razón, nuestra placa viene con la máscara de soldadura sobre las pistas antes mencionadas, retiraremos el material de la máscara y dejaremos a la vista el cobre, rascando con un cutter de modelismo afilado. Le daremos una capa de estaño y colocaremos los hilos de soporte. Las conexiones de la batería y de la carga, K1-K2 y K3-K4, deben hacerse usando terminales de alta calidad de nuestra elección, preferentemente de oro plateado. Conseguid el mejor que podáis encontrar, redondo o plano (‘FastOn’ / tipo espadín), el que prefiráis, siempre y cuando los soldéis directamente a las pistas de la PCB. Recordad, cada miliohmio cuenta en este circuito y no queremos perder potencia en el motor o en el par motor durante el despegue. Ahora, hacedlo. Para evitar la inversión de polaridad, podemos con-
Semiconductores D1 = 1SMB5925B diodo zéner, SMB (Newark/ Farnell # 1894811) D2 = PMEG6010CEH, diodo Sc hottky, NXP, SOD-123F (Newark/Farnell # 1510694) D3 = SM6T12CA, diodo TVS, STmicroElectronics, SMB (Newark/Farnell # 9885870) D4 = HSME-A401-P4PM1, LED, verde, Avago, PLCC-4 (Newark/Farnell # 1058419) IC1 = LT1716CS5#PBF, comparador, Linear Technology, SOT-23-5 (Newark/Farnell # 1417738) T1,T2,T3,T4,T5,T6 = IPB017N06N3, N-MOSFET, Infineon, TO-263-7 (Newark/Farnell # 1775519)
T7,T8 = 2N7002, N-MOSFET, Diodes Inc., SOT-23 (Newark/Farnell # 1713823)
Varios K1-K4 = conectores de alta corriente, pares macho-hembra con recubrimiento dorado * Radiador, con forma de ½ bloque, Aavid Thermalloy modelo 241204B92200G, dimensiones: 60,96mm x 57,91mm x 11,4mm (Newark/Farnell # 1703176) PCI 120733-1
* componente configurable por el usuario, ver texto
limitador de sobre-corriente
siderar usar un conector hembra y uno macho en las líneas ‘+’ y ‘–’ de la batería. Lo mismo puede hacerse con las líneas ‘+’ y ‘-’ de salida. Los MOSFETs están colocados en horizontal sobre la placa y el radiador va sobre ellos, con una lámina de material térmico conductivo que se mantiene presionada entre ellos. El radiador se sujeta con cuatro tornillos M3 en las esquinas, con dos arandelas M3 en cada tornillo que actúan de separadoras, es decir, van colocadas entre la superficie de la placa y la cara plana del radiador. La altura total de separación es de, aproximadamente, 5 mm. Los tornillos deben apretarse ligeramente para comprimir muy poco el material térmico de la hoja conductora. Aunque aquí hayamos estado hablando principalmente de controladores de motor para modelos de R/C, el circuito es adecuado para cualquier carga de 12 a 40 V DC que presente una resistencia inicial muy baja, incluyendo grandes condensadores electrolíticos de almacenamiento y lámparas de filamentos.
Figura 4. El diseño de la placa del circuito es compacto y está pensado para que el radiador cubra los MOSFETs. La serigrafía de las pistas de cobre, como se muestra, no son apta para su uso directo. Tenemos que reforzar todas las pistas de la PCB que tengan que soportar el paso de la corriente de carga con trozos de hilo de cobre macizo.
(120733)
[1] AN1542: www.bonavolta.ch/hobby/files/MotorolaAN1542.pdf [2] Hojas de características del IPB017N06N3: www.infineon.com/dgdl/IPB017N06N3_Rev2.2.pdf?folderId=db3a30431441fb5d01148ca9f1be0e77&fileId=db3a30431ddc9372011e264a7ab746ea
www.elektor-magazine.es | julio / agosto 2013 | 93
Proyectos
•
Cargar un Móvil con Pilas de NiMH Ton Giesberts
con el paquete de alimentación USB de Elektor
(Laboratorios de Elektor)
El objetivo de este proyecto es permitir que unas pilas recargables estándar de tamaño AA, como las de NiMH, de puedan usar para cargar dispositivos portables como teléfonos móviles y tabletas, a través de un conector USB. teléfono móvil, tableta o e-gizmo tiene una necesidad imperiosa de ser cargado y no tenemos ninguna otra alternativa. ¿Cuántas pilas recargables usar?
El circuito tiene que generar 5 V y ser capaz de entregar hasta 1 A de corriente de salida. Cuatro pilas recargables NiMH recién cargadas pueden tener una tensión bastante por encima de los 5 V, por lo que parece prudente bajar su número tres. Sin embargo, hablando en términos de USB, los ‘5 V’ son nominales, mientras que su rango real está comprendido entre 4,35 V y 5,40 V. Aunque de nuevo esto está en favor de poder usar cuatro pilas recargables, seguimos queriendo obtener una tensión de alimentación de 5,00 V que sea precisa, aunque sólo sea porque algunos diseñadores utilizan la tensión USB como una tensión de referencia (manteniendo esta limitación a aplicaciones no críticas). Así pues, tres pilas recargables. Conversor elevador TPS61030
En cifras, probablemente haya más cargadores para pilas de NiMH que para pilas de Ión-Litio o de polímero de Litio. Si buscábamos usar ésta última solución tendríamos que haber integrado el circuito cargador, haciendo que el ‘paquete de las pilas’ sea más caro y complejo. Mantener las baterías separadas de la caja aún os deja la opción de usar baterías de Li-ion o LiPo. Por suerte, su tensión inicial (3,6–3,7 voltios) es casi la misma que la de tres pilas NiMh colocadas en serie. Además, el usar un soporte de pilas independiente nos permite intercambiar bloques de pilas descargadas con unas ‘frescas’ sin tener que cargarlas primero o tener que abrir la caja. Esta es una posibilidad muy valiosa si nuestro
94 | julio / agosto 2013 | www.elektor-magazine.es
La tensión más baja de las tres pilas implica el uso de un soporte para las pilas más pequeño, pero también la necesidad de un conversor elevador. Texas Instruments nos proporciona un excelente componente para esta tarea, el TPS61030. Es un conversor elevador síncrono con un conmutador interno de 4 A y una eficiencia del 96% (por supuesto, dependiente de la tensión de entrada y de la corriente de salida). El conversor también tiene un Comparador de Batería Baja (opcional) para evitar descargas profundas de las baterías. Un bloqueo de tensión baja (1,6 V) evita que el conversor trabaje incorrectamente. La tensión de referencia interna es de 0,5 V, lo que facilita el cálculo del divisor de tensión para la tensión
fuente de alimentación
de salida correcta. En este caso se ha usado un valor de 1,8 MΩ para R3 y 200 kΩ para R4. Según las hojas de características, sólo si R4 es significativamente inferior a 200 kΩ, se necesitaría un condensador adicional en paralelo con R3 para mantener la estabilidad. Para evitar problemas, aquí hemos añadido un condensador de 10 pF. La resistencia R2 debe ser lo suficientemente baja como para eliminar la corriente de entrada del comparador (de unos 10 nA). Se recomienda un valor de 500 kΩ. El nivel del comparador es de unos 500 mV con una histéresis del 10 mV. Se ha elegido un umbral de 1,1 V para definir una batería totalmente descargada. Valores de resistencia de 1,8 MΩ para R1 y de 330 kΩ para R2 dan como resultado un umbral teórico de 3,23 V. Si la tensión de batería total cae por debajo de este umbral, la salida del comparador pasa a nivel bajo (LBO). Esta salida se utiliza para desactivar el circuito de salida. El desacoplo de la tensión de entrada por los condensadores C1 y C2 está de acuerdo con las recomendaciones de las hojas de características. El desacoplo de la tensión de salida depende del rizado de salida máximo. Unos pocos milivoltios es ideal, pero la ESR de los condensadores en particular, así como la serigrafía de la placa, dan como resultado práctico un valor más alto. Teóricamente, el rizado debería estar en torno a 1
Medidas y Especificaciones Rango de tensión de entrada . . . . . . . . . . . 3.3 – 4.1 V Corriente de entrada máxima . . . . . . . . . . . 1.7 A (Vin = 3.33 V) Tensión de salida . . . . . . . . . . . . . . . . . . . 4.93 V (sin carga) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.92 V (carga de 0,3 A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.82 V (carga de 1 A) Umbral de batería baja . . . . . . . . . . . . . . . 3.25 V Protección de sobretensión. . . . . . . . . . . . . 4.30 V Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . 95 % (3.52 Vin; salida 0,3 A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 % (3.52 Vin; salida 1 A) Corriente suministrada (sin carga) . . . . . . . 4.5 mA (Vin = 3.6 V) LED de potencia se enciende con . . . . . . . . 1.6 V Pérdidas medidas con corriente de salida de 1 A: En los extremos de T1 y T3 (en cada) . . . . . 23 mV (corriente de entrada de 1,7 A) Desde L2 al conector USB de la PCI. . . . . . . 85.3 mV En los extremos de IC2 . . . . . . . . . . . . . . . 80 mV Conexión USB (cada una) . . . . . . . . . . . . . 13 mV
mV con un condensador elevador de salida de 220 �F. En la práctica se ha medido un valor de 60 mV en los extremos de C5 (3,50 V de entrada y 1 A de carga). C5 tiene una ERS de 20 mΩ a 100 kHz. La frecuencia de conmutación de 600 kHz es demasiado elevada y la corriente de conmutación más elevada resultante cuenta para la elevación de la tensión de rizado. Para suprimir los ruidos de conmutación se ha colocado
+VBATT S1 R9
BT1
R11 5 k 1
R12
K2
1
D2 5V1 0W5
M 1
D3
R10
2
k 8 1
T1
R8 k 0 1
k 1
BC847B
C9
T2
120u 6V3
PCB1
C10 T3 1n
DMS3016SSS-13
DMS3016SSS-13 For Hammond 1593K enclosure
D1
+VBATT L1
L2 1 SW 2 SW 6 VBAT
10uH R1 8 M 1
C1 10u
R2 k 0 3 3
C2
9
100n 7
EN
IC1
15 VOUT 14 VOUT 13 VOUT
3 R3 8 M 1
12 TPS61030 FB
LBI
PAD
8 SYNC GND 1 1
LBO D D D N N N G G G P P P
3 4 5
R5 k 0 0 2
C3
R7
0.022ohm/3.5A 70ohm@100MHz
7 k 2
5
10p
4
10
2 R4 k 0 0 2
C4
C5
C6
C7
2u2
220u 6V3
10u
100n
R6 k 7 4
IN EN
OUT
IC2
DM DP
CS
8
1 2 3 4
7 6
K1
6 5
TPS2511 ILIM_SET PAD
D N G
1
C8 120u 6V3 120631 - 11
www.elektor-magazine.es | julio / agosto 2013 | 95
Proyectos
•
un núcleo de ferrita (L2) en serie con el circuito de salida. De esta manera, la tensión de rizado también se reduce. El condensador de salida final (C8) reduce la tensión de rizado aún más. Para el cálculo de la bobina se ha tenido en cuenta un cambio del 10% de la corriente media máxima de la bobina. Con 3,20 V, la corriente media de la bobina está próxima a los 2 A. según la fórmula de las hojas de características (SLUS534E ), esto da un valor de la bobina de unos 10 �H. El terminal ‘Sync’ puede ser usado para hacer trabajar al conversor en diferentes modos. Nosotros hemos seleccionado el modo ‘Ahorro de Energía’ (‘Power Save’) conectando el terminal ‘Sync’ a
Puerto de Carga Dedicado USB y Conmutador de Alimentación con Límite de Corriente ) pero,
aún así, nos gusta. ¿El por qué? A menudo no es suficiente con poner tan sólo 5 V en un conector USB y esperar que un dispositivo funcione. Es importante que los fabricantes de teléfonos móviles y de accesorios monten, cada vez más, sus dispositivos con conectores USB como puerto de carga, pero los cargadores no suelen ser compatibles entre plataformas ‘de fruta’ y ‘de no fruta’ y de distintos fabricante. Por ejemplo, algunos dispositivos esperan disponer de unas tensiones específicas en sus líneas de datos o, sencillamente, una conexión (resistencia) entre las líneas de datos para reconocer un cargador (Puerto Cargador Dedicado o DCP). El TPS2511 soporta tres de los protocolos más comunes: • Especifcación de Carga de Batería USB, Revi-
sión 1.2 (BC1.2); • Estándar de la Industria de las Telecomunica -
ciones Chinas YD/T 1591-2009; • Modo Divisor.
masa, lo que mejora la eficiencia con cargas más ligeras (el componente trabaja así de forma discontinua). El conversor sólo funciona cuando la tensión de salida cae por debajo de un umbral establecido. En la parte de desventajas, la tensión de rizado de salida se incrementa ligeramente. Sin carga se ha detectado un diente de sierra de 80 mV con un período de 150 ms. Pero este valor mejora rápidamente a medida que se incrementa la carga. TPS2511: añadido para el USB
Para controlar la salida se ha usado un integrado especial, el TPS2511. Texas Instruments lo llama un USB Dedicated Charging Port Controller and Current Limiting Power Switch (Controlador de
96 | julio / agosto 2013 | www.elektor-magazine.es
Para una descripción exhaustiva de todas las posibilidades del TPS2511, por favor, echad una ojeada a las hojas de características de Texas (SLUSB18). El TPS61030 puede entregar 2 A con una tensión de batería de 3,3 V y el TPS2511 puede trabajar también con esta corriente. Pero con una corriente de salida de 1 A y una tensión de entrada de 3,33 V, el conversor ya consume 1,7 A de las baterías. Con una corriente de salida de 2 A este consumo será más del doble, debido unas pérdidas más altas. Además, la capacidad de la batería disminuye con corrientes de salida elevadas. Este es el motivo de por qué el TPS2511 está conectado para trabajar como un cargador de 5 W. Su terminal DP está conectado a la línea ‘D-’ y el terminal DM a la línea ‘D+’ del conec tor USB. El límite de corriente está establecido ligeramente por encima de lo necesitado (R6 = 47 kΩ), evitando que el TPS2511 tenga una limitación de tensión de salida prematura. El terminal ‘Current Sensing Report ’ (‘Informe de Sensado Actual’) no se usa del modo previsto para ello. En lugar de compensar las pérdidas de tensión cambiando la realimentación del conversor (que realmente no es necesario con corrientes de salida máximas de 1 A), este terminal se emplea para controlar un LED (D1). Cuando D1 está encendido quiere decir que se está consumiendo más de la mitad de la corriente máxima de salida. La corriente
fuente de alimentación
del LED es ligeramente superior a 1 mA. Como ya hemos mencionado, la salida ‘Comparador de Batería Baja’ controla el terminal ‘EN’ (‘Enable’ o ‘Habilitado’) del TPS2511. De esta forma, se corta la tensión de salida en el caso de que las baterías estén agotadas. La presencia de R5 es necesaria para que la salida del comparador esté en alta impedancia cuando no esté activa. Circuitos de protección de polaridad y de sobretensión
La conexión del paquete de baterías con la placa se realiza por medio de un conector tipo ‘header’ atornillado (con separación entre terminales de 0,15’’ o 3,81mm). Por lo tanto, en la práctica, es posible conectar las baterías de forma incorrecta. Para evitar daños en el circuito y poder mantener unas pérdidas realmente mínimas cuando el circuito está conectado correctamente, se ha usado un pequeño transistor MOSFET de potencia de canal N (T1), conectado deliberadamente de forma incorrecta. Cuando se conectan las baterías con la polaridad apropiada, el cuerpo del diodo marca la dirección de conducción y el MOSFET está totalmente activo, con su puerta en positivo con respecto a su terminal fuente, a través de R12. No hay ningún problema con la corriente que pasa del terminal fuente al drenador. En caso de que las baterías estén conectadas de forma incorrecta, la polaridad de la puerta es negativa, el MOSFET está apagado y el cuerpo del diodo bloquea eficazmente la tensión de la batería. La tensión de puerta máxima permitida del MOSFET usado es de 12 V, la cual también constituye la tensión máxima a la que el circuito sobrevivirá. Con una corriente de entrada de 1,7 A en los extremos del MOSFET caen unos escasos 23 mV (medidos en el prototipo). Para evitar tener que usar un conmutador caro de encendido/apagado con ciclo de trabajo amplio, la protección contra sobretensiones está combinada con un conmutador más pequeño y, por lo tanto, más barato. La protección contra sobretensiones se ha mantenido sencilla. Cuando la tensión de alimentación es demasiado elevada se usa un diodo zéner (D2) para activar un transistor n-p-n (T2) que, a su vez, corta la tensión de puerta de MOSFET T3, que está conectado como es de esperar. El diodo zéner de 5,1 V ya conduce por debajo de la tensión zéner especificada. Con una tensión de batería de 3,60 V, la corriente a través de D2 es de unos 12 �A. Con 4,25 V, son más de 30 �A. Esta corriente se puede medir fácilmente en los extremos de R9, la cual evita que la corriente por
Lista de materiales Resistencias (0805, 125mW) R1,R3 = 1,8MΩ 1% R2 = 330kΩ 1% R4,R5 = 200kΩ 1% R6 = 47kΩ, 1% R7 = 2,7kΩ, 5% R8 = 10kΩ, 5% R9 = 1kΩ, 5% R10 = 18kΩ, 5% R11 = 1,5kΩ, 5% R12 = 1MΩ, 5% Condensadores C1,C6 = 10�F 10V 20%, X5R, 0805 (Taiyo Yuden LMK212 BJ106MG-T) C2,C7 = 100nF 50V 10%, X7R, 0805 C3 = 10pF, 50V, ±0,5pF, C0G/NP0, 0805 C4 = 2.2�F 6,3V, 10%, X5R, 0805 C5 = 220�F 6,3V, 20%, SMD, Ir=2,8A (Nichicon PCS0J221MCL1GS) C8,C9 = 120�F, 6,3V, 20 %, SMD, Ir=2,8A (Nichicon PCS0J121MCL9GS) C10 = 1nF, 50V, 10%, X7R, 0805 Inductores L1 = 10�H, 5A, 0,025Ω, 20% (Würth Electronics 74477110) L2 = núcleo de ferrita, 70Ω @ 100MHz, 3.5A, 0.022 Ω, 0603 (Murata BLM18KG700TN1D) Semiconductores D1,D3 = LED, rojo de 3mm, taladros pasantes (baja corriente) D2 = diodo zéner de 5,1V, 0,5W (SOD123), Diodes Inc. MMSZ5231B-7-F IC1 = TPS61030PWPG4 (Texas Instruments) IC2 = TPS2511DGN (Texas Instruments) T1,T3 = DMS3016SSS-13 (SO8) T2 = BC547B Varios K1 = conector USB, tipo A, receptor, montaje PCB, SMD K2 = conector ‘header’ atornillado de 2 terminales, separación entre terminales de 0,15’’ (3,81mm), (Phoenix Contact MKDS 1/2-3.81) S1 = Conmutador deslizante, SPDT, ángulo recto, 100mA (C&K Components OS102011MA1QN1) Caja, 66,22 x 67,22 x 28,00 mm (Hammond Manufacturing 1593KBK) Tornillos para placa (#4 x 1/4” auto-rosca, 6,4mm, Hammond Manufacturing 1593ATS50) BT1 = alojamiento para 3 pilas AA, contactos tipo broche (Keystone 2475) + ‘clip’ de batería (BUD Industries HH3449) 3 baterías NiMH Placa referencia 120631-1 v3.0 r t o k
pc bs
e
l
el diodo zéner se haga excesiva cuando la tensión de entrada excede los 5,70 V, más o menos. En caso de que la protección contra sobretensiones actúe demasiado pronto (debido a la posible tolerancia del diodo zéner), podemos adaptar R10, recordando que un valor menor da un umbral más alto. La protección contra sobretensiones es necesaria en caso de conectar un adaptador de tensión de red AC (con una tensión de salida de menos de 12 V) o una batería de 9 V. El CI TPS61030 puede soportar hasta 7,00 V (máxima tensión absoluta, recomendado, 5,50 V). El problema con el conver-
e
.
w w w
e
r
v c
i
e
. c
o m
www.elektor-magazine.es | julio / agosto 2013 | 97
Proyectos
•
sor elevador es que su tensión de salida aumenta cuando la tensión de entrada excede la tensión de salida regulada (aquí, 5,00 V nominal). Construcción
La placa ha sido diseñada expresamente para una caja de Hammond Manufacturing (ver la Lista de Materiales). Es fácil y barato adaptarla a nuestra aplicación. La palca se fija con cuatro tornillos autoroscantes, y las mitades superior e inferior con dos tornillos más largos. El frontal y la parte trasera son dos paneles separados. Sólo en un panel hay que hacer tres taladrados. Los agujeros para el conector USB y el interruptor deberán estar alineados con los componentes de la placa. Lo mismo sucede para los dos agujeros de los LEDs de la tapa superior. La colocación exacta del agujero para los dos hilos que van al soporte externo de las baterías no es tan crítica (hay un amplio margen aquí con el que jugar). En realidad puede estar localizado en cualquier otro sitio. También se puede usar un conector
tipo ‘jack’, hay mucho espacio en el otro panel. Evite cualquier resistencia de contacto suplementaria donde sea posible, ya que dicha resistencia reducirá la eficacia total del dispositivo. Los taladros para fijar la placa también se usan para conectar los planos de alimentación superior e inferior de la placa. Debemos tener en mente que el taladro al lado del tornillo del conector K2 no está conectado a masa, sino al punto de unión entre T1 y T3. La conexión de este punto a masa no causará ningún daño, sino que, simplemente, encenderá el circuito. Los otros tres taladros están conectados a masa, pero el taladro situado al lado de IC2 está conectado expresamente a la masa de salida. Se supone que la placa está colocada en la robusta caja de plástico (ABS) mencionada anteriormente. Finalmente, no toquéis la unión R3/C3/R4 con el circuito en funcionamiento. Es un punto de alta impedancia y cualquier zumbido introducido aquí puede destruir IC1..
Publicidad
Hazte miembro GRATIS del Elektor.POST • Lo último en electrónica y tecnologías de la información • Videos, trucos, consejos, ofertas y más • Proyecto exclusivo cada dos semanas, sólo para miembros GREEN • Elektor tras la escena • Cada viernes en tu bandeja de entrada
Regístrate hoy en www.elektor.es/boletin 98 | julio / agosto 2013 | www.elektor-magazine.es
(120631)
Proyectos
•
Controlador de Motor DC de Alta Corriente
Ton Giesberts (Laboratorios de Elektor)
Este sencillo circuito está diseñado para su uso con todo tipo de motores DC de hasta 40 A. Básicamente se trata de un simple oscilador que controla un puñado de transistores MOSFET de potencia. El oscilador es un modelo tipo RC rudimentario, montado alrededor de un elemento ‘trigger-Schmitt’ (IC1a) de un 40106, con un encapsulado de seis inversores. Cuando el cursor se gira hacia D2, el potenciómetro P1 proporciona una máxima tensión a su salida. Los dos diodos evitan que se cortocircuite la salida con la entrada. En los extremos de P1 los tiempos de carga y descarga son mínimos. En el prototipo de este circuito, se obtuvo que el pulso negativo tenía un ancho de 1 �s, mientras que el ancho del pulso positivo era de 1,6 �s. Los dos inversores siguientes, IC1b e IC1c, limpian la señal del oscilador controlando una etapa estabilizadora comprendida por tres inversores en paralelo: IC1d, IC1e e IC1f. Se ha añadido la resistencia R1 para que los transistores MOSFET aguanten en caso de ausencia del 40106. La capacidad total de control de entrada de los cuatro MOSFET suma casi los 8 nF, un valor claramente elevado para que el ‘buffer’ cargue y descargue completamente cuando P1 está ajustado a sus posiciones extremas. Sin embargo, esto es conveniente ya que, en la práctica, permite que el controlador de motor pueda gestionar el rango de tensión de salida total (es decir, entre el 0 y el 100 %).
100 | julio / agosto 2013 | www.elektor-magazine.es
La frecuencia de trabajo es de, aproximadamente, 1 kHz. En el prototipo se midió una frecuencia de 1,07 kHz. El diodo D3 de salida suprime la energía inversa (fuerza electromotriz o ‘fem’, de retorno) generada por las cargas inductivas que incluyen todos los motores DC. En este circuito las altas corrientes y la fem de retorno son un problema. En un primer prototipo de la placa, las pistas para D3 er an demasiado estrechas y cuando se probó el circuito con uno de los motores de un Wheelie de Elektor, una de las pistas se quemó. Totalmente cargado, cada uno de los dos motores usados en el ‘Wheelie’ consume hasta 20 A con 24 V. El circuito fue probado con una carga resistiva de 40 A y 24 V. Sin embargo, tal y como ha sido diseñada y entregada, la PCB no es capaz de trabajar con corrientes tan altas. La solución es reforzar las pistas de cobre que soportan altas corrientes con trozo de hilo de cobre macizo de galga 13 o 14 AWG (aprox. 2,5 mm2). Es posible que sea más fácil colocar dos trozos de hilo de AWG 16 (aprox. 1,5 mm2) en estas zonas. Por este motivo la placa no tiene má scara de soldadura sobre estas zonas. Las líneas más delgadas del esquema eléctrico proporcionan una indicación global de por dónde se espera que pasen altas corrientes. La alimentación del 40106 la proporciona un único regulador de tensión 78L12 (IC2) con los tradicionales condensadores de desacoplo grande y pequeño. El potenciómetro de control de velocidad se puede montar fuera de la placa y conectado a la misma con pequeños hilos. El radiador se asegura sobre la PCB con tornillos de 3 mm (6 BA). Debemos asegurarnos que el radiador no llega estar en contacto con los ‘pads’ de soldadura de los MOSFET. A continuación, determinamos la correcta posición de los tornillos de montaje de los transistores y de D3. Para evitar tensiones mecánicas dentro de los terminales de los semiconductores los doblaremos ligeramente (hay herramientas especiales disponibles para esta tarea) y, sólo
controlador de motor dc de alta corriente
K1.1
K2.1
IC2 78L12 D3
C1
14
C2
C3
RURP8100
IC1 470u
10u
100n
7
K1.2
K2.2
T1
IC1.D 9
P1
100k
8 T2
IC1.E IC1 = 40106
D1
1
11
1
D2
2x 1N4148
T3
10
T4
IC1.A
1
1
IC1.B 2 3
1
IC1.C 4 5
1
IC1.F 6
13
1
R1 12
k 0 1
C4
22n
4x
IRFP150N 120406 - 11
entonces, buscaremos las posiciones de los agu jeros. Usa 3mm (aprox. (aprox. 1/8’’ 1/8’’,, 6 BA) de rosca. rosca. No debemos olvidar aislar todos los semiconductores que están sobre el radiador. Debido a la baja frecuencia de conmutación, es muy posible que
oigamos un pequeño silbido en el motor DC: es bastante normal y no nos debe producir ningún tipo de alarma. (120406)
Lista de materiales Resistencias R1 = 10kΩ, 5%, 0.25W P1 = 100kΩ, 20%, potenciómetro lineal, 0,2W
Condensadores C1 = 470�F 35V, 20%, separación entre terminales de 3,5 mm C2 = 10�F 25V, 20%, separación entre terminales de 2 mm C3 = 100nF, 100nF, 50V, 20%, cerámico, separación entre terminales de 5 mm C4 = 22nF, 22nF, 100V, 20%, cerámico, separación entre terminales de 5 mm
Radiador, 1,9K/W, 100 x 40 x 50 mm, Fischer Elektronik, modelo SK 92/50 SA Aislamiento de sili cona para TO-3P (T1-T4) Kit de aislamiento de componentes TO-220; hoja de mica + aislantes (D3) Placa referencia 120406-1 v1.0
Semiconductores D1,D2 = 1N4148 D3 = RURP8100 T1-T4 = IRFP150N IC1 = 40106 IC2 = 78L12
Varios 4 piezas de espadines FastOn, rectos para montaje en PCB, separación entre terminales de 0,2’’ (5,1mm)
www.elektor-magazine.es | julio / agosto 2013 | 101
Proyectos
•
Interfaz Universal de Medida Precisa la precisión, simplemente Michel Defrance
La mayoría de los microcontroladores poseen un conversor digital/analógico
(Chartres, Francia)
integrado pero, ¿qué hacer cuando su precisión no es satisfactoria? No busquéis más: la solución está bajo vuestros ojos.
+5V
+5V C4
D1
1u
R5
22k
+5V
Ex+
IC2.A R1 R 0 7 4
M+
100n
10u
1
R3
IC1
R7 2 k 2
2
5
Vref 2.048V G = 1. 2. 4. 8
1 C3
10n
IC2 = MCP602SN C2
PGA
6
1u R4
10n R2 R 0 7 4
ADC CONVERTER
K C O L C
R8 2 k 2
R 0 2 2
I2C INTERFACE
MCP3421 3
4 R12
6
470R
IC2.B
SDA
7 R9
5
470R R10
D2
4
2
R 0 2 2
C1
M--
C7
IC2 3
Ex--
8
C6
LL4148
R6 22k
7 k 4
SCL
R11 7 k 4
• El amplifcador de altas prestaciones prestaciones MCP602. • El CAD de 18 bits programable, MCP3421, con
C5
LL4148
130150 130150 - 11
1u
+5V
Muy a menudo, los electrónicos necesitan medir bajas tensiones con una gran precisión, por ejemplo, la tensión proporcionada por un sensor de presión, de temperatura o incluso la tensión de salida de un puente de Wheatstone (a menudo, del orden del milivoltio). Los �C son prácticos y bastante fáciles de programar, pero todo el mundo sabe que no brillan por la precisión de sus conversores (normalmente, de 8/10/12 bits). Además, para medir bajas tensiones, éstas deben ser acondicionadas, normalmente, con la ayuda de amplificadores operacionales. Enfrentado una vez más a este problema, he decidido encontrar una solución que fuese, a la vez, satisfactoria y reutilizable. La inspiración ya estaba, sólo quedaba pasar a la acción. La lista de tareas estaba clara: era necesario un interfaz fácil de conectar a cualquier �C, fácil de ensamblar y con componentes actuales y baratos. En el catálogo de Microchip hay dos circuitos que han llamado mi atención:
+5V
un interfaz I 2C, con referencia de 2,048 V integrada y con amplificador programable. Amplificador de instrumentación
Figura 1. Esquema eléctrico del interfaz de medida.
Tabla 1. Rango de tensión de entrada en función de la ganancia del MCP3421 Ganancia del MCP3421
Margen de la tensión de entrada
1
−20 mV a +20 mV
2
−10 mV a +10 mV
4
−5 mV a +5 mV
8
−2,5 mV a +2,5 mV
102 | julio / agosto 2013 | www.elektor-magazine.es
Cuando se desea acondicionar acondicionar bajas tensiones para una digitalización se utiliza a menudo un montaje llamado amplificador de instrumentación, que se realiza con tres amplificadores operacionales. En este caso, utilizó los dos amplificadores operacionales MCP602, IC2A y IC2B, en configuración diferencial para atacar al amplificador de ganancia programable contenido en el MCP3421. La tensión de salida de esta última etapa será proporcional a la diferencia de tensión entre las entradas de medida M+ y M− del esquema eléc-
interfaz universal de medida precisa
trico (ver Figura 1 ). La ganancia de la primera etapa viene dada por:
Características •
G1+ = 1 + R5/R3 G1− = 1 + R6/R4
• •
Conversión de 18 bits Interfaz I 2C Ganancia programable por programa
Como deseamos que la amplificación de la tensión de la entrada M+ sea la misma que la de la entrada M−, elegiremos elegire mos que R5 = R6 y R3 = R4. Con los valores de nuestro esquema tendremos: G1 = 1 + 100 = 101 Deberemos elegir resistencias con una tolerancia del 1 % para R3 a R6, sin lo cual corremos el riesgo de tener una gran asimetría en la etapa de entrada. Pasemos a la segunda etapa, construida c onstruida alrededor del amplificador/CAD, IC1. Utilizado en modo simétrico, acepta tensiones comprendidas entre −2,048 V y +2,048 V, entre sus terminales 1 y 6. Como la ganancia G2 del amplificador que contiene es ajustable por programa, será, pues, posible elegir diferentes rangos para la tensión de entrada de la primera etapa. Por lo tanto, la ganancia total del montaje, G = G1 x G2, variará entre 101 para G2 = 1 y 808 para G2 = 8. La Tabla 1 da una lista de valores posibles. Si estos rangos no nos convienen, modificaremos el valor de las resistencias R3 a R6. Alimentación
El interfaz esta alimentado aliment ado con 5 V. En presencia de bajas señales, el ruido de alimentación puede llegar a ser molesto y este montaje no escapa a esta regla. No importa la alimentación que elijamos, deberá ser precisa y generar el menor ruido posible. En efecto, con una precisión de conversión de 18 bits, el menor ruido de alimentación vendrá a perturbar nuestras medidas. También recomiendo el uso de una alimentación de arranarran que progresivo, con el fin de reducir la deriva debida a las variaciones de las características de los componentes. Sería posible utilizar una temporización por programa para ello, pero esto no beneficiaría al conjunto de los componentes de la placa. En la referencia [1] propongo una alimentación de este tipo alrededor de un regulador de baja caída de tensión, el MIC2941 de Micrel .
Figura 2. Circuito impreso del autor.
nentes SMD. Si diseñamos nuestro propio circuito impreso, para obtener prestaciones óptimas, deberemos respetar los consejos dados en las hojas de características del MCP3421. Estos consejos también son válidos para el uso del montaje. Cuidado con la dirección I 2C del MCP3421: esta dirección depende de la referencia exacta del componente que compremos. Esto también se precisa en las hojas de características. A título de ejemplo, he realizado una aplicación basada en un �C PIC18F452 (o un PIC16F876A), PIC16F876A), que muestra sobre una pantalla LCD la tensión leída desde el MCP3421 a través del bus I 2C. La encontraréis en otro artículo de este número. Dicha aplicación mide la baja tensión (algunos milivoltios) de salida de una galga extensiométrica colocada en un puente de Wheatstone. El programa del PIC, escrito en PICBASIC, se encarga de la lectura de la tensión desde el MCP3421, convierte en tensión el valor leído y, después, muestra sobre una pantalla LCD el valor bruto obtenido del CAD y el valor con signo de la tensión correspondiente. Este programa no debería ser demasiado difícil de exportar, por ejemplo, sobre un módulo m ódulo Arduino. Este circuito, no muy caro (menos de 15 €), podrá utilizarse en numerosos montajes diferentes. Ahora no tendremos ninguna razón de echar pespestes del CAD de nuestro microcontrolador favorito.
Fabricación y uso
El montaje del circuito impreso (ver Figura 2 ) de 35 × 25 mm, no debería suponer ningún problema a los lectores familiarizados con compo-
(130150)
Lista de materiales Resistencias: R1, R2 R9, R12 = 470 Ω5% R3, R4 = 220 Ω 5 % R5, R6 = 22 kΩ 1 % R7, R8 = 2,2 kΩ 5 % R10, R11 = 4,7kΩ 5 %
Condensadores: C1, C2 = 10 nF 50 V 10 % C3, C4, C5 = 1 �F 50 V 10 % C6 = 100 nF 50 V 10 % C7 = 10 �F 16 V 10 % electrolítico
Semiconductores: D1, D2 = LL4148 IC1 = MCP3421A1T IC2 = MCP602SN R4
C5
R6
R5 R7
R8 IC2
D1 R1
D2
IC1
R10
R2
R9 C6
C1 1 0 C3 5 1 0 3 1 r o t k e l E ) + C ( M
Enlaces
R3
C4
C2
R11 C7
M
x E
+ x E
R12
A D S
L C S
[1] www.elektor www.elektor-labs.com/n -labs.com/node/3053 ode/3053
www.elektor-magazine.es | julio / agosto 2013 | 103
Proyectos
•
Convertidor elevador con PWM Get up, step up ...! Este convertidor elevador controlado por un microcontrolador es capaz de suministrar una tensión de salida ajustable de hasta 42 V y una corriente de hasta 1 A, con un rango de tensiones de entrada de entre 8 y 16 V. Por ello resulta ideal como cargador portátil para hasta tres baterías de 12 V conectadas en serie. del diodo hasta el condensador. Podría decirse que durante el tiempo de “on” la inductancia, que básicamente se trata del núcleo de ferrita, absorbe energía, que luego es devuelta al condensador en la fase de “off” a través del diodo. Quien quiera profundizar más en el tema, en [1] podrá encontrar una excelente guía. Circuito Wolfgang Schmidt (Alemania)
Un convertidor elevador (también llamado “step-up” o “boost”) convierte una tensión continua de entrada baja a una de salida más alta. Consiste básicamente en una inductancia, un condensador, un diodo y un interruptor (transistor), que se abre o cierra con una tensión modulada en ancho de pulso (PWM). Un ciclo de conmutación de periodo T está formado por el tiempo de “on” t1 y el de “off” T-t 1. Durante el tiempo de “on” de la señal PWM el interruptor se encuentra cerrado (véase la figura 1 ). En la inductancia tenemos la tensión de entrada U e, con la cual circula una corriente IL lineal por la bobina. De esta manera, también se incrementa la energía almacenada en la bobina. Cuando el interruptor se abre, el campo magnético en la bobina empieza a reducirse, induciendo una tensión negativa. Ésta provoca a su vez una corriente que circula a través
104 | julio / agosto 2013 | www.elektor-magazine.es
En el circuito ( figura 2) podemos identificar rápidamente el convertidor elevador, formado por L1, D1, C8 y el MOSFET T1. Para obtener la señal PWM se utiliza un microcontrolador ATmega8-16PU de Atmel, que incorpora un software determinado. La señal PWM, suministrada en el pin PB1, tiene una frecuencia de 66 kHz, seleccionada internamente en el modo Fast-PWM. Ya que la tensión de salida se ajusta con el factor de servicio, el controlador debe conocer el valor actual de dicha tensión. Esto se hace mediante el divisor de tensión formado por R6, R7 y P2. El potenciómetro es necesario ya que la tensión de referencia interna que obtenemos del controlador no es del todo precisa. Según la hoja de datos está entre 2,3 y 2,9 V, con lo que podemos calibrarla mediante P2. Si el rango no fuera suficiente o hubiera problemas con el valor de R7 = 43 k, siempre puede ajustarse en el software. Para calibrarla basta con conectar un voltímetro digital a la salida y comparar los valores con los que se muestren en el LCD. El conversor A/D del controlador tiene una resolución de 10 bits. El software calcula la tensión
get up, step up ...!
mediante el divisor de tensión formado por las resistencias de 47 k� (R7+P2) y de 2,7 k� (R6). Con ello obtenemos una precisión de 46 mV ((( 49,7 k�/2,7 k�)*2,56 V)/1023). El valor que aparece en el display siempre oscila entre 0,04 y 0,05 V. Los convertidores elevadores con esta topología no disponen de limitador de corriente. En la línea de salida se ha incorporado el shunt R5 para evitar sobrecorrientes, el cual está conectado con una segunda entrada del conversor A/D del controlador. El software regula el factor de servicio antes de que el convertidor empiece a funcionar en modo discontinuo. C10, C11 y R8 se han incorporado para reducir el ruido en ambas entradas del convertidor. Se ha conectado un LCD al controlador en el cual se representan todos los parámetros, los valores actuales de la tensión y la corriente de salida, y (accediendo al menú) tam bién los valores fijados por el usuario. Aparte, el circuito dispone de tres botones. S1 resetea el microcontrolador, mientras que con S2 y S3 se aumenta o reduce la tensión de salida. Si pulsamos ambos botones a la vez entraremos en el modo de limitación de corriente. En él podemos fijar el valor máximo de la corriente
Ue
Ua
L
12V
20V
descarga L Ue
Ua
L1
12V
20V
Figura 1. Las dos fases de un convertidor elevador.
carga L 120460 - 12
de salida, también mediante estos dos botones. Si durante un tiempo determinado no se pulsa ningún botón el dispositivo saltará automáticamente al menú de tensión. También se han incorporado dos LEDs como elementos de verificación. D3 indica la presencia de una tensión de entrada. Si no se ilumina, podría ser que el fusible F1 se haya fundido o haya algo mal en el circuito. D2 se ilumina al activarse el modo de limitación de corriente.
LCD1 TC1602C-01YA0_A00 2 x 16
K1
1
F1 5A T
12V
2
C7 1000u 25V
2
C6
C5
100n
100n
100n 100n
R7 43k
23 24 C10
25
L1 10n K3
10k D1
1
26
10n
100uH
R1 R8 5 k 1
k 0 1
MBR 3100G T1
2
K4
R5 2 2 R 0
C8 1000u 63V
R3 k 0 1
14
JP1
R2 10R
1
15 16
R6 7 k 2
R4 UP
GND
DOWN
1 2
7
C C V A
7 k 2
F E R A
C C V
PC0 (ADC0)
PD0 (RXD)
PC1 (ADC1)
PD1 (TXD)
PC2 (ADC2)
IC1
PD2 (INT0)
ATmega8-16PU PB0 (ICP)
PB3 (MOSI/OC2)
PB1 (OC1A)
PB4 (MISO)
PB2 (SS/OC1B)
2 2
PB5 (SCK)
1 L A T X
D N G
9
2 3 4
5 PD3 (INT1) 6 PD4 (XCK/T0) 11 PD5 (T1) 12 PD6 (AIN0) 13 PD7 (AIN1)
PC3 (ADC3) 27 PC4 (ADC4/SDA) 28 PC5 (ADC5/SCL) 1 PC6 (RESET)
+5V
2
42V
JP2
7 R 4
10k
C1
0 2
P2
P1
C2
POWER
C11
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 1 1 1 1 1 1 1
+5V
R10
D3
K2
100n
3
R9 k 0 1
1
7805
1
2
A C - + S D D D W 0 1 2 3 4 5 6 7 E E S D L S / V V V R R E D D D D D D D D L L
C9
+5V
IC2
2 L A T X
X1
0 1
D N G
+5V
17
MOSI
18
MISO
1
19
SCK
3
K5
4
5 RESET
2 6
ISP
8
IRL540NPbF S2
UP
S3
S1
D OWN
RESET
D2 PB2
C4
C3 22p
22p X1 = 16MHz 120460 - 11
Figura 2. Convertidor elevador regulado por un microcontrolador.
www.elektor-magazine.es | julio / agosto 2013 | 105
Proyectos
•
Diseño y montaje
Mientras que el botón de reset se encuentra en la propia placa (figura 3) (ya que sólo lo necesitaremos en contadas ocasiones), S2 y S3 están unidos por un cable a las conexiones Up, GND y Down de la placa. Dependiendo del montaje que llevemos a cabo podemos colocar dos pulsadores táctiles en una placa perforada o utilizar algún modelo de panel para montarlos en el frente de la carcasa. Lógicamente ambos LEDs sólo tienen sentido si pueden verse desde fuera. El contraste del LCD se ajusta con P1. Con JP2 puede activarse la retroiluminación del display. Si queremos, obviamente también podemos utilizar un interruptor. El MOSFET incorpora un pequeño disipador. Con una corriente de hasta 1 A la resistencia térmica es de 21 K/W. Para el diodo D1 podemos utilizar un tipo radial normal (DO201-AD), así como el modelo con encapsulado TO220. Si optamos por el segundo, hemos de seguir la orientación correcta, descrita en la hoja de datos. Los condensadores utilizados en convertidores conmutados merecen especial atención. Con esto nos referimos a C7 y C8, que tienen que lidiar con una frecuencia de conmutación bastante alta, de 66 kHz. Los condensadores normales no son capaces de funcionar a semejante frecuencia, ¡así que hay que utilizar los que aparecen en la lista de materiales! Cuando testeamos el circuito en el laboratorio conectamos el LCD mediante un zócalo a la placa. Esto resulta bastante práctico, pero si queremos colocar el convertidor en una carcasa quizá convenga situar el display en la parte posterior de la placa, por ejemplo. Pegando firmemente una lámina aislante entre la placa y el display evitaremos cortocircuitos no deseados (en estos casos, siempre conviene tener a mano alguna fina lámina de baquelita). Para programar el controlador disponemos del clásico puerto ISP en K5. Durante la rutina de programación, el controlador debe estar alimentado mediante el regulador 7805 IC2 del circuito. La tensión en K5 informa del programador utilizado, por ejemplo un AVRISP mkII, y así ajustar la alimentación (a 3,3 o 5 V). Al programar los niveles de las salidas del controlador no están definidos. Por ello es necesario el jumper JP1 en la puerta del MOSFET. De hecho, si la salida PB1 está demasiado tiempo a nivel alto, el MOSFET cortocircuita la fuente
106 | julio / agosto 2013 | www.elektor-magazine.es
de alimentación. R3 pone la puerta a masa en caso de que JP1 no esté conectado. ¡No debemos olvidar retirar el jumper durante la rutina de programación! R2 evita posibles inestabilidades en el tiempo de conmutación debidas a la alta capacidad de la puerta. Las capacidades en las puertas de los MOSFETs influyen considerablemente en el tiempo de conmutación entre el estado de “on” y “off”. Como resultado, los MOSFETs de potencia se calientan bastante por culpa de est a transición relativamente lenta, en la cual sigue circulando algo de corriente y la tensión fuente-drenador en el MOSFET es mayor de 0 V. Esta potencia eléctrica se disipa en forma de calor. Se requieren altas corrientes de conmutación para cambiar el estado en la puerta, y las fases de conmutación han de ser considerablemente breves. El Atmega como fuente de corriente es bastante limitado, pudiendo proporcionar aproximadamente sólo unos 30 mA a la salida. La máxima tensión de entrada está determinada D1 y T1, y se trata de un valor fijo. Digamos que esta incorporación es la primera mejora que puede realizarse en el hardware, pues hasta ahora el diseño se limitaba a un convertidor elevador básico. Ampliaciones: el software
El código fuente en BASCOM-AVR puede descargarse en [2]. El software describe el funcionamiento básico de un regulador de carga y aún admite mejoras en varios puntos. Entre ellos tenemos algunos críticos como la implementación de un regulador de carga “verdadero” para baterías de plomo y ácido, con las distintas fases de carga. La corriente de entrada es del orden de 3,5 veces mayor que la de salida, motivo por el cual incorpora un fusible de 5 A a la entrada. Hemos probado el convertidor con dos baterías de plomo y ácido distintas. Y nos hemos percatado de un comportamiento extraño en el cargador. Al fijar la corriente para una batería de plomo-gel a un valor relativamente alto de por ejemplo 0,2 C, la tensión de ésta disminuía rápidamente una vez alcanzado el valor máximo, y el cargador se apagaba. En la práctica hemos de supervisar el proceso de carga y anticiparnos a desconectar el cargador manualmente. El objetivo del software no es dotar al diseño de un cómodo interfaz de usuario con los distintos
get up, step up ...!
Lista de materiales
IC1 = ATmega8-16PU (programado: 120460-41) IC2 = 7805
Resistencias: R1,R3,R9 = 10 kΩ, 5 %, 250 mW R2 = 10 Ω, 5 %, 250 mW R4,R6 = 2k7, 5 %, 250 mW R5 = 0Ω22, 5 %, 1 W R7 = 43 kΩ, 1 %, 600 mW R8 = 1k5, 5 %, 250 mW R10 = 4Ω7, 5 %, 250 mW P1,P2 = 10 kΩ, 20 %, 0W15, potenciómetro, horizontal
Varios:
Condensadores: C1, C2, C5, C6, C9 = 100 nF, 63 V, 5 %, RM5 o RM7,5, cerámico C3, C4 = 22 pF, 50 V, 5 %, RM5 C7 = 1000 �F, 25 V, 20 %, radial Ø12,5 mm, RM5 (Panasonic EEUTP1E102, disponible en Farnell 1890543) C8 = 1000 �F, 63 V, 20 %, radial Ø16 mm, RM7,5 (Nichicon UPW1J102MHD, disponible en Farnell 2112865) C10, C11 = 10 nF, 100 V, 10 %, RM5, cerámico
Inductancias: L1 = 100 �H, 5 A, 20 %, radial 25 mm, RM8 (Würth 7447070, disponible en Farnell 2082537)
Figura 3. Placa del convertidor elevador.
Semiconductores:
F1 = portafusibles, 20x5 mm con tapa F1 = fusible de 5 A (lento) JP1, JP2 = conector SIL de 2 pines, 0,1’’ con jumper K1 a K4 = conector AMP para montaje sobre placa, para soldadura, 5,08 mm K5 = conector de 2x3, recto, 0,1’’ S1 = pulsador táctil de 6x6 mm, SPST, normalmente abierto S2, S3 = pulsador SPNO, para montaje sobre placa o frente* PC1 a PC3 = pin de 1,3 mm (S2, S3) Disipador FK230SAL1 de Fischer Elektronik X1 = 16 MHz, HC49/US, 50 ppm, Cload 18 pF LCD1 = LCD 2x16 (Elektor 120061-71) Placa referencia 120460-1
D1 = MBR3100G D2 = LED rojo, 3 mm D3 = LED verde, 3 mm T1 = IRL540NPbF
controles para la carga. En lugar de eso, se trata de mostrar el funcionamiento de un cargador de este tipo, y dejar margen a la propia creatividad del lector, gracias a que el código resulta muy claro y está bien comentado. Sugerencia: las baterías de plomo-gel han de cargarse entre 2 y 4 fases [3]. Una batería vacía (no completamente) se carga en la fase “bulk” con una corriente máxima determinada (entre 0,1 y 0,2 C), hasta alcanzar una tensión entre bornes de 2,4 V por celda (así se hace en el software aquí descrito, en este punto la batería está cargada en un 80 % aproximadamente). Posteriormente se limita la tensión a la de carga y se supervisa la corriente, hasta que caiga hasta un décimo del valor máximo. Esta es la llamada fase de absorción, y la batería se carga casi por completo, hasta alrededor del 98 %. Lo poco que queda se completa en la fase de “float” de la batería: la tensión nominal a la salida se ajusta de nuevo a 2,23 V por celda. En esta fase la batería puede permanecer conectada al cargador sin sufrir ningún daño. Si nos olvidamos de la cuarta fase, entonces sucederá que la batería se descarga casi por completo (hasta menos de 1,75 V por celda). En
tal caso tendremos que “rehabilitarla” aplicando una corriente muy baja, hasta que recupere la tensión mínima útil.
r t o k
pc bs
e
l
e
.
Si estás trabajando en alguna mejora del software y quieres mostrar algún resultado interesante, o por el contrario, no eres capaz de llegar a nada concluyente, ¡no dudes en compartir tu experiencia en la página de Elektor.LABS [4]!
w w w
e
r
v c
i
e
. c
o m
(120460)
Enlaces [1] Principios de un convertidor conmutado (en inglés): http://schmidt-walter.eit.h-da.de/ smps_e/smps_e.html [2] www.elektor.es/120460 [3] Carga de baterías de plomo y ácido: www. batterystuff.com/kb/articles/battery-articles/ battery-basics.html#9 [4] www.elektor-labs.com
www.elektor-magazine.es | julio / agosto 2013 | 107
Proyectos
•
Nivel de burbuja acústico Un Attiny45 el doble de útil Este pequeño proyecto está inspirado en la placa del sensor MMA7260
Jörg Trautmann (Alemania)
de la edición de verano de 2010. La idea era utilizar un sensor de inclinación como algo multifuncional, en la medida de lo posible. El resultado es un circuito con dos aplicaciones, que sirve como medidor acústico y para nivelar la posición de un objeto.
El propósito de este diseño era poder nivelar un objeto, como por ejemplo una mesa grande de jardín, para que esté razonablemente recta. Ya que en el exterior no tenemos puntos de referencia y los niveles de burbuja no siempre cumplen, este pequeño dispositivo nos ayudará a determinar la inclinación horizontal. Aparte, también puede utilizarse para monitorizar la posición: si alguien pretende robar la mesa sonará una alarma para disuadir al ladrón. Así funciona
El circuito presentado se muestra en la figura 1. Está basado en un microcontrolador ATtiny45 y un MMA7260QT. El MMA7260 es un acelerómetro integrado de 3 ejes, que llevamos utilizando desde 2007, y en la edición de verano de 2010 dio origen al “gran” proyecto “medidor de inclinación con USB” [1], que incorporaba un LCD. Este pequeño circuito integrado viene sobre una diminuta placa (figura 2) y dispone de tres sali-
Figura 1. El circuito es tan pequeño que puede montarse sobre una pequeña placa perforada.
IC2 LP2950CZ-3.3 S2
1
K1 C1
4...9 V
+3V3
3 C2 2
0
100n
1u
D1
R8 220R 8
+3V3 4 3 2 1 1 S D 2 t t S D c c V V l e l eXout e e S - S - Yout g g
5 6
R5
R3
k 0 7 4
R1
k 0 7 4
k 0 7 4
R7 R 0 0 1
7
Zout MOD1 8 090645-91 Sleep
+3V3
R6 k 0 3 3
C5 100n
R4 k 0 3 3
C4
R2 k 0 3 3
100n
C3
S1
3 PB4 2 PB3 7 PB2 6 PB1 5 PB0
5 B P
IC1 ATtiny45 D N G
BZ1
4
100n 120633 - 11
108 | julio / agosto 2013 | www.elektor-magazine.es
1
C C V
das analógicas, las cuales proporcionan una tensión proporcional a la aceleración, siendo 2,45 V el valor para +1 g. El microcontrolador ATtiny45 de Atmel [2] dispone de varios conversores A/D, de los cuales utilizamos tres para medir la aceleración o un cambio de inclinación. Ya que la referencia de tensión interna del controlador está fijada a 1,1 V, las tensiones a medir deben dirigirse a las entradas del conversor a través de un divisor. Basándonos en parámetros conocidos, obtenemos un valor de 470 kΩ para las resistencias R1, R3 y R5, y de 330 kΩ para R2, R4 y R6. Así se reduce la tensión de salida máxima de 2,45 V hasta aproximadamente 1 V. De esta manera se garantiza la máxima resolución posible. El microcontrolador está programado de modo que cualquier cambio en los parámetros X, Y y Z modifica la frecuencia de tres generadores de audio. Si el circuito está nivelado, los generadores de audio se mantendrán en silencio, pero si se inclina unos ± 2°, empezarán a emitir sonido que varía según la inclinación. El circuito se calibra con el botón S1, que también sirve para abandonar el modo normal. Si se pulsa durante más de 5 s se activará el modo de alarma. La alimentación se lleva a cabo mediante un regulador de tensión de baja caída del tipo LP2950CZ3.3, que suministra una tensión óptima de 3,3 V tanto para el acelerómetro como para el microcontrolador. Con una pila de 9 V podrá funcionar durante largo tiempo. Al probar el circuito hemos visto que la tensión mínima de alimentación es de unos 3,6 V. La corriente máxima es de aproximadamente
microcontroladores
4,56 mA, y la media unos 3,06 mA, calculada cuando el LED está iluminado y con el transductor piezoeléctrico sonando. Montaje y funcionamiento
El montaje es bastante simple y puede realizarse en una placa perforada, por ejemplo en la placa experimental ELEX-1. La primera vez que conectemos la alimentación el LED rojo debería iluminarse, y en el altavoz no debería oírse nada. Si no fuera el caso, tendremos que revisar el montaje del circuito en detalle. Tras el inicio, el circuito ha de calibrarse. Para ello dejamos la placa en el suelo y pulsamos S1 durante aproximadamente un segundo. Tras soltar el botón el LED se apagará y se almacenan el valor de calibración en la memoria. En este momento el dispositivo debería estar en silencio. Ahora, si la placa se inclina escucharemos uno, dos o tres pitidos superpuestos. El LED se iluminará. La frecuencia del tono cambiará en función de la inclinación. Si la placa vuelve a la posición horizontal, dejará de pitar y el LED se apagará. Lo mejor es albergar el circuito en una caja plana, de modo que a ojo podamos apreciar bien si está orientado correctamente. Si el circuito se utiliza sólo para vigilar objetos, primero habrá que fijarlo sobre el objeto en cuestión y después pulsar el botón de calibración (pues no tiene por qué estar siempre en posición horizontal). Tras esto, pulsamos S1 otra vez, pero durante varios segundos hasta que el LED empiece a parpadear. Al soltar el botón el sistema estará “armado”. Con una inclinación de unos 20° empezará a sonar un tono típico
de alarma antirrobo. Para desactivar la alarma basta con pulsar otra vez S1 brevemente. Después el dispositivo estará otra vez alerta. Para devolverlo al modo “nivel de burbuja” habrá que desactivar la alimentación. En el reinicio utilizará el último valor de calibración, pues permanece guardado. ¿Y el programa?
El código puede descargarse en la página del proyecto [3] y está escrito en BASCOM AVR. El pin de puerto PB1 está configurado como salida para el transductor piezoeléctrico, y PB0 como entrada con la resistencia de pull-up activada. Los conversores A/D, ADC0, ADC1 y ADC2 operan con una tensión de referencia interna 1,1 V. Cuando el interruptor S1 está cerrado (PB0 =
Figura 2. El sensor con su propia placa adaptadora.
www.elektor-magazine.es | julio / agosto 2013 | 109
Proyectos
•
Nota El MMA7260QT de Freescale ya no se fabrica. Aún puede encontrarse en el mercado, pero cada vez es más difícil. A día 13 de Abril de 2013 quedaban 67 módulos 090645-91 en el almacén de Elektor. Ojo, ¡vuelan! No obstante, el software (en BASCOM-AVR) también puede adaptarse a otros sensores [4].
nivel bajo) los valores de calibración se guardan en la EEPROM. Tras volver a conectar la tensión de alimentación, dichos valores se toman de nuevo como referencia. La lógica para analizar el estado de PB0 está diseñada de modo que la calibración sólo sea posible si el programa no se encuentra en el modo de alarma. En caso contrario, al volver a pulsar S1 iríamos de nuevo a la alarma. Así disponemos de dos funciones con un único pulsador. Un ciclo de medida consta de siete medidas en tres canales en 210 ms, calculando después el
valor medio. Los experimentos muestran que la precisión y estabilidad es más que suficiente. Si deseamos cambiar el valor de la sensibilidad para cada uno de los modos, eso puede hacerse ajustando la variable Trigger_value. Si el software ya cumple nuestras expectativas y no estamos por la labor de programar el controlador, en Elektor puede encargarse ya programado. (120633)
Enlaces de Internet [1] www.elektor.es/070829 [2] www.atmel.com/devices/ATTINY45.aspx [3] www.elektor.es/120633 [4] Sensor de aceleración de baja “g”: www. freescale.com/webapp/sps/site/taxonomy. jsp?nodeId=01126911184209#2
Puerto de dos hilos Von John Hind (Reino Unido)
UB
R2
VCC
U f
I f
R1 I/O
U in S1
D1
Controller
variante en el artículo “Puerto de dos hilos 2.0” [2]. Ambas versiones utilizan dos transistores y unos pocos componentes más para conectar un LED y un pulsador a un microcontrolador. Aún así, el autor todavía se veía capaz de reducir aún más el diseño, pero, con un par de resistencias y un pin de puerto difícilmente podría ser más minimalista, ¿no?
GND
130115 - 11
El “Interfaz de dos hilos para interruptores con LED” de Klaus Jürgen Thieslers se publicó primero en versión simple [1], y posteriormente otra
110 | julio / agosto 2013 | www.elektor-magazine.es
Si reducimos el número de componentes, significa que el microcontrolador tendrá que rendir más. En esta solución damos por hecho que los pines pueden operar tanto como entradas o como salidas, que normalmente suele ser el caso. Como salida a nivel alto el LED se iluminará, y como entrada, con el LED apagado, podrá leer el estado del pulsador. Si echamos un vistazo a la tabla
microcontroladores
Tabla 1 Estado
Pin de E/S Nivel
Interruptor
LED
If
Uin
1
Entrada
Alto
Abierto
off
(U B – Uf ) / (R1 + R2)
Uf + If * R1
2
Entrada
Bajo
Cerrado
off
U B / (R1 + R2)
If * R1
3
Salida
Alto
Abierto
on
(U B – Uf ) / R1
UB
4
Salida
Alto
Cerrado
off
U B / R1
UB
Tabla 2 Color del LED
Uf
If
@ 5 V: R1 | R2
@ 3,3 V: R1 | R2
@ 2,1 V: R1 | R2
Rojo
1,7 V
10 mA
330 Ω | 470 kΩ
160 Ω | 220 kΩ
39 Ω | 56 kΩ
Naranja, amarillo
2,1 V
10 mA
300 Ω | 430 kΩ
120 Ω | 180 kΩ
-
Verde
2,2 V
10 mA
270 Ω | 390 kΩ
110 Ω | 160 kΩ
-
Azul, Blanco
3,6 V
20 mA
68 Ω | 200 kΩ
-
-
de estados, los dos primeros (1 y 2) deberían aclararnos las cosas. El pin de E/S funciona como entrada, y dependiendo del estado del interruptor, la tensión Uin se interpreta como un nivel “bajo” o “alto”, siempre que las resistencias R1 y R2 se hayan dimensionado acorde con la tensión de alimentación UB., ya que la mayoría de microcontroladores tienen un umbral superior de más o menos la mitad de UB. Pero, ¿cómo hacer polling en el pin en los estados 3 y 4 cuando está configurado como salida? En realidad es bastante fácil: varias veces por segundo el pin pasa a funcionar como entrada, saltando durante un instante al estado 1 o 2, algo tan rápido que no puede ser percibido por el ojo humano. Una vez se pulsa el interruptor, el pin permanece en el estado 2, hasta que se deje de pulsar, entonces volverá a saltar al estado 4 (con lo que el LED permanecerá apagado), y no circulará corriente innecesariamente. Finalmente, se pasa de nuevo al estado 3, iluminándose el LED otra vez. En el firmware del microcontrolador puede implementarse no sólo el filtrado de rebotes típico, sino también algunas funciones “de lujo” como la intensidad luminosa variable en el LED, que se consigue conmutando rápidamente entre los estados 1 y 3. ¡Imaginación al poder! El autor ha desarrollado esta solución basándose en un PIC16F883 [3]. Este modelo dispone de resistencias internas de pull-up activables, al igual que los populares microcontroladores
AVR. En principio, con una UB muy reducida, podríamos hasta prescindir de R2 y servirnos de la propia resistencia interna. Lamentablemente, estas resistencias de pull-up suelen tener valores de 10 a 50 kΩ, que sólo podrían iluminar levemente LED en el estado 1, aunque sería visible. El firmware activa la resistencia de pull-up sólo el tiempo estrictamente necesario, como cuando se pulsa el interruptor, para asegurar que este efecto no resulte molesto. En cualquier caso, R2 ha de dimensionarse de modo que se supere el umbral de conmutación de la entrada, pues con corrientes pequeñas se reduce la tensión directa Uf. Este efecto puede dar problemas si utilizamos por ejemplo un LED rojo y una alimentación de 5 V. En este caso, un diodo de silicio normal y corriente en serie con LED podría ser de ayuda. La tabla adicional sirve como guía para dimensionar la resistencia, que debe ser proporcional a la alimentación y al color del LED. Para corrientes distintas, tendremos que hacer algunos cálculos. (130115)
[1] Interfaz de Dos Cables para Interruptores con LED, Elektor de Abril de 2012, www. elektor.es/110572 [2] Puerto de dos hilos 2.0, Elektor de Enero/ Febrero de 2013, www.elektor.es/120071 [3] Firmware: www.elektor.es/130115
www.elektor-magazine.es | julio / agosto 2013 | 111
Tech The Future
•
Neurociencia cognitiva y música Tessel Renzenbrink
La neurociencia cognitiva pasa por un desarrollo enormemente rápido debido a
(redacción Elektor TTF)
una escalada de nuevas tecnologías que coloca a los científicos en mejores condiciones para observar, entre otras cosas, la mente. Artur C. Jaschke es músico, neuromusicólogo y está vinculado como investigador al departamento de neuropsicología clínica de la Vrije Universiteit de Amsterdam. Investiga los efectos de la música sobre la mente. Tessel: ¿Qué es la neurociencia cognitiva y qué aplicaciones tiene?
Figura 1. Artur Jaschke. (Foto: Elte Rauch)
Artur: La neurociencia cognitiva investiga la relación entre modelos de conducta y la estructura y actividad del cerebro. Es un campo amplio en el que hay varias especialidades involucradas como son la neurociencia, biología, psicología y humanidades. Hay muchas enfermedades que tienen su origen en el cerebro como son el Alzheimer, la esquizofrenia, las depresiones y el autismo. Todavía sabemos muy poco del cerebro y por eso es difícil tratar estas enfermedades de forma adecuada. La comprensión del funcionamiento del cerebro conduce a un mejor entendimiento de estas enfermedades. Quizás no se puedan curar por completo, pero en todo caso puede mejorar la calidad de vida de aquellos que la padecen. Piensa por ejemplo en un interfaz cerebro-máquina, con el que puedes controlar una máquina directamente con el cerebro. Esto puede significar mucho para aquellas personas cuyo cuerpo está paralizado desde el cuello para abajo. Ya ha habido varios experimentos diferentes que terminaron con éxito en que una persona tetrapléjica controlaba un brazo robótico y recuperaba, de alguna manera, libertad de movimiento. Tessel: La neurociencia da un salto enorme. ¿Por qué ocurre eso?
Artur: Como consecuencia de las innovaciones tecnológicas de los últimos 20 años estamos en
112 | julio / agosto 2013 | www.elektor-magazine.es
condiciones de observar el cerebro en acción por primera vez. Antiguamente sólo podíamos ver la anatomía y las señales que emitía el cerebro. Pero ahora puedes seguir literalmente observando mientras el cerebro está funcionando. Te encuentras ahí como un hombrecito pequeño, mirando a tu alrededor, y piensas, ¡guau!, aquí es donde ocurre. Hay varias tecnologías que hacen que esto sea posible. En la neurociencia cognitiva utilizamos especialmente fMRI para observar la materia gris y DTI para la materia blanca. En la materia gris se trata la información, mientras que la materia blanca se encarga de la comunicación. Puedes imaginarlo como dos casas donde ocurren todo tipo de cosas, esa es la materia gris. Entremedio hay un cable para transportar las señales: la materia blanca. FMRI (functional Magnetic Resonance Imaging) mide el nivel de oxígeno en sangre. Las áreas del cerebro que se encuentran activas necesitan mucho oxígeno. Por eso ves clarearse las partes activas (figura 2) en el escanograma. DTI (Diffusion Tensor Imaging) muestra tanto el curso de las rutas como las señales que pasan por ellas ( figura 3). ¿Qué hacéis en el departamento de neuropsicología clínica?
La neuropsicología se encuentra entre la psicología y la neurociencia e intenta crear una relación entre las dos. Observamos, por ejemplo, a gente con demencia y la comparamos con un grupo de control sano. A partir de pruebas neuropsicológicas determinamos la diferencia en el comportamiento. Por ejemplo, les hacemos colocar naipes en un patrón determinado. A la gente con demencia le resulta mucho más difícil que a gente sana. Luego les hacemos volver a realizar la prueba mientras medimos la actividad del
neurociencia cognitiva y música
cerebro con escaneo fMRI. Por eso determinamos que la gente con demencia tiene una complejidad reducida de interconexiones en determinadas áreas del cerebro. Así mostramos el componente físico de la enfermedad. Luego efectuamos intervenciones durante un periodo prolongado, por ejemplo, quinesioterapia en gente con demencia. Insertamos varios momentos diferentes tanto en las pruebas neuropsicotecnológicas como en escaneos del cerebro. Esto resulta en dos juegos de datos con los que podemos hacer un inventario de la efectividad de la intervención. Lo que yo hago personalmente es trabajar con música como forma de intervención, porque es algo a lo que todo el mundo tiene acceso. Hay un amplio consenso de que la música tiene un efecto positivo sobre niños autistas. Puedes observar el progreso en su comportamiento social y sus habilidades sociales. No cura al niño, sino que mejora su calidad de vida. Pero es difícil de demostrar científicamente el efecto positivo. Esto es lo que intento hacer ahora. La música es un sistema dinámico. Cuando oyes una obra de música que nunca antes habías escuchado, hay un reconocimiento: tiene una melodía, ritmo, harmonía, sin embargo la composición es diferente cada vez. Debido a su dinámica, la música es un desafío intelectual, puedes verla como un estímulo sano no invasivo que hace que el cerebro se ponga en marcha para establecer nuevas conexiones. Todas nuestras experiencias tienen una base física. Para grabar una nueva experiencia el cerebro crea nuevos sinapsis, que son interconexiones entre células nerviosas. Este cambio continuo de la red neural se denomina plasticidad neuronal. Al cerebro le gusta hacer algo novedoso frecuentemente. Así se mantiene activo. ¿Cómo lleva a cabo la música un cambio en el comportamiento?
Esto tiene que ver con las funciones ejecutivas, que son procesos cognitivos como la planificación, la toma de decisiones, la solución de problemas y multitareas. Para gente sana es muy fácil realizarlas, pero a los autistas les resulta muy difícil. Como son procesos que realmente estás ejecutando constantemente en la vida diaria, tienen una gran influencia sobre el comportamiento. Si escuchas música activamente o - mucho mejor - tocas un instrumento musical, el córtex prefrontal, entre otras partes, está enormemente
Figura 2. Imagen fMRI durante una tarea de memoria de trabajo. (Foto: J. Kim, N.L. Matthews & S. Park CC BY 2.5).
Figura 3. Visualización de una medición DTI del cerebro humano. (Foto: Thomas Schultz CC BY-SA 3.0).
activo y esto estimula el desarrollo de nuevas interconexiones. En las funciones ejecutivas, el córtex prefrontal también está fuertemente involucrado. Por eso una mejor conectividad de esta red también tiene un efecto sobre las funciones ejecutivas. Puedes utilizar las nuevas interconexiones para planificar o hacer tareas múltiples. Esta es la teoría para la que intentamos ahora presentar pruebas empíricas. Que la música tiene un efecto positivo sobre la gente es algo que ya sabemos. Pregúntaselo a los padres de niños autistas, a los científicos, ¡a ti mismo! Pero nadie sabe exactamente cómo funciona. Así que en realidad retrocedemos un paso. Sabemos el resultado, pero intentamos aclarar por qué ocurre. (130056)
www.elektor-magazine.es | julio / agosto 2013 | 113
Magazine
•
Comprobador de Superficies Rugosas PR9150/PR9151 de Philips Rasgando solo la superficie de la metalurgia de los años 50 Jan Buiting,
La mayoría de la gente de electrónica que conozco odia el trabajo de mecánica y
Editor Jefe
mecanizado en general. De igual forma, la mayoría de los adictos a la metalurgia tiene una opinión negativa de la electrónica. Históricamente es en el CAD y el CAM donde, de alguna forma, se ha observado un interés común. Recientemente los ‘e’ y los ‘mec’ se han hecho amigos en esa zona caliente llamada impresión en 3-D. A mediados de los 50, la compañía holandesa Philips fue reconocida por la excelente calidad de todos los conjuntos y piezas mecánicas de prueba y medida y de los equipos de comunicaciones. Esto debe haberse debido, en gran parte, a los fundamentos científicos que se extendieron por los reconocidos Laboratorios de Física de Philips (Natuurkundig Laboratorium), donde se dio total libertad para perfeccionar su arte a algunos de los físicos e ingenieros mecánicos más brillantes, además, sin falta de financiación. De nuevo, a mediados de los 50, Philips jugó un importante papel en la ciencia subyacente de los equipos de prueba y medida: el tipo de cosas que se encontraba en los laboratorios y los talleres de los no aficionados. La serie ‘PR’ de equipos Philips era, con seguridad, para los electrónicos, pero no limitada solo a electrónicos: daba servicio a la industria química, médica y mecánica y a instituciones de investigación que, en su momento, representó un mercado grande y lucrativo. Los ejemplos incluyen probadores y medidores de acidez para la conductividad de los fluidos, presión sonora, megavoltios, todo tipo de gases, vibraciones, rayos X... lo que sea. De vuelta a 1952, el trabajador de los laboratorios de Física de Philips, G. W. van Santen, se puso como loco por la confusión de normas que los ‘mecánicos’ se lanzaban unos contra otros, al hablar de la rugosidad de la superficie (SR) de productos metálicos terminados, sin llegar a expresar la SR en valores que todo el mundo pudiera entender. En un extremo del espectro, había instrumentos muy costosos manejados por unos pocos científicos afortunados, mientras que en el otro extremo, las viejas y expertas manos de
114 | julio / agosto 2013 | www.elektor-magazine.es
XXL
los trabajadores del metal, con los ojos cerrados, utilizaban sus uñas para medir la suavidad del acabado después del fresado, rectificado y pulido de las piezas que fabricaban. Sorprendentemente, muchos de nosotros podemos percibir una rugosidad de la superficie de hasta unas 40 micras o el grosor aproximado de un cabello humano.
1 c. El estándar Americano ASA B46 menciona hrms
Rugosidad confusa y definida
Ahora vamos a contar una historia horrorosa de las normas no muy diferente de la historia de la Torre del Babel. Vamos a tratar de hacer un salto en el tiempo hasta 1952, ¿de acuerdo? La Figura 1 muestra el perfil de una superficie mecanizada. El dibujo de la pieza de trabajo se ha expandido verticalmente con respecto a su longitud. Para que la rugosidad de la superficie sea registrada de manera inequívoca, la cantidad debe ser normalizada internacionalmente. Lamentablemente, esto no sucede así. La rugosidad superficial se define de manera diferente en cada país de la siguiente manera: a. Altura máxima de la rugosidad , H max, es
decir, la diferencia de altura entre el punto más alto y el valle bajo. Esto forma la base de la norma alemana DIN 4762. La H max se expresa en micras. b. Altura de la rugosidad efectiva , heff o hrms, es decir, la raíz cuadrada de la media matemática de las desviaciones h al cuadrado, desde la línea de base (L, nivel medio), medido sobre una longitud definida: heff
=
h12 + h2 2 + h32 + .... hn 2 n
para todo, con el valor dado en micro-pulgadas. c. Altura de la rugosidad media . havg, es decir, la media matemática de los valores absolutos de las desviaciones h de la línea base medida sobre una longitud definida: havg
=
h1 + h2 + h3 + .... hn n
El estándar Inglés BS 1134 define la altura de la rugosidad media (media de la línea central; C.L.A.) como el estándar, con los valores reales expresados en micro-pulgadas, justo como con hrms. La Alta Comisión Alemana para la Estandarización también recomendaba la altura de la rugosidad media como el estándar, argumentando que (a) la definición de havg estaba más allá de cualquier discusión; (b) el término valor medio es más fácil de clarificar en un banco de trabajo; y (c) la cantidad puede ser medida directamente con medios electrónicos. Además, la diferencia entre havg y heff es despreciable en la práctica. Unidad de rugosidad
Para superficies lisas (metal) la micra (micrometros; �m; 10-6 m) es una unidad bastante gruesa que, probablemente, no guste a los usuarios de números pequeños. Y, sin embargo, la mili-micra es demasiado pequeña, ya que da números
www.elektor-magazine.es | julio / agosto 2013 | 115
Magazine
•
En una superficie lisa de 0,05 � = 2 �’’ = 50 m�. En una superficie rugosa 6,3 � = 250 �’’ = 6300 m� Pero, en países como Holanda, donde domina el sistema métrico, es poco probable que se adopte una norma de referencia basada en pulgadas (es decir, una unidad no-métrica). Como solución se propuso ‘ru’ como unidad de rugosidad de superfi cie, con estratagemas lingüísticas aplicadas: rugosité; ruwheid, ‘roughness unit’ (‘unidad de rugosidad’), para convencer a los usuarios que hablan francés, holandés e inglés, respectivamente. Una superficie tiene una rugosidad de 1 ru si la altura de rugosidad media Ravg = 1/40 micras ≈ 1 micro pulgadas. Con este problema eliminado ( y una sonrisa por la repetición persistente de la pulgada ) se establecieron las clases de rugosidades de R1 a R6, junto con un conjunto de símbolos que, se suponía que la gente de los tornos y las fresadoras podrían reconocer, a partir de dibujos de montaje. Se trataba de un amplio conjunto de triángulos abiertos y sólidos y círculos abiertos y sólidos, con los que jugar y que, supongo, podríamos aprenderlos igual que aprendemos nuestros kilo-ohmios y miliamperios.
2
3
grandes que son poco prácticos. La micro-pulgada es una buena unidad intermedia, ya que la mayoría de las superficies acabadas estarán entre 1 y 500 micro-pulgadas, en términos de rugosidad de superficie. Por ejemplo:
El PR9150/PR9151
Bueno, la única diferencia entre los dos equipos es el uso de tubos americanos en el PR9151 (como un 6X4 para un AZ41).
Tabla 1. Versiones PR9150 / 9151 Tipo
Escala del Medidor
Rangos de Medida
Muestras de Rugosidad
PR9150/01 PR9151/01
Escala /01 (Fig. 5a) para a. comparación; Red= aceptada, Green = rechazada b. multiplicación (con factor indicado, para SR w.r.t. pieza de trabajo de referencia)
1 – 300 ru, divido en 4 sub-rangos
Pieza de referencia o PR9180/00 (valores de calibración de R a: 125 – 32 – 8 y 2 ru; 3,2 – 0,8 – 0,2 y 0,05 �)
PR9150/02 PR9151/02
Escala /02 (Fig. 5b) calibrada para R a en ru (=C.L.A. in �’’); escala muestra valores de SR recomendados como estándar
I: 50-280 ru II: 10-70 ru III: 3-16 ru IV: 1-4 ru
PR9180/00 (ver más arriba)
PR9150/03 PR9151/03
Escala /03 (Fig. 5c) con división decimal, calibrado para R a en ru.
I: 50-250 ru II: 10-60 ru III: 3-16 ru IV: 1-4 ru
PR9180/00 (ver más arriba)
PR9150/04 PR9151/04
Escala /04 (Fig. 5d) calibrado para R t = Hmax en �
I: 5-25 � II: 1-6 � III: 0.3-1.6 � IV: 0.1-0.4 �
PR9180/02 (valores de calibración de Ra: 12,5 – 3,2. – 0,8 y 0,2 �
PR9150/05 PR9151/05
Escala /05 (Fig. 5e), calibrado para R a en �
I: 1-6 � II: 0.3-1.6 � III: 0.1-0.4 � IV: 0.02-0.1 �
PR9180/00 (ver más arriba)
116 | julio / agosto 2013 | www.elektor-magazine.es
XXL
Lamentablemente no disponemos de esquemas de ninguno de los dos para poder mostrároslos. Pero siempre podemos abrir un equipo (ver la Figura 2). Interior impoluto después de 60 años. Vamos a hacer conjeturas. La electrónica probablemente cuenta con un atenuador ajustable de entrada (para las rugosidades de clase R2 a R5), un amplificador, un rectificador y un medidor de aguja. No podemos equivocarnos mucho. La electrónica se encuentra alojada en una caja de madera muy bonita con un asa de cuero y una tapa con bisagras. El conjunto pesa unas 15 libras (6 kg, aprox.). Cada vez que la abro, las personas de alrededor piensan que voy a hacer medidas de la radiación.
4
La sonda
La cruz del instrumento es la sonda, que se muestra de forma esquemática en la Figura 3. Contiene un cristal piezo-eléctrico hecho de ‘titanato de bario’, fijado en la caja de la sonda, en un lateral, y terminada con un estilete en el otro. El estilete es una aguja de zafiro sintético, con una dureza de 2.000 VPN y un radio final de unas 60 micras. Esto permite “probar” el perfil de rugosidad de superficies acabadas, alcanzando los valles más profundos (las pendientes casi siempre superan los 150 °). La punta del estilete se puede ver y palpar con facilidad. Si el PR9150/9151 tuviese un altavoz, probablemente se podría utilizar para reproducir canciones de Joe Cocker o Janis Joplin. En la práctica, la sonda es tan pequeña que se puede utilizar para medir agu jeros pequeños de hasta 8 mm de diámetro. Se conecta al instrumento con una buena longitud de cable apantallado terminado en un enchufe sólido de muy alta calidad. La sonda (ver Figura 4) tiene un mango de baquelita bastante elegante.
a
b
c
Un equipo para cada estándar
Al parecer, Philips no confió demasiado en un instrumento de “talla única”, con una lectura ru uniforme, como proponían una gran cantidad de comités y burócratas. Obviamente, se trataba de un nuevo caso en que la industria tenía que tratar con “Washington y Bruselas”. Me quedé sorprendido e intrigado al encontrar cinco modelos diferentes de PR9150/9151, mencionados en el manual que venía con el primer instrumento que conseguí hace unos dos años. He resumido las diferencias en la Tabla 1. Cada versión tiene su propia escala de medida para, supongo, adaptarse a los diferentes mercados, a las preferencias del Primer Inspector Jefe (CIO) y a las aplicaciones.
d
5
e
www.elektor-magazine.es | julio / agosto 2013 | 117
Magazine
•
La caja de calibración PR9128/00 que se muestra en la Figura 6 está hecha de baquelita reforzada. Además, debemos tener en cuenta los símbolos del triángulo sólido y abierto que designan las cuatro clases de rugosidad de superficie. Los valores exactos de SR están escritos a mano. Me resultó fácil ver el grado de acabado de las cuatro piezas de metal de la caja, y sentir los surcos debido al fresado hecho sobre las dos muestras ‘más duras’. Las otras dos piezas requieren un esfuerzo mayor para distinguirlas. Todas las piezas tienen un cromado fino que no afecta a la rugosidad de su superficie. ¿Alguien tiene una caja PR9180/02? En la práctica
6
Retrónica es una sección mensual que trata sobre electrónica antigua, incluyendo diseños legendarios de Elektor. Contribuciones, sugerencias y peticiones son bienvenidas; por favor, enviad un “e-mail” a [email protected].
Las Figuras 5a-d son un intento de reproducir las distintas escalas de medida de la única copia que tengo de este manual. Tengo las versiones del equipo PR9151: /01, /02 y /05, también tres sondas (una con el estilete roto), un manual y una... ¡Caja de calibración original!
Si bien el PR9150 y el PR9151 no son bichos raros, la caja de calibración mencionada en el manual sí lo es. Finalmente, fui capaz de conseguir una con el tercer PR9151 que me encontré, que también era el que estaba en peor estado. Aunque podemos hacer medidas comparativas con el PR9150/9151, el departamento de ventas, el director ejecutivo, el financiero y el comercial insistirán en que ¡tienen valores absolutos y puntos de referencia! Así que tenemos que calibrar el instrumento antes de tomar las lecturas de las muestras.
118 | julio / agosto 2013 | www.elektor-magazine.es
Después de haber calibrado el instrumento utilizando las muestras de la caja, se debería poner la sonda en la superficie y probarla en un ángulo de 90 grados con respecto a la dirección del acabado. Se puede mover la sonda hacia arriba y hacia abajo 2 ó 3 veces por segundo, a una distancia de 1,5 - 2 cm, o hacer que la pieza gire lentamente (por ejemplo, en un torno o una fresadora). Se requiere un mínimo de una sonda o una velocidad del objeto de unos 4 m/s. La parte inferior de la sonda tiene que tocar la superficie a lo largo de toda su longitud. Aunque el PR9150/9151 tiene filtros de paso alto para eliminar los efectos de los movimientos descontrolados de la mano, se requiere algo de práctica para evitar cambios bruscos en la refracción del medidor. Y, sí, la prueba es prejudicial: el estilete deja arañazos. En un capítulo bastante largo del manual Philips del PR9150/9151, concluye que su instrumento puede conseguir una precisión del 20 %, que es “espectacular, considerando que los medidores de rugosidad más precisos y caros alcanzan una precisión en torno al 15 %, debido a la estructura no homogénea de las superficies acabadas habituales”. Hoy, hay medidores de rugosidad superficial (SR) ‘a patadas’ en Ebay. Utilizan tecnologías muy mejoradas de recogida de impactos con un estilete piezoeléctrico y uno o dos tubos como los que hicieron en 1955. Es más, no vemos ninguno de estos feos equipos en talleres mecánicos, ni donde se perfeccionan los taladros cilíndricos y el pulido de precisión. Adivino que el bueno y viejo método de la uña (‘thumbnail’) asociado a una enorme cantidad de destreza y experiencia aún se mantiene, frente a la costosa electrónica de los ‘K-dólares’ y a Internet. (130057)
regulador de bomba
Regulador de Bomba para velero o caravana etc.
Paul Cordonnier (Bélgica)
La palabra bomba, con su raíz latina pupp- que significa mamar o chupar, entró en la lengua francesa a través del vocabulario de la marina. Es también por la misma vía por la que entra en este número de verano: paso bastante tiempo en el mar donde, a menudo, me he estado enfrentando con los inconvenientes de bombas de distribución de agua montadas en los veleros. En principio, una instalación de agua consta de una red de distribución puesta bajo presión por una bomba de 5 a 10 A, alimentada con 12 V y que funciona generalmente en el modo “todo o nada” más un globo de expansión. Este último suprime las sacudidas del flujo y los golpes de ariete. Es una fuente de comodidad pero también de problemas: atascos, mantenimiento, etc. Los nuevos modelos de bombas permiten prescindir del globo. Ahora es un pequeño circuito electrónico el que se encarga de hacer girar la bomba en función del flujo. Sin el globo la bomba hace menos ruido, su consumo disminuye y el flujo se modula con suavidad. ¡Todo funciona correcto!
Excepto el precio. Estas nuevas bombas, con su circuito de regulación encapsulado, se venden prácticamente al doble del precio de las que reemplazan. No soy electrónico de formación sino de convicción: así pues, he buscado y he encontrado una solución simple y mucha más barata que estoy feliz de compartir aquí. Vamos a comenzar llevando la atención del lector hacia S1 del esquema de la Figura 1 , dibujado como un interruptor ordinario, aunque que s e trata de un presostato (o manostato) controlado, como su nombre la indica, por la presión de un fluido cuando sobrepasa un umbral. Así pues, es él el que pone el circuito en funcionamiento cuando la presión en la red de distribución de agua es insuficiente y lo corta cuando vuelve a subir. El control de la bomba (existente) M1 queda asegurado por IC1, por medio de una señal de
www.elektor-magazine.es | julio / agosto 2013 | 119
Proyectos
•
IC2 +5V
7805
C3
C1
C2
C4
C5
470u 25V
100n
100n
33u 10V
100n
F1 1
10A
K2
D1 S1
1N5408 BT1
M1
M 12V
K1 1
1
VPP
4
2
VDD
2
3
GND
3
4
ICSPDAT/PGD
13
5
ICSPCLK/PGC
12 11
ICSP
R1 2
VDD
10
1k
9 3
T1
5
IC1 VPP/MCLR/RA3 OSC1/CLKIN/T1CK/RA5 T1G/OSC2/CLKOUT/AN3/RA4 CIN+/ICSPDAT/ANO/RA0 CIN-/VREF/ICSPCLK/AN1/RA1 COUT/T0CKI/INT/AN2/RA2 RC0/AN4
RC2/AN6
RC1/AN5
RC3/AN7
RC5
PIC16F684
RC4
8 7 6
VSS
K3
14
D3
D4
2 1
RFP70N06 R2
Figura 1. El umbral de disparo de S1, el presostato de la bomba, se puede regular con la ayuda un pequeño tornillo en algunos modelos.
D2
R3
k 0 1
R5 R 0 7 4
1N4001
R4 R 0 7 4
2k5
110188 - 11
1 kHz que modula la anchura de pulso (PWM) de la puerta del MOSFET de potencia, T1. Éste, insertado en la línea de alimentación negativa de la bomba, ha sido concebido para ser controlado directamente por un microcontrolador. El PIC16F684 compara, en sus terminales 10 y 9 respectivamente, la tensión en los extremos de la resistencia drenador-fuente del transistor y la tensión de referencia (fijada por el usuario con el potenciómetro R3) y busca, en función de
Figura 2. La señal en la puerta de T1 (amarillo) y en el drenador de T1 (azul).
120 | julio / agosto 2013 | www.elektor-magazine.es
la diferencia comprobada, una aproximación de una a la otra. Cuando la tensión sobre el motor es superior a la referencia, la anchura de impulso disminuye, mientras que aumenta en el caso contrario. El margen del MLI está limitado entre el 55 % (140/255) y el 98 % (250/255). Con fines de depuración, el valor instantáneo de esta relación es enviado por el PIC sobre la salida serie (a 2400 baudios). En ausencia de flujo del circuito de distribución de agua, la presión aumenta para alcanzar el nivel de ajuste del presostato que abre S1 y el circuito de control de la bomba es desconectado. El diodo D2 recorta los picos de tensión con el fin que no dañen al comparador. El LED D3 está controlado por la salida del comparador analógico integrado en el PIC cuyos terminales 9 y 10 son las entradas inversora y no-inversora, mientras que LED D4 está controlado por el programa. La función de K3 está ligada a la depuración. Este conector podría ser omitido. El programa de regulación, escrito en PICO Basic Pro, es muy simple ya que el PIC no tiene otra
regulador de bomba
Lista de materiales I
Resistencias: (0,25 W, 6,3 mm) R1 = 1 kΩ R2 = 10 kΩ R3 = 2k5 aj. R4, R5 = 470 Ω
-
O
3
rpc b s e
t o
2
k
1
e
l
e
.
Condensadores:
w w w
1
C1, C2 = 100 nF, 2,5 mm C5 = 100 nF, 5 mm C4 = 33 �F, 10 V, radial, 2 mm C3 = 470 �F, 25 V, radial, 5 mm
3
r
v c
i
e
. c
o
m
2 1
Semiconductores: D1 = 1N5408 D2 = 1N4001 D3, D4 = LED 5 mm, rojo T1 = RFP70N06, N-MOSFET 70 A, 60 V IC1 = PIC16F684-I/P IC2 = 7805
Figura 3. La configuración particular del circuito impreso se explica por la elección de una caja estanca.
K3 = n.c. Zócalo DIL de 14 terminales
Varios: K1 = borne de tornillo o de muelles, 3 terminales, paso de 5,08 mm K2 = conector hembra 1x5, 2,54 mm
cosa que hacer. El código fuente se puede descargar de la página web [1]. El PIC programado está disponible en Elektor, de la misma forma que un circuito impreso. La inserción del regulador en la línea de alimentación negativa de una bomba en una instalación existente, no debería plantear ningún problema, pero su instalación exige una atención especial, ya que estará colocado en un medio potencial-
Modelo de la bomba utilizada: Jabsco PAR-MAX 1.9 7,2 L/min 12 V 3 A
mente húmedo. Es lo que explica el diseño específico del circuito impreso, estudiado para una caja en concreto (el modelo PICCOLO ABS B 65 T de Fibox), elegida por su índice de protección relativo a la estanqueidad (IP 66/67). Su contenido está al abrigo de proyecciones fuertes de agua e incluso hasta 1 m de inmersión. La bomba que he utilizado es un modelo 7,2 L/ min, 12 V, 3 A. Para K1, los marineros preferirán una clavija de muelle en lugar de un modelo de tornillo, que corre peligro de aflojarse en presencia de vibraciones. ¡Buen viento! (110188)
Enlaces [1] www.elektor.es/110188
www.elektor-magazine.es | julio / agosto 2013 | 121
Proyectos
•
Encendido CDI Para bicicletas Spartamet y Saxonette
Jan Visser (Laboratorio de Elektor)
Este artículo describe una unidad CDI de construcción propia para bicicletas con motor de ayuda Spartamet y Saxonette. Durante las 3 semanas que duró el traslado laboral diario, más o menos forzoso, en una Spartamet, observé que aunque funcionaba perfectamente, el encendido empezaba a saltar con el acelerador a tope y a una velocidad máxima (25 km/h). Con el acelerador a todo gas el consumo también subía drásticamente: desde 1 l por 50 km con el acelerador a 3/4 a 1 l por 30 km con el acelerador al máximo. Sospechaba que los saltos en el encendido y el aumento de consumo estaban relacionados uno con otro; un poco de trabajo intelectual y la verificación de la bugía y tubo de escape después de varios viajes lo confirmaban.
122 | julio / agosto 2013 | www.elektor-magazine.es
Cuando el motor de 30 cc va a tope y alcanza la velocidad máxima, el encendido empieza a emitir chispas. De esta manera el fabricante incorpora una limitación electrónica. Sin embargo, el carburador no queda limitado y sigue suministrando la mezcla de gas que sale por el tubo de esca pe sin haberse quemado. Aparte de que esto influye negativamente en el consumo, tampoco es algo agradable para el tubo de escape, ya que se carboniza mucho más rápidamente y se tiene que sustituir mucho antes. Por supuesto que podemos abrir con una fresadora y adaptar la unidad CDI existente, pero como está completamente sumergida en resina sintética, no es una tarea agradable. Por eso hemos investigado lo que se necesita para que salte la chispa sin que haya una limitación de revoluciones. Esto dio como resultado el esquema que presentamos aquí. Como la bobina del encendido y el sensor se encuentran montados contra el volante del motor, solo tenemos que tratar con electrónica la descarga de una capacidad en una bobina en el momento preciso (capacitive discharge ignition). En la entrada se ha conectado una bobina de detección, que genera un pulso una vez por cada vuelta del volante. La salida está conectada con la bobina del encendido que tiene que suministrar a la bugía un pulso de alta tensión. El condensador C1 sirve de almacenamiento de la energía que se carga a través de D3. Cuando aparece un pulso
encendido CDI
en la entrada, se dispara el tiristor y este entra en conducción, por lo que C1 se conecta con la masa para que pueda descargarse a través de la bobina del encendido. ¡Eso es todo!
K1
Lista de materiales
D2
Resistencias:
1N4007
Al circuito se le ha asignado un sitio en una placa de una cara (cuyo diseño está disponible en [1]), pero ten cuidado porque hay que montar los compontes en las dos caras. Se ha hecho así para que el circuito fuera igual de grande que la unidad CDI original. Las dimensiones de esta son 59x38x24 mm. Echa un vistazo a las fotos del prototipo construido para mayor aclaración. Monta primero D1, D2, D4 y C2 en la cara de los componentes. A continuación se sueldan el diodo D3 y el tiristor T1 en la placa y luego se aplanan, donde D3 queda por encima de D2 y T1 por encima de D1 y D4. El condensador MKP C1 se coloca al lado de la placa. A continuación se sueldan el varistor VR1 y la resistencia R1 en la cara del cobre. Por último se montan los tres conectores de crimpar. Se puede utilizar una caja Hammond, tipo 001100 (número Conrad 540830-89) como encapsulado, pero un encapsulado de acrílico (caja de casete o cd) hecho por uno mismo también puede valer. Después de construir y conectar la placa, puedes comprobar si en el encendido se suministra una chispa. Si todo está en orden y la bugía chispea correctamente, se puede ubicar el circuito en una cajita y eventualmente sumergirlo en caucho fluido o en resina sintética. Si no lo haces, probablemente el circuito dejará de funcionar o empecerá a fallar a corto plazo, ya que el encendido recibe muchas vibraciones mecánicas. Hay dos unidades CDI diferentes en circulación, una de Motoplat (roja) y otra de Prüfrex (azul). En ambos casos la masa está conectada al contacto del medio de la unidad CDI. Si se intercambia la entrada y la salida, la unidad CDI no genera chispa. Si esto ocurre habrá que intercambiar el hilo rojo y el hilo azul. Después de encapsular el circuito y ponerlo en funcionamiento, se podía sentir un cambio directamente. El motor funciona mucho mejor con el acelerador a tope dado que ya no se omite ninguna chispa. También el consumo se redujo fuertemente y descendió a 1 l por 70 km. Dado que el motor utilizado también tiene sus límites mecánicos (carburador, tubo de escape, compresión) la velocidad máxima no aumentará de forma drástica, sino que sólo subirá entre unos 5 y 6 km. Por supuesto que la ventaja más
R1
VR1
D3 R 0 6 5
C2 68n
R1= 560 Ω VR1 = varistor s10k150
BY329
S10K140
Condensadores: DI1
K2
400V
C1 = 1 �/ 400 V MKP C2 = 68 n/400 V MKS
D1
1N4007
30V
Semiconductores: D1,D2 = 1N4007 D3 = BY329 D4 = diac d30 (alternativo: er900 o db3) T1 = TIC126n
TH1
K3
C1
TIC126
1u 400V
120601 - 11
Varios: 3 conectores de crimpar de 6,3 mm para montaje en placa Placa EPS 120601-1, ver [1]
rpc bs e
t o
k e
l
e
.
w w w
r
v c
i
e
. c
o
m
importante es que el motor funciona mejor y su consumo se reduce. (120601)
Enlaces web [1] www.elektor.es/120601)
Información de conexionado de la unidad CDI Motoplat: bobina negra con unidad CDI roja Prüfrex: bobina azul/gris/roja con unidad CDI azul Motoplat a = amarillo b = azul c = rojo
Prüfrex a = negro b = rojo c = azul
Las conexiones están indicadas encima de la unidad CDI. Si los hilos rojo y azul están intercambiados, no surgirá chispa, pero la bobina y la unidad CDI no se estropearán.
www.elektor-magazine.es | julio / agosto 2013 | 123
Proyectos
•
Estabilizador con arranque lento
Normalmente no se puede utilizar un estabilizador 7805 estándar para la alimentación de circuitos de medición y convertidores A/D precisos, porque genera demasiadas interferencias en la salida y tampoco tiene un comportamiento de conexión
Michel Defrance (Francia)
K1 3 FL1
2
D4
DSS6NE52A222Q55B
1 R1
LL4150
R4
3 k 3
4
5
k 1
C3
R2 10u 16V
9 0 k 3
IC1
D1 ADJ
1
MIC2941 R3 C2
ON/OFF
3
2
C4
C5
100n
22u 26V
D2
C1
100n D3
2 k 2
470n
130173 - 11
D1, D2 = LL4148
Lista de materiales Resistencias (SMD 1206): R1 = 3k3 R2 = 3k09 R3 = 2k2 R4 = 1kΩ
Condensadores: C1,C4 = 100 nF (SMD 1206) C2 = 470 nF (SMD 1210) C3 = 10 �F/16 V (SMD 1210) C5 = 22 �F/10 V (SMD 2312)
Semiconductores: D1,D2 = LL4148 D3 = LED de bajo consumo, shape 1206 D4 = LL4150
R3
D3
C4
R2
R4
R1
C3
D1
IC1
5 C
D2
C2
r o t 1 k 3 e l 7 E 1 ) 0 3 C ( 1
1 C
K1
1 L F
I GO
4 D
3
2
1
IC1 = MIC2941AWU TR (TO-263)
Varios: Filtro de supresión EMI DSS6NE52A222Q55B (Murata) Placa 130173-1, ver [1]
124 | julio / agosto 2013 | www.elektor-magazine.es
definido con precisión. Si tomamos como ejemplo el preciso interfaz de medición universal publicado en esta edición, vemos que utiliza un convertidor A/D MCP3421 con una resolución de 18 bits. Para realmente poder utilizar la resolución hasta el último bit, la alimentación tiene que ser absolutamente estable y libre de interferencias. Además se tiene que encargar de que la tensión de alimentación suba lentamente durante la conexión, de modo que los diferentes componentes del circuito de medición puedan estabilizarse bien en lo que se refiere a las tensiones de configuración y temperatura. Por supuesto que este último también se puede conseguir utilizando un temporizador en software, aunque eso sólo tiene efecto sobre algunos componentes y no todos. El circuito aquí descrito cumple con los requisitos previamente mencionados y puede sustituir fácilmente a un 7805 estándar, porque la placa diseñada para esto tiene más o menos las mismas dimensiones y el conexionado es idéntico. Sin embargo, esto significa que todo está realizado en tecnología SMD debido a las reducidas dimensiones de la placa. El estabilizador utilizado en este diseño es un MIC2941 de Micrel. Es un regulador de baja caída donde se puede configurar la tensión de salida con la ayuda de un divisor de resistencias, igual que con un LM317. Por lo demás, el diseño es muy sencillo pero eficaz. La configuración de la tensión de alimentación se hace mediante (R1+R2)/R3 y genera una tensión de 5 V con los valores mencionados. El diodo D4 sirve de protección de polaridad. Además están presentes los condensadores necesarios para el desacoplamiento y supresión de interferencias. Además se ha puesto en la salida un filtro EMI, FL1. Este DSS6NE52A222Q55B es un componente de
estabilizador con arranque lento Próximo mes en Elektor
Amplifcador de Audio Compacto
Reloj Numitron
Servidor Web Xmega
Los proyectos de audio han sido más bien escasos últimamente en Elektor. El mes que viene lo remediaremos con la publicación de un rompedor amplificador de potencia basado en un circuito integrado especial de Texas Instruments. Funcionando con tensiones de alimentación de hasta ±100 V, un único par de transistores de salida proveen más de 200 vatios continuamente sobre 4 ohms, manteniendo aún una muy baja cifra de distorsión. La placa del amplificador compacto incluye también encendido retardado y circuitería de protección CC.
La revista Elektor alberga cada vez más proyectos avanzados basados en la plataforma Arduino. En este caso nos esforzamos en combinar antiguas y nuevas tecnologías de una manera elegante empleando un sistema microcontrolador compatible con Arduino aon un poco de electrónica añadida para manejar un par de tubos Numitrón para un reloj/termómetro digital. Un Numitron es un tubo electrónico clásico que se puede utilizar como como display de 7 segmentos. Cabe destacar que cada segmento consiste en un filamento. Los Numitron son generalmente asequibles, y están disponibles en varios proveedores online.
En la próxima edición presentaremos una versátil placa microcontroladora diseñada en torno a un potente microcontrolador AVR. En términos de E/S tenemos 4 LEDs, 4 pulsadores y un display (instalado por separado). Para conectarlo, puedes elegir entre RS485 y varios conectores UART/TTL, lo que permite conectar nuestro conversor BOB USB-TTL, por ejemplo. El Conector de Expansión Embebido hace a la palca muy versátil. Dispone también de un conector Micro SD, y hay espacio para un módulo TCP/IP que permite llevar a cabo aplicaciones de red y servidor web.
Los titulos de los artículos y el contenido de la revista están sujetos a cambios; por favor comprueba el contenido en la sección Revista en www.elektor.es.
tres terminales de Murata que contiene dos bobinas y un condensador a masa entremedio. El condensador C3 se ocupa de la puesta retardada de la tensión de alimentación. Se encargará primero de que sobre el nudo R2/R3 quede una tensión de casi 0 V durante la conexión de la tensión de alimentación. A continuación el condensador se carga en un tiempo de unos 20 ms a través de R3, de modo que la tensión de la alimentación suba lentamente en este tiempo (ver impresión de pantalla). Los diodos D1 y D2 se encargan de que la entrada de regulación no reciba una tensión negativa durante la desconexión y de que el condensador se descargue a través de D2. El circuito puede suministrar una corriente de salida de más de 1 A, sin embargo, sólo puede proveer unas decenas de mA a una tensión de entrada de 12 V sin refrigeración. El diseño de la placa está disponible como descarga gratuita en el sitio web de Elektor [1].
pc b s
r t o k e
l
e
.
w w w
e
r
v c
i
e
. c
o m
Enlaces web [1] www.elektor.nl/130173
(130173)
www.elektor-magazine.es | julio / agosto 2013 | 125
Magazine
•
Hexadoku Un rompecabezas con un toque electrónico Que sea verano en la tierra de la electrónica no significa que el Hexadoku se tome vacaciones. Intenta descifrar este rompecabezas en la playa, en la sala de espera de un aeropuerto – en cualquier lugar en el que creas que necesitas desconectar tu mente de la rutina diaria de los informes, la depuración y el cumplimiento de las fechas de entrega. Introduce los números o las letras de la A al F correctas en las casillas libres, encuentra la solución en las casillas grises, envíanosla y entrarás automáticamente en el sorteo de uno de los cuatro bonos para la tienda de Elektor. ¡Diviértete! El Hexadoku utiliza los números hexadecimales de 0 a F. Rellena el diagrama de 16 × 16 casillas de modo que todos los números hexadecimales de 0 a F (es decir, 0…9, A…F) aparezcan una sola vez en cada fila, en cada columna y en el recuadro de 4 × 4 (marcados con líneas en negrita). Ya hay
algunos números rellenos en el crucigrama, que determinan su situación inicial. Entre todas las soluciones correctas recibidas, sorteamos cada mes un gran premio y tres premios de consolación. Para ello, debes enviarnos los números de las casillas en gris.
¡Resuelve el Hexadoku y gana!
¡Participa!
Las soluciones correctas recibidas de los lectores de Elektor participan
Por favor, envíanos tu solución (los números de las casillas grises) por
automáticamente en el sorteo de cuatro bonos para la tienda de
correo electrónico a [email protected] – Asunto: hexadoku 07-2013
Elektor, uno de 100 € y tres de 50 €. ¡Esperamos que estos premios
(por favor, cópialo exactamente). Incluye en el correo tu nombre
animen a todos nuestros lectores a participar!
completo y tu dirección. Envíalo antes del 1 de septiembre de 2013.
Ganadores del sorteo La solución del Hexadoku de Mayo de 2013 es: 3D1AE. El Bono de 100 € para la tienda de Elektor es para: Dirk Neerijse (Bélgica). Y los 3 Bonos de 50 € son para: József Nagy (Hungría), Sigrid Scheel (Alemania), and Joe Young (Canadá). ¡Enhorabuena a todos! 9
4
E
7
F
5
6
D
C
1
3
8
0
2
B
A
B
A
0
F
1
7
E
2
4
9
5
D
C
8
3
6
5
1
2
3
0
9
C
8
6
A
E
B
4
D
F
7
C
D
6
8
3
A
4
B
2
F
0
7
E
9
5
1
6
9
4
E
2
8
7
F
1
B
C
0
3
A
D
5
8
7
3
A
9
1
0
C
5
D
4
E
2
B
6
F
D
2
F
1
4
B
5
E
3
6
9
A
8
C
7
0
0
5
B
C
6
D
A
3
7
2
8
F
1
E
4
9
7
6
9
B
5
0
F
4
8
C
2
3
D
1
A
E
1
8
5
0
A
2
3
9
D
E
7
4
6
F
C
B
E
F
A
4
7
C
D
1
9
0
B
6
5
3
2
8
2
3
C
D
8
E
B
6
F
5
A
1
7
0
9
4
A
C
1
5
B
6
8
7
E
3
F
2
9
4
0
D
F
E
8
6
C
4
2
0
A
7
D
9
B
5
1
3
3
0
D
9
E
F
1
5
B
4
6
C
A
7
8
2
4
B
7
2
D
3
9
A
0
8
1
5
F
6
E
C
Los empleados de Elektor International Media, sus empresas subsidiarias y/o editoriales asociadas no podrán participar en este concurso.
126 | julio / agosto 2013 | www.elektor-magazine.es
MISSED an issue? LOST an issue?
No problem! Circuit Cellar issue
PDFs are always available
at www.cc-webshop.com.
Save $2 off
every issue PDF now through the end of July. Use coupon code CCPDF713 Each issue of Circuit Cellar contains: • Analysis of the newest embedded technologies • Electronics engineering insight • Hardware design • Programming tips • Techniques for testing
PLUS! Want the complete issue archive? Get a CC Gold USB drive today. It’s packed with every Circuit Cellar issue published through date of
www.cc-webshop.com
purchase. Ends July31,2013
Store
•
2
3
1
4
Oferta por tiempo limitado para socios GREEN
¡Pide también el Kit de Componentes asociado! www.elektor.es/labworx
5€ DE DESCUENTO Y ENVÍO GRATUITO www.elektor.es/julio
Lectura ideal para estudiantes y ingenieros
grados, transistores, diodos y optpacopla dores. In-
técnicas necesarias para realizar montajes SMT satisfacto-
1
Practical Digital Signal Processing using Microcontrollers
cluye once aplicaciones de cálculo de, por ejemplo, resistencia serie de diodos zener, reguladores de tensión y AMV’s. ECD facilita el acceso a los datos unos
riamente. Se revelan muchos consejos y trucos prácticos para poner la tecnología de montaje superficial al alcance de todos sin arruinarse.
Este libro (en inglés) sobre procesador de señales digitales (Digital Signal Processing o DSP) refleja la creciente importancia de las señales discretas en el
de 11.100 circuitos integrados, 37.000 transistores, FET, tiristores y triacs, 25.100 diodos y 2.000 op to acopladores. Todas las aplicaciones son totalmente
282 páginas • ISBN 978-1-907920-12-7 • 34,50 €
tiempo y su uso habitual en los sistemas basados en microcontrolador. El autor presenta la teoría básica de
interactivas, permitiendo al usuario añadir, editar y completar los datos de los componentes.
Placa de expansión Linux
DSP con un mínimo tratamiento matemático y enseña al lector como diseñar e implementar algoritmos DSP empleando populares microcontroladores
ISBN 978-90-5381-298-3 • 29,50 €
Esta placa de ampliación fue desarrollada para impulsar nuestra de artículos sobre Linux Embebido y la correspondiente placa GNUblin. Tiene un display,
PIC. La aproximación del autor es práctica y el libro está respaldado con muchos ejemplos prácticos y comprobados y con programas para los
LabWorX 2
botones, un reloj de tiempo real y 16 GPIOs. Devotos de Linux, ir calentando vuestros soldadores. ¡En la
microcontroladores. El libro es la lectura ideal para estudiantes de todos los niveles y para ingenieros en
LabWorX es una colección de libros (en inglés) cada uno de los cuales trata un tema particular de la electrónica.
ejercicio que quieran diseñar y desarrollar sistemas inteligentes basados en DSP.
Este segundo volumen, Mastering Surface Mount Technology (Dominando la Tecnología de Montaje Superficial),
Art.# 120596-91 • 34,95 €
428 páginas • ISBN 978-1-907920-21-9 • 49,90 €
te introduce en un curso intensivo de técnicas, consejos y conocimientos para introducir la Tecnología de Montaje Superficial en tu flujo de trabajo. Incluso si tienes presu-
Presentación en vídeo de 140 minutos y más
Más de 75.000 componentes
3
Mastering Surface Mount Technology
4
Unidad de control Linux
“placa de expansión Linux” encontraremos todo lo necesario para controlar varios proyectos! Módulo SMD - Placa montada y comprobada + LCD1, X1, K1..K4, BZ1, BT1 para montar
DVD Feedback in Audio Amplifiers
CD Elektor’s Components Database 7
puesto también puedes poner en marcha tus diseños con avanzados componentes de pequeño tamaño. Además de explicar la metodología y equipamiento, se presta aten-
Este CD-ROM te permite acceder fácilmente a los datos sobre más de 75.000 componentes. Consta de
ción a la tecnología de los componentes y a las técnicas de soldadura. Varios proyectos te introducen paso a paso
En esta clase magistral tratamos algunos aspectos de la realimentación en los amplificadores de audio. El objetivo de esta Masterclass (en inglés), aunque no
ocho bases de datos que comprenden circuitos inte-
en el manejo de componentes de montaje superficial y las
completamente exenta de matemáticas, es propor-
2
128 | julio / agosto 2013 | www.elektor-magazine.es
5
Libros, CD-ROMs, DVDs, Kits y Módulos
5
8
7
9
6
cionar una visión y comprensión de los temas involucrados. El presentador, Jan Didden, proporciona una visión clara de los beneficios que pueden obtenerse de la realimentación y su hermana, la corrección de errores; pero también de sus limitaciones y desventajas. ¡Recomendado para diseñadores y buenos aficionados al audio! ISBN 978-907920-16-5 • 29,95 €
Placa Linux de Elektor 6
Simplificando Linux Embebido
A día de hoy se puede encontrar Linux corriendo en todo tipo de dispositivos, incluso en máquinas de café. Muchos entusiastas de la electrónica estarán ansiosos de usar Linux como base de un proyecto para micro-
Los Secretos del Sonido y Tecnología
7 Electric Guitar Este libro (en inglés) muestra, de una manera sencilla y bien fundamentada, lo que, hasta ahora, se han considerado como secretos del fabricante. El examen explora las profundidades de la guitarra, incluyendo las pastillas y el entorno eléctrico, de forma que la electrónica de la guitarra ya no es considerada como un alto secreto. Con unas pocas intervenciones hábiles, muchos instrumentos pueden hacerse más versátiles y que suenen mucho mejor – de forma asequible en la mayoría de los casos. El autor, Helmuth Lemme, es un profesional experimentado de la electrónica y músico activo. Realmente ha probado en la práctica todo lo que se describe aquí. 287 páginas • ISBN 978-1-907920-13-4 • 34,50 €
que contiene se pueden construir con componentes fácilmente localizables, dentro de la comodidad de tu hogar, sobre placas de una sola cara, o fabricados profesionalmente con los archivos que tú generes. Open Source Electronics on Linux trata sobre el actual cambio del entusiasta de la electrónica en un acreditado, experto y exigente ingeniero capaz de construir y modificar sus creaciones, ya sea solamente en Linux o en conjunción con tu actual sistema operativo. 272 páginas • ISBN 978-1-907920-19-6 • 34,50 €
Contador de alfa, beta y gamma 9
Medidor de radiación mejorado
El dispositivo puede utilizarse con distintos sensores
La puerta de entrada al código abierto
Open Source Electronics on Linux
para medir la radiación gamma y alfa. Es apto para medidas durante largo tiempo y el análisis de probetas
controlador, pero la aparente complejidad del sistema operativo y el alto precio de las placas de desarrollo han sido hasta ahora un obstáculo. Elektor resuelve
Si alguna vez has querido aprovechar el creciente
de baja actividad. En comparación con un contador Geiger, un fotodiodo ofrece valores de cero más bajos, y la radiación de pequeñas muestras se aprecia con
ambos problemas con un curso para principiantes acompañado por una tarjeta compacta y barata. Esta tarjeta incluye todo lo necesario en un proyecto embe
campo del software open source para la electrónica y las aplicaciones de uso diario, este libro (en inglés) es para ti. Utilizando el sistema operativo Linux, el autor, Warwick
mayor facilidad. Podemos testear probetas de forma más precisa que con un contador Geiger. Mediante un software de PC opcional puede obtenerse el espectro
bido actual: un interfaz USB, una conexión para tarjetas SD y varias opciones más de expansión!
A. Smith, te guía a través del mundo del hardware y software abierto, enseñándote a utilizar la herramientas
energético y sacar conclusiones del objeto a examen.
Placa montada y comprobada
EDA y el software que están disponibles en línea para descargarlos gratuitamente. Los proyectos de hardware
controlador programado
Art.# 120026-91 • 64,95 €
8
Kit de componentes incluyendo display y Art.# 110538-71 • 39,95 €
www.elektor-magazine.es | julio / agosto 2013 | 129
Store
•
11
12
12
10
13
Programación paso a paso
10 Android Apps Este libro (en inglés) es una introducción a la programación de apps para dispositivos Android. El funcionamiento del sistema Android se explica paso a paso, con el objetivo de mostrar como se pueden programar aplicaciones personales. Se presenta una amplia variedad de aplicaciones basadas en buen número de ejemplos prácticos, desde programas de matemática simple, lectura de sensores y datos GPS, hasta programación avanzada para aplicaciones de Internet. Además de escribir aplicaciones en el lenguaje de programación Java, este libro explica también cómo se pueden programar aplicaciones empleando Javascript o scripts PHP. Cuando se trata de personalizar tu smartphone no deberías sentirte limitado por las aplicaciones que haya en la plataforma, ya que crear tus propias apps y programar dispositivos Android es más fácil de lo que piensas. 244 páginas • ISBN 978-1-907920-15-8 • 39,95 €
14
se puede configurar tu propio circuito digital en un
Curso Elemental
Elementary Course BASCOM-AVR
integrado, como si fuese de verdad tu propio chip. En esta serie mostramos cómo cualquier electrónico puede iniciarse fácilmente en este tipo de lógica
Los microcontroladores AVR son populares, fáciles de
programada, con la ayuda de una placa FPGA de pruebas diseñada en el laboratorio de Elektor. ¿Miedo a las FPGA?
usar y extremadamente vesátiles. En la revista Elektor ya hemos publicado muchas aplicaciones interesantes utilizando microcontroladores ATmega o ATtiny. La ma-
Que va, ¡ya no con la ayuda de la placa FPGA de Elektor!
yoría de estos proyectos desempeñan una función particular. En este libro (en inglés) nos centramos más en
Módulo montada y comprobada
los aspectos relacionados con el software. Con muchos ejemplos prácticos mostramos cómo, utilizando BASCOM, puedes poner en marcha rápidamente tus ideas
Art.# 120099-91 • 59,95 €
13
de diseño y ejecutarlas en silicio.
Incluye gratuitamente el compilador mikroC en CD-ROM 12
Controller Area Network Projects
El objetivo de este libro (en inglés) es enseñarte los principios básicos de las redes CAN además del desarrollo sistemas basados en microcontrolador utilizando el bus CAN. Aprenderás cómo diseñar nodos de bus CAN basados en microcontroladores, cómo con
224 páginas • ISBN 978-1-907920-11-0 • 39,95 €
Todos los artículos del año 2012 14
DVD Elektor 2012
El DVD-ROM “volumen anual” se encuentra entre los productos más populares de Elektor. Este DVD contiene todos los artículos editoriales publicados en el Volumen 2012 de las publicaciones en español, inglés,
struir un bus CAN, cómo desar rollar programas de alto nivel y a intercambiar datos en tiempo real sobre el bus. Aprenderás también cómo construir hardware
holandés, francés y alemán de la revista Elektor. Con el programa Adobe Reader suministrado, los artículos se presentan con el mismo diseño con el que
Uno de los componentes más polifacéticos y complejos de la electrónica actual es sin duda la
con microcontroladores y a conec tarlo con LEDs, LCDs y converti-dores A/D.
FPGA, un laberinto de puertos y circuitos con la que
260 páginas • ISBN 978-1-907920-04-2 • 34,50 €
originalmente los encontramos en la revista. Los DV D/ CD-ROMs cuentan con un potente motor de búsqueda y dan la posibilidad de editar los diseños de las PCBs
Diseña tu propio integrado 11
Placa FPGA de Elektor
130 | julio / agosto 2013 | www.elektor-magazine.es
Libros, CD-ROMs, DVDs, Kits y Módulos
15
17
18
16
con un programa gráfico u obtener una copia impresa a resolución de impresora. ISBN 978-90-5381-273-0 • 27,50 €
soñar y de disfrutar. Si como a nosotros nos ocurre, los prodigios de las técnicas modernas ponen a nuestro alcance el poder maravillarnos, venid a ‘tocar’ las
80 cuentos de la electrónica del pasado
partes más pequeñas del voltio.
entregas de Retrónica publicadas entre 2004 y 2012. Las historias abarcan equipos de prueba clásicos, ordenadores prehistóricos, componentes ya
Módulo Medidor LCR + módulo LCD
120 revistas de Elektor en español 15
DVD Elektor desde 1998 a 2007
Art.# 110758-93 • 254,00 €
10 interesantes lecciones
cienden a un total de 120 revistas publicadas durante esos 10 años, están en formato PDF y orde-nadas cro-
En este libro (en inglés) aprenderemos a programar un microcontrolador utilizando JAL, un lenguaje para micros
nológicamente por fecha de publicación (año/mes). El DVD contiene más de 2100 artículos imprimibles con alta calidad. Puedes abrir un documento PDF seleccio-
PIC gratuito, pero increíblemente potente, que goza de gran popularidad en el mundo del modelismo. Empezaremos literalmente desde un boceto, hasta ir afianzan-
nando el año de publicación y luego la edición deseada. ISBN 978-90-5381-241-9 • 59,00 €
do poco a poco nuestros conocimientos. No se necesita formación previa: cualquiera puede iniciarse con este
El lujo de la precisión al alcance de todos
libro. Una vez superadas todas las lecciones, es decir, tras haber completado todos los ejercicios, nos sentiremos seguros para codificar nuestros propios programas
Medidor LCR 0,05 %
La remarcable precisión de este aparato y su asombrosa comodidad de uso son el resultado de un cuidadoso estudio. Funciona tan bien, detr ás de su fachada depurada, que casi olvidaremos las sutilezas de las técnicas de medida usadas en el mismo. Para nuestros lectores apasionados de las medidas, es la ocasión de
Retronics
Este libro (en inglés) es una recopilación de 80
olvidados, los proyecto de Elektor que alcanzaron un gran éxito, todo ello con el propósito de hacer que los
Este DVD-ROM contiene la colección completa de la revista de electrónica Elek tor editada en España entre los años 1998-2007. Las ediciones de Elektor, que as-
16
18
17
PIC Microcontroller Programming
para microcontroladores PIC, así como para entender programas escritos por otras personas. El software que acompaña a este libro puede descargarse gratuitamente, incluyendo el lenguaje de programación JAL. 284 páginas • ISBN 978-907920-17-2 • 34,50 €
ingenieros sonrían, se sienten, se opongan, babeen o experimenten el tufillo de la nostalgia. Aunque muy diferentes en la material, todos los cuentos del libro se relatan con entusiasmo personal, porque Retrónica trata del sentimiento en la ingeniería electrónica, construcción y reparación, ya sea una reminiscencia de un osciloscopio Tektronix de 1960 con señora de la limpieza como característica, o una caja PanSanitor de 1928 de dudoso uso médico. 193 páginas • ISBN 978-1-907920-18-9 • 29,95 €
Más Información en la página web de Elektor: www.elektor.es/store Elektor International Media Spain, S.L. Apartado de Correos 62011 28042 Madrid – España Tel.: +34 91 101 93 95 Fax: +34 91 101 93 96 Email: [email protected]
www.elektor-magazine.es | julio / agosto 2013 | 131