¿Qué es Arduino?
Arduino es una empresa dedicada a la creación y fabricación de dispositivos programables y componentes electrónicos destinados al desarrollo de proyectos relacionados con las nuevas tecnologías tales como:
- Aplicaciones de control
- Sistemas de automatización
- Aplicaciones IOT ( Internet Of Things).
El perfil de sus productos está orientado tanto a un uso educacional/experimentación como al desarrollo de soluciones profesionales.
Si no has leído el tercer artículo de la serie puedes visitarlo en el siguiente enlace: Iniciación a la microbótica 3: ¿Qué es micro:bit?
Video tutorial iniciación a la microbótica 4: Las placas Arduino
Profesor Ángel Aguinaga Master de Programación CIPSA Bilbao
Modelos de Arduino
Con el paso de los años se han desarrollado multitud de modelos con diferentes especificaciones y propósitos. Las principales diferencias radican en los siguientes elementos:
- Modelo de microcontrolador ATMega.
- Cantidad de memoria.
- Nº de Puertos E/S digitales y analógicos
- Componentes adicionales integrados.
De entre todos ellos, los modelos más comunes son los siguientes:
- Arduino UNO R3 -> Modelo básico apropiado para la mayoría de proyectos de iniciación con unos requisitos medios en cuanto a potencia y número de componentes controlables.
- Arduino Mega 2560 -> Modelo de mayores prestaciones apropiado para proyectos más sofisticados que requieren controlar un mayor número de dispositivos y más potencia de procesamiento y memoria.
- Arduino Micro/Nano/Mini -> Modelos semejantes pero de tamaños reducidos apropiados para incorporar embebidas en proyectos con limitaciones de peso, consumo y tamaño, o como sub-controlador.
En la siguiente tabla pueden contrastarse las especificaciones concretas de tres modelos:
La placa Arduino UNO R3
Se trata de placa Arduino más comúnmente empleada y cuyas características son suficientes para la realización de cualquier proyecto pequeño-mediano.
Alimentación
La placa puede alimentarse de dos modos:
- A través del puerto USB-B
- A través del conector Jack.
El conector USB permite conectar la placa a un PC para alimentarla y permitir su reprogramación. Este tipo de conexión también permite el envío y recepción de datos entre el PC y la placa para depurar los programas.
También puede alimentarse empleando adaptadores USB.
El conector Jack puede emplearse para alimentar la placa empleando adaptadores de corriente:
El adaptador debe suministrar una tensión continua (DC) comprendida entre 7-12 voltios.
La electrónica interna de la placa trabaja con una tensión de 5 voltios, pero el conector Jack emplea tensiones superiores mediante el uso de un reductor de voltaje.
También es posible el empleo de pilas y baterías recargables:
Consumo y autonomía.
La intensidad suministrada a la placa depende del tipo de alimentación empleada:
- USB 2.0 -> 500 mA
- USB 3.0 -> 900 mA
- Adaptador vía Jack -> 1 Amperio.
El consumo de la placa por otro lado depende del consumo de la placa en reposo y el de los componentes conectados a la misma.
- El consumo de la placa en reposo. Este depende en gran medida del tipo y frecuencia del microcontrolador de la placa. Algunos modelos como Arduino Mini, Micro o Nano, el consumo se reduce hasta los 15 mA, mientras que en otros modelos como Arduino Mega más potentes alcanza los 90 mA.
- El consumo de los componentes. Este está limitado a 40 mA por pin no pudiendo excederse los 300 mA en total. Estos consumos no deben sobrepasarse o dañaríamos la placa.
La autonomía nos indica el tiempo medio de funcionamiento de la placa según la capacidad de la batería/pila conectada. Esta se expresa en miliamperios hora (mAh) y nos indica la intensidad que puede suministrar la batería. Cuanta mayor sea la intensidad exigida a la batería antes agotará su carga. Esto depende también en gran medida de la composición de la batería.
Como aproximación:
Si estás interesado en ampliar tus conocimientos en lo relacionado a programación de placas Arduino, Micro::bit o Raspberry visita nuestros cursos de programación, principalmente el Curso de Programación C++ y el Curso Técnico Programador Python
Pines de E/S
Los pines de entrada y salida en Arduino o GPIOs ( General Purpose Input/Outputs) permiten conectar diferentes dispositivos sensores y actuadores. Estos están montados en conectores hembra que permiten su conexión mediante cables Dupont sin necesidad de soldaduras.
Estos pines pueden agruparse en tres categorías según sus capacidades operativas:
- Digitales -> Son aquellos que trabajan con señales de 5 o 0 voltios exclusivamente. Estos pueden configurarse tanto para recibir señales de sensores, como para generar señales para actuadores).
- Entrada Analógica -> Son aquellos que puede recibir e interpretar señales de entrada con tensiones intermedias mediante el empleo de un conversor analógico-digital.
Un conversor analógico-digital es un componente eléctrico que permite codificar una señal de una tensión intermedia en un valor digital. En el caso de Arduino UNO, los conversores codifican señales de tensiones comprendidas entre 0 y 5 Voltios en valores de 10 bits en el rango 0 – 1023:
Este tipo de señales suelen emplearse para la lectura de sensores y controles tales como resistencias fotoeléctricas, potenciómetros…, etc.
- Salida Analógica PWM -> Son aquellos que pueden simular señales analógicas de tensiones intermedias entre 0 y 5 voltios empleando una técnica denominada PWM.
PWM (Pulse Width Modulation) o modulación de ancho de pulso es una técnica que consiste en la generación de pulsos de duración variable a una determinada frecuencia para simular una señal de analógica.
Cuanto mayor es la duración del pulso ( Duty Cycle ), mayor es la tensión simulada. Arduino codifica estas longitudes mediante un valor de 8 bits ( 0 – 255 ).
Esta técnica es útil para el control de ciertos dispositivos tales como variar la intensidad lumínica emitida por un Led, o controlar el ángulo de rotación de un servomotor.
- Comunicación empleando protocolos USB, I2C y SPI -> Estos son pines especiales que pueden emplearse para la comunicación con otros dispositivos y controladores.
- Pines de alimentación -> Estos son pines por los que la placa suministra tensión y tierra para los componentes que conectemos a la misma. La tensión suministrada es siempre de 5 Voltios.
Mapa de Pines de Arduino UNO
Los pines situados en la placa Arduino admiten diferentes modalidades de funcionamiento que deben configurarse desde programa para el uso que se desee darles.
Estos pines están organizados físicamente en dos hileras:
Los pines digitales (derecha) son los numerados del D0 a D13 y admiten los siguientes modos de funcionamiento:
- Entradas digitales (0-1)
- Salidas digitales (0-1)
- Salidas analógicas PWM (0-255) exclusivamente en los pines: D3, D5, D6, D9, D10 Y D11.
Los pines analógicos (izquierda) son los numerados como A0 – A5 ( D14 – D19 ) y admiten las siguientes modalidades de funcionamiento:
- Entradas digitales (0-1)
- Entrada analógica 10 bits (0-1023).
- Salidas digitales (0-1)
Consideraciones eléctricas.
Los pines de salida generan una señal de 5V con un suministro máximo de 20-40 miliamperios. No pueden emplearse para alimentar dispositivos con consumos superiores o corremos riesgo de dañar la placa. Para controlar dispositivos con mayores requisitos de consumo tales como motores eléctricos deben emplearse controladores. Estos pueden adquirirse como componentes separados.
La siguiente placa muestra un controlador L298N que permite el control desde Arduino de dos motores eléctricos con tensiones de entre 5 y 35 voltios y consumos de 2 a 3 Amperios.
Los pines de entrada trabajan con intensidades muy bajas por lo que siempre deben emplearse resistencias PULL-UP / PULL-DOWN con un valor medio de 10 KΩ para evitar un cortocircuito y dañar la placa.
El uso de estas resistencias permite controlar el valor lógico leído por un pin de entrada digital según el estado de un pulsador ( abierto / cerrado ).
(*) Arduino integra resistencias PULL-UP que pueden activarse desde software si se desea evitar emplear resistencias externas.
Programación de Arduino
Arduino IDE
La herramienta de desarrollo específica para Arduino es el IDE distribuido por la propia compañía. Este puede descargarse desde la web:
https://www.arduino.cc/en/software
Además de permitir la compilación y carga de los programas en la memoria flash de la placa, el entorno cuenta con las siguientes herramientas:
- Monitor Serie para enviar y recibir señales a través de puerto serie emulado vía USB
- Plotter para generar gráficas de señales enviadas por la placa.
- Repositorio de librerías descargables para el control de multitud de dispositivos:
TinkerCad (https://www.tinkercad.com/dashboard)
Una alternativa interesante que permite el desarrollo y simulación de montajes en Arduino sin necesidad de emplear una placa real es el uso de la plataforma TinkerCad.
Esta plataforma online permite tanto el diseño de circuitos como la simulación programas para verificar su comportamiento y depurar el código antes de cargarlo en una placa real.
mBlock (https://mblock.makeblock.com/en-us/)
Es entorno de desarrollo orientado a la programación visual en bloques ( tipo Scratch ) que también permite el desarrollo de aplicaciones para Arduino:
Si estás interesado en ampliar tus conocimientos en lo relacionado a programación de placas Arduino, Micro::bit o Raspberry visita nuestros cursos de programación, principalmente el Curso de Programación C++ y el Curso Técnico Programador Python