TEMA 7: Arduino 1.7.1. ¿Qué es un Microcontrolador? Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, c omputadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Un microcontrolador es un circuito integrado programable que tiene todos los componentes necesarios para controlar el funcionamiento de una tarea determinada. Dispone de una memoria donde se almacena el programa pro grama que gobierna todo su funcionamiento. Su uso reduce notablemente el tamaño y números de componentes, lo cual reduce también el número de fallas, volumen y peso de los equipos. En su interior podemos encontrar los siguientes componentes: Microprocesador o CPU (Unidad Central de Procesamiento), memorias ROM (de programa) y RAM (de datos), líneas de entrada y salida (puertos) para comunicarse con el exterior y un circuito oscilador que sincroniza el funcionamiento de todo el sistema.
1.7.1.1. Ventajas de utilizar Microcontroladores.
Reducción del tamaño en el circuito de aplicación.
Aumento de fiabilidad ya que se reduce el riesgo de averías.
Mayor flexibilidad porque sólo se necesita cambiar el programa y no los componentes, es decir, el cambio es a nivel de software y no de hardware. Disminuye el consumo de energía notablemente.
1.7.1.2. Diferencias entre un Microcontrolador y Microprocesador.
Microprocesador (uP): es un chip que contiene un CPU que se encarga de controlar todo un sistema. Se dice que es un sistema “ABIERTO” porque se puede acoplar módulos necesarios según la aplicación, para ellos saca al exterior las líneas de buses de datos, direcciones y control lo que permite su conexión con memorias y módulos de entradas y salidas.
Microcontrolador (uC):es un sistema “CERRADO” porque todos los módulos necesarios se encuentran en su interior y se destina sólo a gobernar una tarea. Poseen los componentes esenciales como: CPU, memorias, oscilador, líneas de E/S, etc. En la práctica existen diversos modelos para diferentes aplicaciones desde los más sencillos hasta los más potentes que se ajuste a la aplicación, pueden tener mayor memoria, mayor número de E/S, velocidad, etc.
1.7.1.3. Arquitectura Interna de los Microcontroladores
Existen 2 arquitecturas conocidas:
La arquitectura Von Neumann (clásica): posee una sola memoria principal donde se almacenan el programa y datos. Se puede acceder mediante un único sistema de buses para datos, instrucciones y control. Se puede acceder acceder a las memorias, una a la vez.
1.7.1.2. Diferencias entre un Microcontrolador y Microprocesador.
Microprocesador (uP): es un chip que contiene un CPU que se encarga de controlar todo un sistema. Se dice que es un sistema “ABIERTO” porque se puede acoplar módulos necesarios según la aplicación, para ellos saca al exterior las líneas de buses de datos, direcciones y control lo que permite su conexión con memorias y módulos de entradas y salidas.
Microcontrolador (uC):es un sistema “CERRADO” porque todos los módulos necesarios se encuentran en su interior y se destina sólo a gobernar una tarea. Poseen los componentes esenciales como: CPU, memorias, oscilador, líneas de E/S, etc. En la práctica existen diversos modelos para diferentes aplicaciones desde los más sencillos hasta los más potentes que se ajuste a la aplicación, pueden tener mayor memoria, mayor número de E/S, velocidad, etc.
1.7.1.3. Arquitectura Interna de los Microcontroladores
Existen 2 arquitecturas conocidas:
La arquitectura Von Neumann (clásica): posee una sola memoria principal donde se almacenan el programa y datos. Se puede acceder mediante un único sistema de buses para datos, instrucciones y control. Se puede acceder acceder a las memorias, una a la vez.
Arquitectura Harvard: Los microcontroladores PIC utilizan la Arquitectura mencionada que dispone de 2 memorias separadas, una para el programa y otra para datos. Además, ambas poseen sus sistemas de buses o conexiones por separado y se puede acceder simultáneamente a ambas memorias, lo cual nos permite trabajar a mayor velocidad (paralelismo).
1.7.1.4. Memorias internas que poseen los Microcontroladores
Memoria de Programa (ROM): Contiene el programa con las la s instrucciones que gobiernan la aplicación. Es permanente, es decir, el programa se mantiene aunque se haya quitado la energía al circuito (no volátil). La información se graba mediante un circuito “grabador o programador” que va conectado a la PC mediante un software que controla la grabación.
Existen 2 tipos: La EEPROM (Memoria de solo lectura programable y borrable eléctricamente) que puede ser programada unas 1000 veces y la FLASH que tiene menor consumo de energía, puede ser grabada mucho más que la anterior (10 000 veces) y tiene mayor capacidad de almacenamiento.
Memoria de Datos (RAM): Contiene las variables y datos que se manejan en el programa, los cuales varían continuamente. Es de lectura y de escritura y es conocía como memoria “volátil” debido a que los datos se borran o desaparecen al quitar la energía al circuito.
Existen 2 tipos de memoria de datos:
a) RAM (Memoria de Acceso Aleatorio): Aquí podemos almacenar variables y datos necesarios para el programa principal. b) EEPROM (Memoria no volátil): posee menor capacidad para almacenar datos pero es muy útil para almacenar datos que el usuario desde conservar cuando se quite la energía, por ejemplo la clave o contraseña de una alarma. Para acceder a esta información se lo hace mediante programación y el fabricante nos menciona que la información puede permanecer grabado por más de 40 años.
1.7.1.5. Líneas de Entrada y Salida de los Microcontroladores
Permiten comunicar al Microcontrolador con el mundo exterior, es decir, con los periféricos externos (switchs, pulsadores, sensores, leds, relés, lámparas, etc.) Son líneas digitales que trabajan entre 0 y 5V y se pueden configurar, cada una, como entradas o salidas de manera independiente.
1.7.1.6. Oscilador y Reloj Principal de los Microcontroladores:
Es un circuito oscilador que genera una onda cuadrada de alta frecuencia para sincronizar todas las operaciones del sistema. Es importante para el buen funcionamiento del sistema. Sólo necesita de un cristal de cuarzo y 2 condensadores (27pF) para definir la frecuencia de trabajo, que generalmente está dada en MHz (MegaHertz), ya que todos los componentes del oscilador vienen integrados en el microcontrolador.
1.7.1.7. Reset en los Microcontroladores:
Los microcontroladores poseen un pin de RESET que permite reiniciar su funcionamiento cuando sea necesario. Se denomina pin de MCLR (Master Clear) y se produce cuando se aplica 0V en dicho pin. Para tener un control sobre el Reset del sistema, se debe conectar un pulsador con 2 resistores como se ve en la figura para conseguir un reset manual. Mientras esté presionado el pulsador (0V) se mantendrá el reset y no comenzará a funcionar el programa.
1.7.1.8. Recursos especiales en los Microcontroladores Cada fabricante oferta numerosas versiones de una arquitectura básica de un microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software.
Los principales recursos específicos que incorporan los microcontroladores son:
Temporizadores o “Timers”.
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. 16 Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.
Perro guardián o “Watchdog”.
Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema. Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescará al Perro guardián y, al completar su temporización, “ladrará y ladrará” hasta provocar el reset.
Protección ante fallo de alimentación o “Brownout”.
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de al imentación sea
inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.
Estado de reposo o de bajo consumo. Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho esta do se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando sumido en un profundo “sueño” el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.
Conversor A/D. Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patitas del circuito integrado.
Conversor D/A. Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patitas de la cápsula. Existen muchos efectores que trabajan con señales analógicas.
Comparador analógico. Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.
Modulador de anchura de impulsos o PWM. Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patitas del encapsulado.
Puertas de Entradas y Salidas Digitales. Todos los microcontroladores destinan algunas de sus patitas a soportar líneas de entradas y salidas digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertas.
Las líneas digitales de las Puertas pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.
Puertas de comunicación. Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: · UART, adaptador de comunicación serie asíncrona. a) USART, adaptador de comunicación serie síncrona y asíncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. b) USB (Universal Serial Bus), que es un moderno bus serie para los PC. c) Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. d) CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.
1.7.2. ¿Qué es Arduino? Arduino es una plataforma de prototipos electrónica de código abierto (open - source) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos.
Arduino puede interactuar con el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el Arduino Programming Language (basado en Wiring) y el Arduino Development Environment (basado en Processing). Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con software en ejecución en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).
Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades. Arduino recibió una mención honorífica en la sección Digital Communities del Ars Electronica Prix en 2006.
1.7.2.1. Ventajas de utilizar Arduino. Hay muchos otros microcontroladores y plataformas microcontroladoras disponibles para computación física. Parallax Basic Stamp, Netmedia’s BX -24, Phidgets, MIT’s Handyboard, y muchas otras ofertas de funcionalidad similar. Todas estas herramientas toman los desordenados detalles de la programación de microcontrolador y la encierran en un paquete fácil de usar. Arduino también simplifica el proceso de trabajo con microcontroladores, pero ofrece algunas ventajas para profesores, estudiantes y aaficionados interesados sobre otros sistemas:
Barato: Las placas Arduino son relativamente baratas comparadas con otras plataformas microcontroladoras. La versión menos cara del módulo Arduino puede ser ensamblada a mano, e incluso los módulos de Arduino pre ensamblados cuestan menos de 50$. Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La mayoría de los sistemas microcontroladores están limitados a Windows. Entorno de programación simple y clara: El entorno de programación de Arduino es fácil de usar para principiantes, pero suficientemente flexible para que usuarios avanzados puedan aprovecharlo también. Para profesores, está convenientemente basado en el entorno de programación Processing, de manera que estudiantes aprendiendo a programar en ese entorno estarán familiarizados con el aspecto y la imagen de Arduino.
Código abierto y software extensible: El software Arduino está publicado como herramientas de código abierto, disponible para extensión por programadores experimentados. El lenguaje puede ser expandido mediante librerías C++, y la gente que quiera entender los detalles técnicos pueden hacer el salto desde Arduino a la programación en lenguaje AVR C en el cual está basado. De forma similar, puedes añadir código AVR-C directamente en tus programas Arduino si quieres. Código abierto y hardware extensible: El Arduino está basado en microcontroladores ATMEGA8 y ATMEGA168 de Atmel. Los planos para los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores experimentados de circuitos pueden hacer su propia versión del módulo, extendiéndolo y mejorándolo. Incluso usuarios relativamente inexpertos pueden construir la versión de la placa del módulo para entender cómo funciona y ahorrar dinero.
1.7.3. Características de Arduino.
Arduino es una placa con un microcontrolador de la marca Atmel y con toda la circuitería de soporte, que incluye, reguladores de tensión, un puerto USB (En los últimos modelos, aunque el original utilizaba un puerto serie) conectado a un módulo adaptador USB-Serie que permite programar el microcontrolador desde cualquier PC de manera cómoda y también hacer pruebas de comunicación con el propio chip. Un ARDUINO dispone de 14 pines que pueden configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V. También dispone de entradas y salidas analógicas. Mediante las entradas analógicas podemos obtener datos de sensores en forma de variaciones continuas de un voltaje. Las salidas analógicas suelen utilizarse para enviar señales de control en forma de señales PWM. Arduino UNO es la última versión de la placa, existen dos variantes, la Arduino UNO convencional y la Arduino UNO SMD. La única diferencia entre ambas es el tipo de microcontrolador que montan.
1.7.3.1. Pines de Entradas y salidas: Cada uno de los 14 pines digitales se puede usar como entrada o como salida. Funcionan a 5V, cada pin puede suministrar hasta 40 mA. La intensidad máxima de entrada también es de 40 mA. Cada uno de los pines digitales dispone de una resistencia de pull- up interna de entre 20KΩ y 50 KΩ que está desconectada, salvo que nosotros indiquemos lo contrario. Arduino también
dispone de 6 pines de entrada analógicos que trasladan las señales a un conversor analógico/digital de 10 bits.
1.7.3.2. Pines especiales:
RX y TX: Se usan para transmisiones serie de señales TTL. Interrupciones externas: Los pines 2 y 3 están configurados para generar una interrupción en el Atmega. Las interrupciones pueden dispararse cuando se encuentra un valor bajo en estas entradas y con flancos de subida o bajada de la entrada. PWM: Arduino dispone de 6 salidas destinadas a la generación de señales PWM de hasta 8 bits. SPI: Los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo comunicaciones SPI, que permiten trasladar información full dúplex en un entorno Maestro/Esclavo. I2C: Permite establecer comunicaciones a través de un bus I 2C. El bus I 2C es un producto de Phillips para interconexión de sistemas embebidos. Actualmente se puede encontrar una gran diversidad de dispositivos que utilizan esta interfaz, desde pantallas LCD, memorias EEPROM, sensores.
1.7.3.3. Conexiones de Alimentación de Arduino. Puede alimentarse directamente a través del propio cable USB o mediante una fuente de alimentación externa, como puede ser un pequeño transformador o, por ejemplo una pila de 9V. Los límites están entre los 6 y los 12 V. Como única restricción hay que saber que si la placa se alimenta con menos de 7V, la salida del regulador de tensión a 5V puede dar menos que este voltaje y si sobrepasamos los 12V, probablemente dañaremos la placa. La alimentación puede conectarse mediante un conector de 2,1mm con el positivo en el centro o directamente a los
pines Vin y GND marcados sobre la placa. Hay que tener en cuenta que podemos medir el voltaje presente en el jack directamente desde Vin. En el caso de que el Arduino esté siendo alimentado mediante el cable USB, ese voltaje no podrá monitorizarse desde aquí.
1.7.4. Programación de Arduino.
La programación de Arduino es la programación de un microcontrolador. Esto era algo más de los ingenieros electrónicos, pero Arduino lo ha extendido a todo el público. Arduino ha socializado la tecnología. Programar Arduino consiste en traducir a líneas de código las tareas automatizadas que queremos hacer leyendo de los sensores y en función de las condicio nes del entorno programar la interacción con el mundo exterior mediante unos actuadores. Arduino proporciona un entorno de programación sencillo y potente para programar, pero además incluye las herramientas necesarias para compilar el programa y “quemar” el programa
ya compilado en la memoria flash del microcontrolador. Además el IDE nos ofrece un sistema de gestión de librerías y placas muy práctico. Como IDE es un software sencillo que carece de funciones avanzadas típicas de otros IDEs, pero suficiente para programar.
1.7.4.1. Estructura básica de un Programa Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino. Para que funcione el sketch, el nombre del fichero debe estar en un directorio con el mismo nombre que el sketch. No es necesario que un sketch esté en un único fichero, pero si es imprescindible que todos los ficheros estén dentro del mismo directorio que el fichero principal.
1 2 3
void setup() { // put your setup code here, to run once: }
4 5 6 7
void loop() { // put your main code here, to run repeatedly: }
La estructura básica de un sketch de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes son obligatorios y encierran bloques que contienen declaraciones, estamentos o instrucciones.
setup() – http://arduino.cc/en/Reference/Setup loop() – http://arduino.cc/en/Reference/Loop
Adicionalmente se puede incluir una introducción con los comentarios que describen el programa y la declaración de las variables y llamadas a librerías.
El bloque de programa denominado setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecuta cíclicamente (de ahí el término loop – bucle). Ambas funciones son necesarias para que el programa trabaje. La estructura del sketch está definida en el siguiente enlace: http://arduino.cc/en/Tutorial/Sketch
Se puede resumir un sketch de Arduino en los siguientes bloques y secuencia dadas en el diagrama de flujo:
1.7.4.2. Instalación de Software Arduino.
Luego, clic derecho en el archivo ARDUINO y seleccionar EJECUTAR COMO ADMINISTRADOR (Si está usando Windows 7 a más):
Clic en I AGREE (Estoy de acuerdo) para aceptar la licencia del programa:
Active todas las casillas, sobre todo la casilla INSTALL USB DRIVER para que se pueda comunicar la tarjeta ARDUINO y la PC. Luego, clic en NEXT:
En la siguiente ventana, nos indicará en que ruta de la PC se instalará el software ARDUINO, se sugiere dejar por defecto. Para iniciar instalación, clic en INSTALL:
Espere algunos segundos hasta que complete la instalación, durante este proceso no presione ninguna tecla:
Si le aparece la siguiente ventana, activar la casilla SIEMPRE CONFIAR EN EL SOFTWARE ARDUINO y clic en INSTALAR:
Al finalizar la instalación, aparecerá la siguiente ventana. Luego, clic en CLOSE y verifique que en Escritorio de la PC está el acceso directo del software ARDUINO:
1.7.5. Lectura de Sensores digitales y analógicos con Arduino. La Tarjeta Arduino no sólo puede enviar señales sino que también puede recibirlas con dos propósitos principales que son leer datos de sensores y recibir mensajes de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas se clasifican en digitales y analógicas.
1.7.5.1. Entradas digitales Una entrada es un terminal que permite que se le aplique una señal de voltaje, lo cual le permite al microcontrolador interpretar que algo está sucediendo y que se debe comportar de una forma determinada. Veamos un ejemplo:
En la imagen podemos observar un sencillo circuito con un interruptor y una resistencia. El TP es un Test Point (punto de prueba) que nos permite medir el voltaje en el punto donde ha sido colocado. Cuando el interruptor está abierto, el voltaje registrado es 0 voltios. Cuando se presiona el botón se cierra el interruptor y el voltaje alcanza 5 voltios. Si donde colocamos el Test Point sacamos una conexión hacia una entrada del microcontrolador, al presionar el botón éste registrará los 5 voltios y podrá interpretar que el botón ha sido presionado. Entonces, por medio de la programación adecuada, se ejecutarán las acciones que el programador haya establecido.
En la Tarjeta Arduino, las entradas digitales son las mismas que las salidas digitales, es decir, los pines que van del 1 al 13 pueden configurare también como entradas de acuerdo a la aplicación. Se diferencian de las analógicas porque éstas son capaces de “entender” sólo dos niveles de
señal, LOW o valores cercanos a 0 V y HIGH o valores cercanos a 5 V. Puede parecer una desventaja pero en realidad puede ser todo lo contrario. Y no sólo porque a veces únicamente necesitemos saber dos estados (interruptor, pulsador, sensor de presencia, final de carrera) sino porque así es capaz de leer señales de pulsos digitales. Esto significa que puede comunicarse.
1.7.5.2. Entradas analógicas
Las señales analógicas y digitales son dos mundos completamente distintos, pero que a su vez están estrechamente relacionados. Pensemos, por ejemplo, en un termómetro. Si tenemos termómetros, uno analógico (de aquellos con mercurio en su interior) y uno digital, ambos cumplen con la misma tarea de medir la temperatura. Sin embargo, la metodología que utilizan es completamente distinta, así como la forma como presentan los resultados de las mediciones.
El termómetro analógico nos muestra la temperatura en base al nivel que registra el mercurio dentro de un tubo de vidrio, donde la temperatura dilata o comprime el mercurio, lo que le permite aumentar o disminuir su volumen. A mayor volumen, mayor temperatura. Se ha colocado convenientemente una escala junto al tubo donde se encuentra el mercurio, lo cual permite que el usuario pueda cuantificar la temperatura en grados. El termómetro digital también nos da la temperatura en Celsius, pero utilizando un procedimiento completamente distinto al del termómetro analógico. Los termómetros digitales utilizan semiconductores, cuyas propiedades varían en función de la temperatura. A través de un proceso llamado muestreo se logra determinar la temperatura, la cual es proyectada al usuario a través de una pantalla.
Las entradas analógicas son las correspondientes a los pines de A0 a A5. Se caracterizan por leer valores de tensión de 0 a 5 Voltios con una resolución de 1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser capaz de detectar variaciones en el nivel de la señal de entrada de casi 5 mV.
El Arduino UNO posee 6 entradas analógicas (A0 - A5), mientras que otros modelos como el NANO (8 entradas) o el MEGA (16 entradas) poseen puertos adicionales, aunque todos poseen la misma limitante: no pueden leer voltajes superiores a 5 voltios.
Para leer los niveles de voltaje, los microcontroladores utilizan un circuito integrado llamado Convertidor Analógico-Digital, el cual utiliza un proceso llamado muestreo.
Los convertidores Analógico-Digital poseen una característica llamada resolución. Los modelos de Arduino poseen una resolución de 10 bits, lo cual significa que, dependiendo de la referencia (normalmente de 0 a 5 voltios), el circuito “descompone” el voltaje en la entrada en 1024 partes iguales (10 bits, 2^10 es 1024).
Si tuviésemos un convertidor de mayor resolución, digamos 12 bits, entonces el voltaje se dividiría en 4096 partes iguales (2 elevado a la 12 es 4096). Entonces a la salida del convertidor, el voltaje leído representará alguno de los valores binario entre 0 y 4095. Cuando se tienen 0 voltios, el convertidor registrará 0. Si se tienen 5 voltios, el convertidor registrará 1023 si la resolución es de 10 bits y 4095 si la resolución es de 12 bits.
Este número que nos devuelve el convertidor es proporcional al voltaje leído en la entrada del convertidor. Todos y cada uno de los pines analógicos del Arduino pueden leer diferentes niveles de voltaje, siempre y cuando no superen los 5 voltios. Al ser 10 bits la resolución máxima del Arduino, los niveles mínimos de voltaje que podrá registrar es de 5/1024 que es igual
a 0,0048828125 voltios. Es decir, el Arduino no podrá registrar variaciones de voltaje inferiores a 0,0048828125 voltios.
Para comprender esto, veamos un ejemplo:
Un circuito sencillo, con una resistencia fija y una resistencia variable. Al modificar el valor de la resistencia variable se modifica el voltaje donde colocamos el Test Point. Si conectamos el punto donde está el Test Point a 5 de las entradas analógicas del Arduino y le pedimos que nos imprima los valores, obtendremos el siguiente resultado:
A1: 512 A2: 586 A3: 682 A4: 819 A5: 1023
¿De dónde salieron estos valores? Recordemos que el microcontrolador divide el voltaje entre 0 y 5 voltios en 1024 partes. Cuando vemos el número 512, esto significa que el Arduino está registrando en su entrada 512 partes de las 1024 en que dividió el voltaje de 5 voltios. Podemos transformar estas lecturas en voltajes si los multiplicamos los valores por la fracción 5/ 1024. Así, obtenemos los valores 2.5, 2.86, 3.33, 4 y 5, los cuales son los voltajes en los divisores de tensión. Así, el valor de 1023 corresponde a 5 voltios debido a que en la entrada el convertidor está registrando las 1023 partes en las cuales se ha dividido el voltaje, es decir, la escala completa.
1.7.6. Relé Es un dispositivo eléctrico que funciona como un interruptor, que sirve para abrir y cerrar el paso de la corriente eléctrica, pero accionado eléctricamente. El relé permite abrir o cerrar contactos mediante un electroimán, por eso también se llaman relés electromagnéticos o relevador.
1.7.6.1. Funcionamiento del Relé Vemos que el relé de la figura tiene 2 contactos, una abierto (NC) y otro cerrado (NO). Cuando energizamos la bobina, esta genera un campo magnético creando un electroimán que atrae los contactos haciéndolos cambiar de posición, el que estaba abierto se cierra y el que estaba normalmente cerrado se abre. El contacto que se mueve es el C y es el que hace que cambien de posición los otros dos contactos.
Los relés Pueden tener 1, 2, 3 o casi los que queramos contactos de salida y estos puede ser normalmente abiertos o normalmente cerrados (estado normal = estado sin corriente).
Los relés eléctricos vienen en muchas formas, tamaños y potencias adecuadas para todo tipo de aplicaciones. Los relés también pueden ser relés de potencia, más grandes y utilizados para la tensión mayores o aplicaciones de conmutación de alta corriente. En este caso se llaman Contactores, en lugar de relés.
1.7.6.2. Tipos de Relé El relé que hemos visto hasta ahora funciona como un interruptor. Está formado por un contacto móvil o polo y un contacto fijo. Pero también hay relés que funcionan como un conmutador, porque disponen de un polo (contacto móvil) y dos contactos fijos (Fig. 5).
Cuando no pasa corriente por la bobina el contacto móvil está tocando a uno de los contactos fijos (en la Fig. 5 el de la izquierda). En el momento que pasa corriente por la bobina, el núcleo atrae al inducido, el cual empuja al contacto móvil hasta que toca al otro contacto fijo (el de la derecha). Por tanto, funciona como un conmutador. En la Fig. 6 puede verse el símbolo de este tipo de relé. También existen relés con más de un polo (contacto móvil) siendo muy interesantes para los proyectos de Tecnología los relés conmutadores de dos polos (Fig. 7) y los de cuatro polos (fig. 8).
1.7.6.3. Control de un Motor DC mediante Relé. En muchos proyectos es necesario controlar el giro, en ambos sentidos, de un pequeño motor eléctrico de corriente continua. Dicho control puede hacerse con una llave de cruce o con un conmutador doble, pero también podemos hacerlo con un relé, como veremos a continuación. Observa la Fig. 9. La bobina del relé se ha conectado a la pila a través de un pulsador NA (normalmente abierto) que designamos con la letra P. El motor se ha conectado a los contactos
fijos del relé del mismo modo que si se tratase de un conmutador doble. Los dos polos del relé se conectan a los bornes de la pila.
En esta situación al motor le llega la corriente por el borne derecho y le sale por el izquierdo, girando en sentido antihorario (Fig. 9). Al accionar el pulsador P (Fig. 10) suministramos corriente a la bobina del relé, haciendo ésta que los contactos móviles cambien de posición, con lo cual la corriente le llega al motor por su borne izquierdo y le sale por el derecho, girando en sentido horario.
El tipo de control descrito tiene dos inconvenientes: a) El motor no se detiene. b) Hay que mantener accionado el pulsador para que el motor gire en uno de los dos sentidos.
El problema de parar el motor automáticamente se soluciona mediante interruptores finales de carrera, accionados por el elemento móvil (por ejemplo, una puerta corredera). Dichos interruptores deben colocarse en los cables que conectan el motor con el relé, de manera que corten la corriente del motor en el momento adecuado.
Para no tener que estar accionando de forma continua el pulsador hay dos posibilidades:
a) Utilizar un interruptor en lugar de un pulsador. Esta solución nos obliga a controlar el motor desde un solo lugar (donde esté el interruptor). b) Modificar el circuito que conecta la bobina con la pila, mediante lo que se llama circuito de enganche del relé. Como veremos, esta solución nos permite controlar el motor desde dos puntos diferentes, lo cual es necesario en algunos casos, como por ejemplo si queremos poder abrir y cerrar una puerta de garaje tanto desde dentro como desde fuera del mismo.
1.7.7. Triac El TRIAC es un dispositivo electrónico semiconductor de tres terminales para controlar la corriente. Su nombre viene del término TRIode for Alternating Current = Triodo Para Corriente Alterna. Podríamos decir que un triac se utiliza para controlar una carga de CA (corriente alterna), semejante a como un transistor se puede utilizar para controlar una carga de CC (corriente continua). En definitiva es un interruptor electrónico pero para corriente alterna. Los triac se utilizan en muchas ocasiones como alternativas al relé. Su funcionamiento básico es cerrar un contacto entre dos terminales (ánodo 1 y 2) para dejar pasar la corriente (corriente de salida) cuando se le aplica una pequeña corriente a otro terminal llamado "puerta" o Gate (corriente de activación).
Se seguirá permitiendo que la corriente fluya hasta que la corriente de salida disminuya por debajo de un valor determinado, llamada corriente umbral, o se corte la corriente totalmente de alguna forma, por ejemplo con un interruptor o pulsador como luego veremos.
En el ánodo 1 y 2 se coloca el elemento de salida que queremos controlar con el triac (una lámpara, motor, etc.). Fíjate en la siguiente imagen donde usamos un triac como interruptor para encender una lámpara o bombilla. Es un circuito muy básico, pero que nos sirve para entender su funcionamiento. Luego veremos cómo lo mejoramos.
El Triac es un desarrollo más avanzado del famoso SCR o tiristor, pero a diferencia del tiristor, que sólo es capaz de conducir en una dirección (desde el ánodo al cátodo), el TRIAC es un dispositivo bidireccional, es por eso que te recomendamos ver el enlace anterior del tiristor, si no lo conoces antes de seguir o como mínimo, que sepas el comportamiento de un diodo.
1.7.7.1. Símbolo del Triac y Circuito Equivalente
El símbolo es la unión de dos tiristores o SCR en anti paralelo como se muestra en las siguientes figuras:
El triac tiene 3 patillas, Puerta, A1, A2 (Ánodo 1 y Ánodo 2, en este caso no se llaman ánodo y cátodo). Es muy común llamar a los ánodos Terminal o Main Terminal (terminal principal) y a la
Puerta Gate. Puedes encontrar el símbolo donde la puerta está hacia el otro lado, pero es exactamente lo mismo. 1.7.7.2. Funcionamiento del Triac.
El disparo del Triac se realiza aplicando una corriente a la patilla puerta. Un pulso (corriente) en la puerta y el triac funcionará como un conductor. Conducirá corriente en una u otra dirección.
Fíjate cuando tenemos polarizado el MT1 al positivo y el MT2 al negativo (representado en la imagen de color rojo). Hemos llamado a los dos tiristores SCR1 y SCR2. Po demos pensar también que son dos diodos aunque sean dos tiristores. Si pensamos como si tuviéramos dos diodos (scr1 y scr2), resulta que el scr2 está polarizado directamente y conduce, el scr1 está polarizado inversamente y no conduce o no permite el paso de la corriente a través de él. En este caso el sentido de la corriente de salida será hacia arriba, representada de color rojo. Si ahora cambiamos la polaridad del triac, es decir ponemos el - en MT1 y el + en MT2 (de color azul) ahora el que conduce es el scr1 y scr2 no conduce. La corriente de salida tendrá el sentido hacia abajo o la representada de color azul. Como ves, cualquiera que sea la dirección (o polaridad) de la corriente de salida que intenta pasar por el triac, esta puede pasar. Cualquiera que sea la dirección de la corriente que intenta pasar por el triac, si el triac está activado, se comportará como un conductor, dejando que esta fluya. Se comporta como un interruptor cerrado. Si trabajamos con una corriente alterna, la polaridad del triac irá cambiando según el ciclo de la onda senoidal de la corriente alterna, pero en ambos casos el triac funciona. Por este motivo es ideal para utilizar en corriente alterna.
Como ves en la imagen el triac conduce en las zonas marrones de la gráfica. Al principio no conduce ya que al ser dos SCR o tiristores necesitan una corriente mínimo para que se comporten como conductores. Ojo esta corriente mínima no tiene nada que ver con la de activación (IGT). Es una corriente que necesita el tiristor para comportarse como conductor. Recuerda que la onda de corriente alterna senoidal tiene una frecuencia (se repite) de 50Hz, es decir se repita 50 veces cada segundo, por lo que ese pequeño espacio que no conduce casi no se nota. ¿Cuándo dejará de circular corriente por el Triac? En el circuito, dejará de circular la corriente por el Triac cuando la corriente que pasa por los diodos caiga por debajo de un cierto valor llamado corriente umbral o de mantenimiento, o si de alguna forma somos capaces de cortar la corriente totalmente. Esta segunda forma se podría hacer colocando a la salida del Triac un pulsador o interruptor cerrado y al pulsarlo que se abra y corte la co rriente por el Triac.
Aunque ahora dejemos otra vez el interruptor cerrado, en su posición inicial, ya no circulará corriente por el Triac hasta que de nuevo volvamos a meter la corriente de activación por la puerta. Entonces tenemos una corriente de activación, necesaria para activar el Triac a través de la puerta. Esta corriente se suele llamar IGT. También tenemos una corriente de salida que pasa por el Triac, que puede ser en un sentido o en otro. Esta corriente se suele llamar Ih, positiva o negativa en función de su sentido. Esta se suele llamar corriente normal de trabajo. Estos valores dependen de cada Triac y se pueden ver en la hoja de datos proporcionada por el fabricante. Es importante conocerlas y saber las corrientes máximas que puede soportar el Triac para no sobrepasarlas ya que podríamos quemar el Triac. También conocer las patillas sin son el ánodo 1, el 2 o la puerta.
1.7.8. Optoacopladores. 1.7.8.1. ¿Qué es un Optoacoplador? Un optoacoplador es un componente electrónico que se utiliza como transmisor y receptor óptico (de luz), es decir pueden transmitir de un punto a otro una señal eléctrica sin necesidad de conexión física ni cables (por el aire), mediante una señal luminosa. Por eso también se llaman Opto - Interruptor.
Activamos una luz y esta luz llega a un detector que genera una tensión de salida, interruptor cerrado. Si no se activa la luz o no le llega la luz al detector, este no genera ninguna tensión de salida, es decir interruptor abierto.
Si combinamos una fuente óptica (generalmente un Led) con algún tipo de detector óptico (generalmente un semiconductor de silicio llamado fototransistor) en un solo encapsulado, el dispositivo resultante es un optoacoplador o interruptor óptico. Suelen ser elementos que sustituyen a los relés tradicionales. Se suelen utilizar para aislar dos circuitos, uno que trabaja a poco tensión (el del LED), llamado de control y otro a mucha tensión o a una tensión diferente (el del detector) llamado de potencia. Imagina que con una pequeña tensión activamos el LED del optoacoplador (por ejemplo a 5V) y la luz que emite el led llega al detector del optoacoplador y activa el detector creando una tensión de salida a 220V.Podemos activar a la salida motores, lámparas, etc. a 220V desde otro sitio en el que solo tenemos 5V, sin riesgo apenas para el que lo activa. La aplicación principal es en aislamiento entre los circuitos de control y los de potencia. Esto evita que la parte de trabajo (la del led) no tenga casi riesgos para el que opera en ella, al no tener que trabajar con la parte de alta tensión o intensidad, que estaría separada. Veamos cómo funcionan. 1.7.8.2. Funcionamiento de un Optoacoplador Tiene una salida de luz (LED emisor) y una entrada de luz (fotodetector), que detecta cuando recibe la luz del LED al rebotar en alguna superficie clara. Como se observa es similar al transistor, pero en lugar activarlo con corriente se activa mediante la luz.
Cuando se conecta una señal eléctrica (tensión) a los dos extremos del LED (emisor), este emite una señal luminosa, que es recibida por el receptor o detector. Al recibir esta señal luminosa, genera en sus pines una tensión eléctrica, que será la tensión de salida.
Como vemos cuando le llega una tensión a la entrada lo cual genera una luz en el Led y al recibirla el detector este genera una tensión de salida. Es como un interruptor. Si no llega luz al detector el interruptor estará abierto, si le llega luz del led el interruptor sería cerrado.
Al no llegarle luz al detector, por ejemplo por que no rebota en ninguna superficie. El interruptor estaría abierto por que no se produce tensión a la salida.
Algunos optoacopladores tienen un encapsulado con una cámara de aire para la transmisión de la luz. En este tipo si hay algún objeto dentro de la ranura no llegará luz al detector. También puede ser que no le llegue tensión al led y tampoco tendríamos tensión de salida. Serían los 2 casos posibles. La mayoría de los optoacopladores utilizan un encapsulado llamado DIP.
Como ves el DIP tiene un encapsulado muy parecido a un circuito integrado, incluso pueden presentar hasta 8 pines o patillas por cada lado. En este caso estamos hablando de 4 optoacopladores individuales en un mismo encapsulado. El optoacoplador más utilizado posee 6 pines, 3 por cada lado y su forma física es la que se ve a continuación en la siguiente figura:
Como ves las patillas 1 y 2 son el emisor de luz y la 6 y 4 el receptor de la luz para que se active. Hay muchos tipos diferentes de optoacopladores, pero todos tienen un foco emisor de luz LED. Lo que pueden cambiar es el receptor de luz que puede ser un fotodiodo, fototransistor, LASCR, etc.
Un parámetro muy importante en estos elementos es la eficiencia, este parámetro define qué cantidad de corriente necesitamos en el LED para obtener la salida deseada. En el transistor y en el Darlington esto se llama Radio de transferencia de corriente (CTR), esto se calcula simplemente dividiendo la corriente de salida entre la corriente de entrada requerida. La mayoría de los optoacopladores trabajan a un CTR entre 10 y 50 por ciento. El otro parámetro importante en optoacopladores es el voltaje de aislamiento el cual es de 7500 Volts durante 1 segundo. 1.7.8.3. Conexión de los Optoacopladores Es importante resaltar que tanto el led como el detector deben llevar siempre una resistencia en serie con ellos para protegerlos y limitar la corriente que le llega al led. Veamos el ejemplo:
En el circuito, al presionar el pulsador va a encender el Led. Donde va conectado el Led de salida podríamos poner un voltímetro (o un polímetro) y utilizarlo para comprobar el funcionamiento del optoacoplador. Lógicamente donde tenemos en el esquema la Vss hay podríamos colocar el receptor como una bombilla, timbre, motor, etc. que se activaría con el optoacoplador, al llegarle tensión al Led del optoacoplador con Vs. Si ponemos un pequeño motor de c.c. o un led en Vss este se activará con el optoacoplador. ¿Pero si queremos señales de tensiones más elevadas a la salida? En Vss tendríamos que poner un relé por que la tensión generada no será muy alta, si queremos receptores a más tensiones. Si colocamos un relé podemos activarlo con el optoacoplador y este tener a la salida un circuito con la tensión de 220V en alterna, por ejemplo. Normalmente en lugar de un relé se pone un Triac. Veamos el circuito:
Este circuito electrónico de llama interface de potencia, basado en un optoacoplador DIODO TRIAC capaz de manejar cargas del orden de 10 amperios o más dependiendo la capacidad del Triac a utilizar a la salida. Lo primero que debemos verificar es que haya señal suficiente para activar un LED, y luego acoplar esa señal a este circuito tal cual.