¿QUÉ ES ARDUINO?
• Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. • Por otro lado Arduino nos proporciona un software consistente en un entorno de desarrollo (IDE) que implementa el lenguaje de programación de Arduino y el bootloader ejecutado en la placa. La principal característica del software de programación y del lenguaje de programación es su sencillez y facilidad de uso
¿Para qué sirve Arduino? • Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado, y convertir la información en una acción como puede ser encender una luz y pasar por un display lo tecleado.
Familia Arduino Como toda familia que se respete, tenemos de los integrantes más grandes a los más pequeños, te invitamos a conocerlos: Arduino UNO
Muchas entradas y salidas
Arduino Mega2560
El más vendido, todo en uno
6B
Arduino Pro
Arduino Fio
Ligero y práctico
Arduino Bluetooth
Programación XBee Arduino Mega ADK
Arduino Mini
Pequeño, ideal para protoboard
Arduino LyliPad
Para conectar el Android
Para artistas y manejar e-textils
Arduino Nano
Arduino Serial
Arduino Leonardo
Un pequeño poderoso
El inicio del proyecto Arduino
El más joven y económico
Programación bluetooth
vía
Arduino UNO R3 • Este es el nuevo Arduino Uno R3 utiliza el microcontrolador ATmega328. En adición a todas las características de las tarjetas anteriores, el Arduino Uno utiliza el ATmega16U2 para el manejo de USB en lugar del 8U2 (o del FTDI encontrado en generaciones previas). Esto permite ratios de transferencia más rápidos y más memoria. No se necesitan drivers para Linux o Mac (el archivo inf para Windows es necesario y está incluido en el IDE de Arduino).
• La tarjeta Arduino Uno R3 incluso añade pins SDA y SCL cercanos al AREF. Es más, hay dos nuevos pines cerca del pin RESET. Uno es el IOREF, que permite a los shields adaptarse al voltaje brindado por la tarjeta. El otro pin no se encuentra conectado y está reservado para propósitos futuros. La tarjeta trabaja con todos los shields existentes y podrá adaptarse con los nuevos shields utilizando esos pines adicionales. • El Arduino es una plataforma computacional física open-source basada en una simple tarjeta de I/O y un entorno de desarrollo que implementa el lenguaje Processing/Wiring. El Arduino Uno R3 puede ser utilizado para desarrollar objetos interactivos o puede ser conectado a software de tu computadora (por ejemplo, Flash, Processing, MaxMSP). El IDE open-source puede ser descargado gratuitamente (actualmente para Mac OS X, Windows y Linux). • Nota: Esta plataforma requiere la carpeta de drivers Arduino 1.0 para poder instalarlo de forma apropiada en algunos computadores. Hemos testeado y confirmado que el Arduino Uno R3 puede ser programado en versiones anteriores del IDE. Sin embargo, la primera vez que uses el Arduino en una nueva computadora deberás tener el Arduino 1.0 instalado en la máquina. Si estás interesado en leer más acerca de los cambios en el IDE, revisa las notas oficiales de Arduino 1.0. • Características: • Microcontrolador ATmega328. • Voltaje de entrada 7-12V.
• 14 pines digitales de I/O (6 salidas PWM). • 6 entradas análogas. • 32k de memoria Flash. • Reloj de 16MHz de velocidad. •
El Arduino Nano • El Arduino Nano es una pequeña, pero poderosa tarjeta basada en el ATmega328. Posee las mismas funcionalidades que un Arduino UNO, solo que en un tamaño reducido. Para programarla solo se necesita de un cable Mini USB. • • Características: • Microcontrolador: ATMega328 • Voltaje de operación: 5V • Voltaje de alimentación (Recomendado): 7-12V • I/O Digitales: 14 (6 son PWM) • Memoria Flash: 32KB • EEPROM: 1KB • Frecuencia de trabajo: 16MHz • Dimensiones: 0.73″ x 1.70″
Arduino Due
• Arduino Due es la primera tarjeta de desarrollo construida con un poderoso microcontrolador de 32 bit CortexM3 ARM el cual puede ser programado mediante el IDE de Arduino. Incrementa el poder de procesamiento de tus proyectos Arduino manteniendo una compatibilidad en el lenguaje de programación y otorgándote una migración de tarjeta en cuestión de minutos. • El Arduino Due posee 54 pines digitales de entrada y salida (de los cuales 12 pueden ser usados como salidas PWM), 12 entradas análogas, 2 salidas análogas, 4 UART (puertas seriales por hardware), cristal oscilador de 84MHz, una conexión compatible con USB-OTG, 2 TWI, Jack de poder, conexión JTAG, botón reset y un botón borrar. También tiene otras geniales funcionalidades como audio, DMA, una librería experimental para multitareas y más. • Para realizar una compilación de código de programación y que sea compatible con esta tarjeta, necesitaras utilizar una versión superior al IDE de Arduino 1.5.0. • De acuerdo a las limitaciones de voltaje de sistema impuestas por el Atmel SAM3X8E, la mayoría de los Shield de Arduino que funcionan con 5V no funcionarán correctamente con la tarjeta Arduino Due. Ten cuidado cuando conectes dispositivos a esta tarjeta • Nota: A diferencia de otras tarjetas, Arduino Due trabaja con 3,3V, pudiendo tolerar un voltaje máximo en sus pines I/O de 3.3V. Alimentar los mismos con voltajes más altos, como 5V por ejemplo, podría dañar la tarjeta.. • Características:
• Microcontrolador: AT91SAM3X8E. • Voltaje de operación: 3.3V. • Voltaje recomendado de entrada (pin Vin): 7-12V. • Pines de entrada y salida digitales: 54 pines I/O, de los cuales 12 proveen salida PWM. • Pines de entrada análogos: 12. • Pines de salida análogos: 2. • Corriente de salida total en los pines I/O: 130mA. • Corriente DC máxima en el pin de 3.3V: 800mA. • Corriente DC máxima en el pin de 5V: 800mA. • Memoria Flash: 512 KB toda disponible para aplicaciones del usuario. • SRAM: 96 KB (en dos bancos de: 64KB y 32KB).
• Velocidad de reloj: 84 MHz
Intel Galileo Gen 2 • La placa Intel Galileo Gen 2 es la primera en una familia de placas de desarrollo y prototipos certificadas por Arduino* basadas en la arquitectura Intel® y especialmente diseñadas para fabricantes, estudiantes, educadores y entusiastas de la electrónica tipo “Hágalo usted mismo”. La placa Intel Galileo Gen 2, que ofrece a los usuarios un entorno de desarrollo de hardware y software de código abierto, complementa y amplía la línea de productos Arduino para ofrecer funciones informáticas más avanzadas a quienes ya están familiarizados con las herramientas de prototipos Arduino. La placa de desarrollo Intel Galileo Gen 2 ha sido diseñada para la compatibilidad con hardware, software y PIN, con una amplia variedad de pletinas Arduino Uno* R3 y permite adicionalmente a los usuarios incorporar llamadas de firmware de Linux* a su programación de esquema de Arduino. • Características: • El procesador de aplicaciones Intel® Quark™ SoC X1000, una arquitectura de conjunto de instrucciones de procesador Intel® Pentium® de 32 bits, con un solo núcleo y un solo subproceso compatible con ISA, que funciona a velocidades de hasta 400 MHz. • Compatibilidad con una amplia variedad de interfases de E/S estándar en la industria, entre ellas la ranura mini-PCI Express* de tamaño completo, el puerto Ethernet de 100 Mb, la ranura microSD*, el host USB y el puerto cliente USB. • DDR3 de 256 MB, SRAM de 512 kb integrada, Flash NOR de 8 MB y EEPROM de 8 kb estándar en la placa, más compatibilidad con tarjeta microSD de hasta 32 GB. • Compatibilidad de hardware y pines con una amplia variedad de pletinas Arduino Uno R3. • Programable a través del entorno de desarrollo integrado (IDE) Arduino que es compatible con los sistemas operativos host Microsoft Windows*, Mac OS* y Linux. • Compatibilidad con la edición Yocto 1.4 Poky* Linux. • Novedades de Intel Galileo Gen 2: • El cabezal TTL UART USB 3.3 V de 6 pines reemplaza al puerto de consola RS-232 con conector de 3,5 mm para depuración Linux. El nuevo conector de 6 pines es compatible con el cable serial FTDI* USB (TTL-232R-3V3) y breakout placa USB a serial populares. 12 GPIOs ahora totalmente nativo para más velocidad y una fortaleza mejorada de la unidad. • Modulación por amplitud de pulso (PWM) de 12 bits para un control más preciso de los servos y una respuesta más fluida. • La consola UART1 se puede redireccionar a los cabezales Arduino en esquemas, eliminando la necesidades de soft-serial en muchos casos. • Capacidad para alimentación sobre Ethernet (PoE) de 12 V (requiere instalación de módulo PoE). • El sistema de regulación de potencia cambió para aceptar suministros de energía de 7V a 15V
Arduino Mega 2560 • Arduino Mega es una tarjeta de desarrollo open-source construida con un microcontrolador modelo Atmega2560 que posee pines de entradas y salidas (E/S), analógicas y digitales. Esta tarjeta es programada en un entorno de desarrollo que implementa el lenguaje Processing/Wiring. Arduino puede utilizarse en el desarrollo de objetos interactivos autónomos o puede comunicarse a un PC a través del puerto serial (conversión con USB) utilizando lenguajes como Flash, Processing, MaxMSP, etc. Las posibilidades de realizar desarrollos basados en Arduino tienen como límite la imaginación. • El Arduino Mega tiene 54 pines de entradas/salidas digitales (14 de las cuales pueden ser utilizadas como salidas PWM), 16 entradas análogas, 4 UARTs (puertos serial por hardware), cristal oscilador de 16MHz, conexión USB, jack de alimentación, conector ICSP y botón de reset. Arduino Mega incorpora todo lo necesario para que el microcontrolador trabaje; simplemente conéctalo a tu PC por medio de un cable USB o con una fuente de alimentación externa (9 hasta 12VDC). El Arduino Mega es compatible con la mayoría de los shields diseñados para Arduino Duemilanove, diecimila o UNO. • Esta nueva versión de Arduino Mega 2560 adicionalmente a todas las características de su sucesor utiliza un microcontrolador ATMega8U2 en vez del circuito integrado FTDI. Esto permite mayores velocidades de transmisión por su puerto USB y no requiere drivers para Linux o MAC (archivo inf es necesario para Windows) además ahora cuenta con la capacidad de ser reconocido por el PC como un teclado, mouse, joystick, etc. • Características: • Microcontrolador ATmega2560. • Voltaje de entrada de – 7-12V. • 54 pines digitales de Entrada/Salida (14 de ellos son salidas PWM). • 16 entradas análogas. • 256k de memoria flash. • Velocidad del reloj de 16Mhz.
¿CÓMO ALIMENTAR ARDUINO?
Antes, de ver las opciones que tenemos para alimentar nuestro proyecto con baterías vamos a ver, a modo de resumen, los dos puntos principales por los que podemos alimentar Arduino. En general podemos: Emplear el regulador de voltaje integrado en la placa. Aplicar directamente un voltaje regulado a la tensión nominal de la placa.
Mecanismos de alimentación para el Arduino • Las placas Arduino más populares son muy versátiles y admiten varias formas para ser alimentadas. En este apartado vamos a ver en detalle cada una de las opciones que tenemos para darle poder a nuestra tarjeta. La siguiente imagen resume los mecanismos que podemos utilizar para alimentar el Arduino UNO.
EMPLEAR EL REGULADOR DE VOLTAJE
• Todas las placas Arduino disponen de un regulador de voltaje. Este regulador supone una pequeña caída de tensión, por lo que deberemos proporcionar una tensión de al menos 6V. Por debajo de esa tensión, lo más probable es que Arduino se apague. • Por otro lado, cuanto mayor sea el voltaje, mayor será el calor que el regulador debe disipar. No este recomendado aplicar más de 12V al regulador porque supone un esfuerzo excesivo. Proporcionar más de 20V dañará el regulador inmediatamente.
• APLICAR UN VOLTAJE REGULADO • También podemos aplicar la tensión nominal (5V o 3,3V, según el modelo) directamente a la placa sin emplear el regulador. Es decir, podemos alimentar suministrando 5V al pin 5V de Arduino. Por ejemplo, es lo que estamos haciendo cuando alimentamos Arduino desde el USB. • En el caso de aplicar el voltaje directamente la fuente de alimentación que empleemos tendrá que estar regulada a la tensión nominal con un alto grado de precisión. Una variación o un pico de tensión dañará Arduino, ya que no estamos empleando el regulador de voltaje.
• OPCIONES PARA ALIMENTAR ARDUINO POR BATERÍA Ahora que hemos visto que opciones tenemos para alimentar Arduino, podemos ver las distintas soluciones que tenemos para alimentar nuestros proyectos con baterías.
UNA PILA DE 9V
Usar una pila de 9V es una de las opciones más extendidas, especialmente para usuarios que se están iniciando y en proyectos de pequeño tamaño. El voltaje de 9V es apropiado para alimentar Arduino. Tienen la ventaja de ser fáciles de encontrar y usar. Además hay disponibles cables y portapilas, que incluso incorporan un conector jack tipo Arduino, lo que hace que sean fáciles de usar. Como desventajas, las pilas de 9V disponen de baja densidad energética. Una pila tiene una capacidad típica de 500600mAh. Además, son proporcionan una intensidad de corriente máxima muy baja, en torno a 300mA, útil solo para proyectos pequeños. Por otro lado, 9V es una tensión inadecuada para la mayoría de actuadores. Resulta excesiva para la mayoría de motores DC y servos, mientras que no es suficiente para grandes motores brushless y paso a paso, que funcionan con 12V y, además, requieren mucho más intensidad. El precio es reducido, pero tienen la gran desventaja de no ser dispositivos recargables, lo que, unido a su baja carga, hacen que a largo plazo no resulten económicas. En resumen, una opción para pequeños montajes o pruebas sencillas, pero que en seguida queda corto en características, por lo que requeriremos opciones superiores.
4 PILAS AA DE 1.5V
Emplear cuatro pilas AA en serie, proporcionando un total de 6V, es otra opción sencilla y ampliamente usado en pequeños proyectos y proyectos de iniciación. Podemos encontrar con facilidad porta pilas, cables y otras soluciones para incorporar cuatro pilas AA como forma de alimentación en nuestros proyectos. Las pilas AA tienen la ventaja de ser fáciles de encontrar. Además, el voltaje de 6V es perfecto para alimentar motores de DC y servos. La carga es superior a las pilas de 9V. Cuatro pilas AA convencionales proporcionan 800-1500 mAh mientras que, en el caso de usar pilas AA alcalinas la capacidad es de 1700-2800mA. La intensidad máxima que podemos obtener supera 1A, pudiendo llegar a extraer hasta 2A. Pero debemos tener en cuenta que, debido a las curvas de descarga, la cantidad de carga que podemos extraer de la pila se reduce cuanto más rápido la drenamos. El precio de las pilas es barato, pero al no ser recargables a largo plazo no resulta económico. En resumen, otra opción sencilla, válida para pequeños proyectos y robots.
BANCOS DE BATERÍAS USB DE 5V
Emplear una batería USB, de las que se usan para alargar la batería de los móviles, es una opción interesante para incorporar en nuestros proyectos. Tienen como ventaja que proporcionan 5V regulados, por lo que podemos alimentar Arduino a través del USB, sin preocuparnos de la necesidad de regular el voltaje. Muchos de estos bancos, de hecho, incorporan una única batería de litio 18650, más un pequeño circuito que eleva y regula el voltaje a 5V. En estos casos podemos incluso sustituir una batería por otra, empleando la misma caja, mientras cargamos la batería descargada. El voltaje de 5V es adecuado para alimentar una gran variedad de componentes, como motores DC, servos, así como una gran cantidad de dispositivos (sensores, tiras LED, displays… ). Estos bancos son, por supuesto, recargables. La capacidad de energía es alta, pudiendo encontrar bancos de hasta 17.000 mAh (aunque nuevamente no os creáis por completo las capacidades que ponen en los anuncios). Como desventaja, es una opción algo cara frente a otras opciones disponibles. Además, la intensidad máxima es reducida, típicamente inferior a 2A, lo que le hace inviable para proyectos grandes. En resumen, un banco de baterías USB es una buena solución de movilidad, como batería para llevar encima que nos permita hacer pruebas y montajes de forma sencilla (y mucho mejor que una batería de 9V). Incluso es una opción que podríamos plantearnos en proyectos y robots medianos, siempre que podamos reaprovechar y rotar la misma batería entre los distintos proyectos para aprovechar su coste.
BATERÍAS DE NIQUEL-METALHIDRURO (NIMH)
Esta es la primera solución “pro” que planteamos. Es similar al caso de las baterías AA de NiMh, pero integradas como una única batería de mayor o menos tamaño, y con conectores. Las baterías de NiMh tienen, en general, 5 celdas co una tensión de 6V, o 8 celdas con una tensión de 9.6V. Las baterías de 5 celdas a 6V, son excelentes para proyectos y robots con servos y motores DC. Las baterías NiMh tienen una densidad de energía media-alta. Podemos encontrar baterías con capacidades desde 300 a 5000 mAh, con un peso moderado. Las baterías NiMh pueden proporcionar una considerable cantidad de energía. Dependiendo de la calidad del modelo pueden proporcionar entre 3-4C, lo que puede significar hasta 15A en el caso de grandes baterías. Por contra, las baterías de NiMh son relativamente caras, y además exigen el uso de un cargador especial, que también es costoso. Las conexiones y cables requeridos, para corrientes altas, también encarecen los montajes. Las baterías de NiMh resultan adecuadas para proyectos medios y grandes en los que se requiere una gran capacidad y corrientes medias, especialmente en aquellos que emplean servos (brazos robóticos, hexápodos, robots bípedos), ya que el voltaje de 6V resulta idóneo.
BATERÍAS DE POLIMERO LITIO (LIPO)
Las baterías de Polimero Litio (Lipo) son la opción más avanzada para alimentar nuestros proyectos. Las baterías LiPo se presentan en varios voltajes, en función del número de celdas. Así las LiPo de 2 celdas (2S) proporcionan 7.4V-8.4, y las de 3 celdas (3S) proporcionan 11.1-12.6V. Ambos voltajes son adecuados para alimentar un Arduino. Las baterías de 2S (7.4-8.4V) pueden emplearse para alimentar servos y motores DC, aunque es una tensión algo excesiva y conviene reducirla hasta los 6-7V. Las baterías de 3S (11.1-12.6V) son adecuadas para accionar grandes motores paso a paso, y motores brushless. Las baterías LiPo presentan la densidad de energía más alta de las opciones planteadas. Podemos encontrar baterías con capacidades desde 500 a 5000mAh. Además, las baterías LiPo tienen la ventaja de proporcionar enormes intensidades. Es posible encontrar baterías 20-25C, lo que se traduce en intensidades de descarga de 50 a 100A, requerida por los motores más grandes. Las baterías LiPo también son la opción más cara, aunque al ser recargables resultan económicas a largo plazo, más aún si tenemos en cuenta sus características eléctricas. La mayor desventaja de estas baterías es la dificultad y cuidado que hay que tener en su uso. Manipular de forma indebida una batería LiPo puede ser extremadamente peligroso, por las gran cantidad de energía que almacenan. La carga de este tipo de baterías tiene que realizarse mediante cargadores especiales, y no deberían dejarse sin supervisión durante el proceso. Hasta el almacenamiento de estas baterías debe realizarse en condiciones controladas. En resumen, las baterías LiPo son la solución más potente para alimentar nuestros proyectos, pero los requisitos de manipulación y carga la hacen adecuada sólo para usuarios avanzados y los proyectos complejos, como grandes robots, quadricópteros, y otro tipo de grandes vehículos.
Alimentar el arduino mediante USB • Como ya mencionamos, es la forma más sencilla de alimentar el Arduino. A través de esta entrada se admiten ÚNICAMENTE 5 volts.
Entradas y Salidas Digitales • Entradas/salidas digitales • Se trata de pines donde el usuario puede activar (poner tensión) o desactivar (quitar tensión). Es similar a escribir 0 y 1, 0V y 5V respectivamente.
ENTRADAS DIGITALES EN ARDUINO • Una de las funciones más interesantes (si no la más) de Arduino y en general de todos los autómatas es su capacidad de interacción con el mundo físico. Podemos, por ejemplo, realizar mediciones de tensión, obtener lecturas de gran variedad de sensores, encender dispositivos o controlar motores y actuadores. Esta interacción se lleva a cabo en gran parte mediante el uso de las entradas y salidas tanto digitales como analógicas. • En las siguientes entradas de la sección tutoriales de Arduino aprenderemos a usar estas funciones, que resultan una parte fundamental en la mayor parte de proyectos. Empezaremos en esta entrada por las entradas digitales por ser las más sencillas, aunque en su momento veremos que el resto de funciones no resultan mucho más complicadas. • Aunque estamos empleando Arduino como plataforma es importante remarcar que la mayoría de conceptos son aplicables a cualquier autómata general. Al final veremos el código y montaje en Arduino, pero antes veremos brevemente un poco de teoría general.
¿QUÉ ES UNA ENTRADA DIGITAL? • Una señal digital es una variación de voltaje entre -Vcc a +Vcc sin pasar por los valores intermedios. Por lo tanto, una señal digital dispone solo de dos estados. Al valor inferior de tensión -Vcc le asociamos un valor lógico LOW o ‘0’, mientras que al valor superior +Vcc le asociamos HIGH o ‘1’ lógico. • Sin embargo en el mundo físico las referencias de tensión realmente son continuas. El proceso de lectura digital es un proceso de discretización de una señal analógica, el valor de la tensión, en un valor digital que representamos mediante dos estados, LOW y HIGH. • En realidad una entrada digital realiza una comparación de la medición con un valor de tensión umbral. Si el valor medido es superior a la tensión umbral se devuelve HIGH, y si es inferior LOW. El valor de la tensión umbral varía de un autómata a otro, e incluso no tiene porque permanecer constante a lo largo del tiempo. • En general es razonable suponer que la tensión umbral es cercana al punto medio entre Vcc y +Vcc. No obstante debemos evitar medir tensiones cerca de la tensión umbral porque pueden provocar mediciones incorrectas.
CONEXIÓN DE ENTRADAS DIGITALES EN ARDUINO • En Arduino las entradas y salidas digitales comparten pin, motivo por el que se denominan I/O digitales. Esto significa que el mismo pin puede ejecutar funciones tanto de entrada como de salida aunque, lógicamente, no de forma simultánea. Es necesario configurar un pin I/O como entrada o salida en el código. • Arduino dispone de un número diferente de I/O digitales en función del modelo, cómo vimos en la entrada Por ejemplo, Arduino UNO dispone de 16 I/O digitales y Arduino MEGA de 54. • En Arduino los valores de alimentación habituales son 0V y 5V. En este caso la tensión umbral será muy cercana a 2’5V. Por tanto si medimos una tensión con un valor intermedio entre 0 a 2’5V Arduino devolverá una lectura LOW, y si medimos un valor entre 2’5V y 5V, devolverá HIGH. • Nunca introducir una tensión fuera del rango 0V a 5V en una entrada digital o analógica o podemos dañar el pin correspondiente y dejarlo permanentemente inutilizado.
• Supongamos que queremos emplear Arduino para conectarlo con un sensor, o cualquier otro dispositivo, que dispone de una salida de tensión ininterrumpida entre 0V a 5V. De momento no consideramos la posibilidad de que la entrada digital quede totalmente desconectada, algo que trataremos en la siguiente entrada “Lectura de un pulsador con Arduino”. • Podemos realizar la lectura del valor de tensión en el sensor con un esquema como el siguiente.
La lectura dará un valor “HIGH” si el valor de tensión medido es superior a una tensión umbral, y “LOW” si el valor de tensión es inferior.
LECTURA DE VALORES MAYORES DE 5V
• Hemos comentado que bajo ningún concepto debemos introducir un voltaje fuera del rango 0 a 5V en un pin de Arduino o nos arriesgamos a dañarlo permanentemente. Si queremos medir un nivel de tensión superior a los límites de alimentación la forma más conveniente es emplear un simple divisor de tensión. • Por ejemplo, para leer una señal digital entre 0 a 12V podemos emplear un esquema como el siguiente.
• Con esta configuración el pin digital de Arduino recibirá una tensión que varía entre 0 a 3,84V, suficiente para hacer disparar la tensión umbral, y por debajo del límite de alimentación. • Los valores de las resistencias a emplear dependen del voltaje que queremos leer, y de la impedancia del sensor. En general, deben cumplir las siguientes condiciones • Deben proporcionar un voltaje superior a la tensión umbral • Deben ser muy superiores a la impedancia equivalente del dispositivo a medir. • Deben ser despreciables respecto a la impedancia de la entrada Arduino. • Deben limitar la corriente que circula por ellas para minimizar pérdidas. • Deben ser capaces de disipar la potencia que van a soportar.
• En el Arduino UNO existen entradas y salidas analógicas (6) y digitales (16). Por un lado las analógicas son utilizadas, generalmente, para dispositivos de entrada y nos permiten leer un rango de valores. En cambio las digitales pueden tener a la entrada o a la salida 0V o 5V, esto nos indica que ese pin está en estado bajo (Low) o alto (High).
Los pines 0 (Serial In RX) y 1 (Serial Out TX) • Los pines 0 (Serial In RX) y 1 (Serial Out TX), puertos serie, se usan para comunicación entre dispositivos. La característica principal de los puertos serie es que envían la información bit a bit, enviando un bit cada vez. La versión avanzada de este puerto sería el paralelo que nos permite enviar información en paralelo. Para que se pueda entender imaginaros un tanque lleno de agua, si de ese tanque sacamos un grifo para llenar botellas una a una éste sería nuestro puerto serie, ahora bien, si de ese tanque sacamos cuatro grifos para llenar cuatro botellas a la vez, este sería el ejemplo de un puerto paralelo. En ordenadores, el puerto serie, se usa y se sigue usando para conectar un ordenador con módems, ratones, teclados y muchos más periféricos. En el caso concreto del Arduino UNO, el puerto 0 (RX) sería el puerto serie de entrada y el puerto 1 (TX) sería el puerto serie de salida.
Entradas y salidas analógicas • Una señal eléctrica analógica es aquella en la que los valores de la tensión o voltaje varían constantemente y pueden tomar cualquier valor. • Un sistema de control (como un microcontrolador) no tiene capacidad alguna para trabajar con señales analógicas, de modo que necesita convertir las señales analógicas en señales digitales para poder trabajar con ellas. • La señal digital obtenida de una analógica tiene dos propiedades fundamentales: • Valores. Que valor en voltios define 0 y 1. En nuestro caso es tecnología TTL (0 – 5V) • Resolución analógica: nº de bits que usamos para representar con una notación digital una señal analógica:
Otras entradas/salidas • Además de los pines digitales y analógicos existen otros pines que nos dan diferentes funcionalidades. • GND (Ground) es la toma de tierra, 0V. • AREF (Analog Reference) es el pin que nos suministra la tensión para el rango máximo de los puertos analógicos, normalmente 5V. • Vin es la entrada de alimentación de la placa Arduino. Esta entrada no está protegida y por lo tanto hay que tener un especial cuidado con el voltaje que suministramos ya que podemos quemar la placa. Se recomienda una alimentación por USB en el periodo de pruebas. • 5V y 3.3 V suministra una tensión de 5V y 3.3V respectivamente. • RESET sirve para resetear el Arduino si aplicamos la tensión máxima posible (IOREF). Reinicia el Arduino volviendo a ejecutar el Bootloader y el programa que tengamos cargado. Importante, esta función no borra el programa que tengamos cargado en la memoria del Arduino. • IOREF (Input Output Reference) es el pin que nos suministra la tensión para el estado alto de los pines digitales. Por norma general si conectamos el Arduino a 5V este pin nos dará 5V, en caso contrario serán 3.3V.
Partes de Arduino
Potencia - USB (1) / Conector de Adaptador (2) • Cada placa Arduino necesita una forma de estar alimentado eléctricamente. Esta puede ser alimentado desde un cable USB que viene de su ordenador o un cable de corriente eléctrica con su respectivo adaptador. La conexión USB es también cómo va a cargar código en su placa Arduino. • NO utilice una fuente de alimentación superior a 20 voltios, ya que se puede dañar la placa Arduino. La tensión recomendada para la mayoría de los modelos de Arduino es de entre 6 y 12 voltios.
Pines (5V, 3.3V, GND, Analog, Digital, PWM, AREF) • Los pines en la placa Arduino es donde se conectan los cables de un circuito. El Arduino tiene varios tipos diferentes de entradas, cada uno de las cuales está marcado en el tablero y utilizan para diferentes funciones: • • GND (3): Abreviatura de "tierra" (en Ingles). Hay varios pines GND en el Arduino, cualquiera de los cuales pueden ser utilizados para conectar a tierra el circuito. • • 5V (4) y 3.3V (5): Son los suministros pin 5V 5 voltios de energía, y los suministros de pin 3.3V 3.3 voltios de potencia.
• • Analógico (6): El área de pines en el marco del 'analógica' etiqueta (A0 a A5) son analógicas. Estos pines pueden leer la señal de un sensor analógico (como un sensor de temperatura) y convertirlo en un valor digital que podemos leer. • • Digital (7): Son los pines digitales (del 0 al 13). Estos pines se pueden utilizar tanto para la entrada digital (como decir, si se oprime un botón) y salida digital (como encender un LED). • • PWM (8): Usted puede haber notado la tilde (~) al lado de algunos de los pines digitales (3, 5, 6, 9, 10 y 11). Estos pines actúan como pines digitales normales, pero también se pueden usar para algo llamado Modulación por ancho de pulsos (PWM, por sus siglas en Ingles). • • AREF (9): Soportes de referencia analógica. La mayoría de las veces se puede dejar este pin solo. A veces se utiliza para establecer una tensión de referencia externa (entre 0 y 5 voltios) como el límite superior para los pines de entrada analógica. • Botón de reinicio (10) • Empujando este botón se conectará temporalmente el pin de reset a tierra y reinicie cualquier código que se carga en el Arduino. Esto puede ser muy útil si el código no se repite, pero quiere probarlo varias veces. • Indicador LED de alimentación (11) • Este LED debe encenderse cada vez que conecte la placa Arduino a una toma eléctrica. Si esta luz no se enciende, hay una buena probabilidad de que algo anda mal.
• LEDs RX TX (12) • TX es la abreviatura de transmisión, RX es la abreviatura de recibir. Estas marcas aparecen un poco en la electrónica para indicar los pasadores responsables de la comunicación en serie. En nuestro caso, hay dos lugares en la Arduino UNO donde aparecen TX y RX - una vez por pines digitales 0 y 1, y por segunda vez junto a los indicadores LED de TX y RX (12). Estos LEDs nos darán algunas buenas indicaciones visuales siempre nuestro Arduino está recibiendo o transmitiendo datos (como cuando nos estamos cargando un nuevo programa en el tablero). • Microcontrolador (13) • Lo negro con todas las patas de metal es un circuito integrado (IC, por sus siglas en Ingles). Piense en ello como el cerebro de nuestro Arduino. La principal IC en el Arduino es ligeramente diferente del tipo de placa a placa tipo, pero es por lo general de la línea de ATmega de CI de la empresa ATMEL. Esto puede ser importante, ya que puede necesitar para saber el tipo de IC (junto con su tipo de tarjeta) antes de cargar un nuevo programa desde el software de Arduino. Esta información se puede encontrar en la escritura en la parte superior de la IC. Si quieres saber más acerca de la diferencia entre diversos circuitos integrados, la lectura de las hojas de datos suele ser una buena idea. • Regulador de Voltaje (14) • Esto no es realmente algo que se puede (o debe) interactuar con el Arduino. Pero es potencialmente útil para saber que está ahí y para qué sirve. El regulador de voltaje hace exactamente lo que dice que controla la cantidad de tensión que se deja en la placa Arduino. Piense en ello como una especie de guardián; se dará la espalda a una tensión adicional que podría dañar el circuito. Por supuesto, tiene sus límites, por lo que no conecta tu Arduino a nada superior a 20 voltios.