Actualizado a: 15 de abril de 2024
Los microcontroladores, o MCU (MicroController Unit), son pequeños circuitos integrados o chips que integran un computador dentro de ellos, es decir, van más allá que una CPU, incluyendo CPU, memoria y también E/S todo en un mismo chip, aunque hay que diferenciarlos de los SoCs, que incluyen más que eso y son más complejos.
Estos chips son el cerebro de gran cantidad de aparatos que usamos en nuestra vida diaria, y están presentes en más dispositivos de los que podrías imaginar, desde los que tienes en casa, hasta tus vehículos, pasando por máquinas industriales, etc. Por eso, son muy importantes para la actualidad, y vamos a dedicar este artículo a ellos.
Además, hay que destacar que recientemente han ganado bastante popularidad gracias al IoT (Internet of Things o Internet de las cosas), ya que debido a su reducido tamaño, bajo consumo y bajo coste, son ideales para potenciar estos dispositivos conectados sin necesidad de usar unidades de procesamiento más avanzadas. Además, como veremos más adelante, también son geniales para los makers y amantes del DIY electrónico, con proyectos como Arduino, etc.
¿Qué puede hacer un microcontrolador?
Los microcontroladores, MCU, son chips que pueden hacer multitud de cosas, como lo haría una CPU para uso genérico, solo que también integran otras partes de la computadora como la memoria, los buses y el sistema de E/S, por lo que se puede decir que es prácticamente un computador en un solo chip. Sus aplicaciones pueden ser muy diversas, desde controlar temperaturas u otros parámetros a través de sensores, generar algún tipo de salida según el estado de las entradas para realizar acciones, etc. La cantidad de aplicaciones puede ser realmente alta, donde el límite es casi tu imaginación y las capacidades técnicas del propio microcontrolador, ya que suelen tener un tamaño de memoria y un rendimiento limitado.
Por eso, a la hora de seleccionar un microcontrolador hay que tener en cuenta muchos factores, como la frecuencia de funcionamiento del dispositivo, la arquitectura en la que se basa, la memoria disponible, cantidad de pines disponibles, y el tipo y número de componentes externos necesarios. Afortunadamente, existen muchos fabricantes y modelos de microcontroladores diferentes para elegir el mejor para cualquier aplicación que imagines, desde los más simples, hasta los más complejos, pasando por algunos endurecidos para soportar condiciones extremas en el espacio, en artefactos militares, en maquinaria industrial, etc.
¿Qué es un PIC?
La empresa Microchip desarrolló una serie de microcontroladores que se hicieron muy populares en el mercado, como sus famosos PIC. Una familia de dispositivos de diferente tamaño de palabra, como los de 16-bit y que pueden ser muy flexibles al poderse programar y realizar multitud de funciones.
Además, cuentan con un fantástico ecosistema compatible, lo que facilita mucho las cosas de los desarrolladores que los usan, además de los programadores que cuentan con un completo IDE compatible para la programación del código necesario.
Por supuesto, los PIC no es la única arquitectura, también están los AVR, Super-H, SAM, ARM Cortex-M, etc.
Arquitectura y funcionamiento del microcontrolador
A pesar de que puedan parecer complejos al tener todo integrado, como la CPU, la memoria y el sistema de E/S, entre otros, lo cierto es que los microcontroladores son más sencillos que muchas de las CPUs o GPUs avanzadas que se emplean en los computadores modernos. Y es que la CPU que integran estos microcontroladores suelen ser más sencillas, como las CPUs de hace décadas (p.e.: el 8051 de Intel). De hecho, muchos microcontroladores están basados en arquitecturas que hace décadas que se desarrollaron.
Las MCUs pueden implementar también otros elementos adicionales o especial: procesar señales analógicas, controlar hardware externo o tener un temporizador de vigilancia incorporado para reiniciar el chip en caso de que se bloquee debido a una programación defectuosa. La arquitectura del chip puede ser fija o programable, lo que permite reconfigurar el dispositivo para diferentes aplicaciones.
Tampoco necesitan de una gran capacidad de memoria (pueden ser memorias tipo RAM, registros, ROM como la EEPROM, flash, etc.), y la mayoría suele incluir tan solo unos cuantos KBs o MBs de capacidad para albergar los programas necesarios para realizar las funciones. Todos ellos cargados en una serie de instrucciones y datos que generará el IDE a partir del código fuente de programación de alto nivel que suelen usar los desarrolladores.
Tipos de microcontroladores
Como puedes imaginar, existen varios tipos de microcontrolador. Cada uno con diferentes características y capacidades, por lo que las aplicaciones a las que se destinarán serán muy diferentes.
Ya he mencionado anteriormente que los factores más importantes que hay que tener en cuenta al seleccionar un microcontrolador son su frecuencia de funcionamiento y la cantidad de memoria disponible. Los requisitos de la aplicación determinarán la frecuencia de funcionamiento, pero normalmente es mejor seleccionar un dispositivo que funcione lo más lentamente posible sin dejar de cumplir los requisitos, buscando más la estabilidad y fiabilidad debido a las aplicaciones críticas para los que este tipo de chips suele dedicarse.
¿Dónde se utilizan los microcontroladores?
Los microcontroladores se utilizan en una gran variedad de aplicaciones. Como ya he comentado anteriormente, los podrás ver tanto en electrodomésticos, como dentro de aparatos electrónicos de todo tipo, en vehículos de tierra, mar y aire, satélites y naves espaciales, pasando por cohetes, maquinaria industrial, y un largo etc. Algunos ejemplos más conocidos son:
- Automoción: se utilizan en muchas aplicaciones de automoción, para controlar ciertos aspectos electrónicos de coches. Por ejemplo, se utilizan habitualmente en los modernos sistemas de gestión del motor para controlar la inyección de combustible y la sincronización del encendido. También pueden encontrarse en otros sistemas de a bordo, como los sistemas de control de la transmisión.
- Industria: también los podrás encontrar en multitud de maquinaria industrial de todo tipo y de todos los sectores. Se utilizan en una gran variedad de sistemas diferentes, como la supervisión y el control de máquinas, el control de procesos y la adquisición y el análisis de datos.
- Consumo: los microcontroladores se utilizan cada vez más en dispositivos de consumo tales como electrodomésticos, aparatos electrónicos que se usan en casa, etc. Incluso los ordenadores suelen tener varios microcontroladores para realizar diferentes tareas, además de la CPU, GPU, etc.
- Comunicaciones: se usan especialmente en sistemas de comunicaciones por radiofrecuencia o de cualquier otro tipo. Se utilizan tanto en redes informáticas como en equipos de radiocomunicación.
- Automatización del hogar: por supuesto, los microcontroladores son clave en la domótica, para automatizar multitud de tareas cotidianas en los hogares inteligentes. Suelen utilizarse en sensores y otros dispositivos que sirven para controlar y supervisar los sistemas de una casa, control de riego automático, subir o bajar las persianas en función de las condiciones de luz, etc.
- Medicina: los microcontroladores se utilizan en muchas aplicaciones médicas, desde equipos hospitalarios hasta dispositivos médicos implantados que controlen ciertos parámetros biomédicos, marcapasos, etc.
- Militar: y, por supuesto, se utilizan en una gran variedad de aplicaciones militares, como sistemas de armamento, sistemas de control de vuelo y sistemas de sensores.
Ventajas y desventajas de la MCU
Ventajas del uso de microcontroladores
El uso de microcontroladores tiene una serie de ventajas frente a otros dispositivos que también podrían usarse para las mismas aplicaciones. Entre los puntos más destacados se encuentran:
- Requisitos de energía extremadamente bajos, lo que los hace ideales para aplicaciones alimentadas por baterías o sistemas empotrados o embebidos de bajo consumo.
- Tienen tiempos de respuesta rápidos, lo que los hace adecuados para aplicaciones integradas que requieren control en tiempo real.
- Capacidad de ser programados para realizar una amplia variedad de funciones, a diferencia de la electrónica cableada, que solo puede hacer una sola cosa. A menudo son capaces de realizar tareas complejas que serían muy difíciles o imposibles de hacer con componentes discretos. Esto los hace ideales para aplicaciones que requieren soluciones personalizadas.
- Están disponibles en una amplia variedad de paquetes diferentes, lo que facilita la personalización de una aplicación para adaptarse a una necesidad específica.
- Otra gran ventaja de los microcontroladores es su bajo coste.
- Están disponibles en empaquetados pequeños que facilitan su montaje en una gran variedad de aplicaciones.
Limitaciones de los microcontroladores
No obstante, no todo son ventajas en los microcontroladores, también tiene algunas desventajas que también es importante destacar. Por ejemplo:
- Su capacidad de ser programados para realizar muchas funciones diferentes los hace muy versátiles, pero también dificulta la resolución de problemas. Si un circuito no funciona correctamente, puede ser muy difícil averiguar por qué, porque el problema puede deberse a un programa defectuoso o a un problema de hardware.
- Además, las aplicaciones complejas pueden requerir un gran número memoria y un rendimiento de procesamiento superior al de la mayoría de microcontroladores del mercado.
- Su falta de lenguajes de programación de alto nivel, limitando la posibilidad de elección. Dado que procesan instrucciones de lenguaje de máquina de bajo nivel, puede ser difícil realizar cambios en un programa o depurar problemas de hardware.
Microcontroladores en IoT
La simplicidad de los microcontroladores facilita su uso en dispositivos IoT, como enchufes inteligentes, interruptores inteligentes, bombillas inteligentes, sensores de humedad, de humo, y otros dispositivos sencillos. Sin embargo, los dispositivos complejos suelen requerir más memoria y potencia de procesamiento, lo que puede dificultar el encaje de los circuitos necesarios en un dispositivo compacto, y terminando por optar por CPUs y memorias de mayor capacidad en vez de por una MCU.
Además, su versatilidad y todas las ventajas de las que hemos hablado anteriormente, son realmente interesantes para estos dispositivos que no necesitan de capacidades de memoria elevadas o de rendimiento de procesamiento alto. Además, muchos de estos dispositivos dependen de una batería, por lo que estos ICs de bajo consumo son ideales.
¿Qué es Arduino?
Seguro que ya lo conoces. Arduino es una popular placa de desarrollo de código abierto basada en un microcontrolador. Es muy barata, y permite realizar gran cantidad de proyectos de forma sencilla, tanto para aficionados o niños que empiezan con la programación, electrónica o robótica, como para uso más profesional. Todo gracias a su rica comunidad y ecosistema, con IDE completo, numerosas versiones para satisfacer distintas necesidades, accesorios disponibles, etc.
Estas placas Arduino se programan utilizando un lenguaje similar a C/C++ desarrollado por Arduino. Este lenguaje es lo suficientemente sencillo para que los principiantes lo entiendan y utilicen, pero lo suficientemente potente para crear complejos proyectos en su Arduino IDE. La popularidad de Arduino hace que sea fácil encontrar recursos, piezas y otras personas interesadas en los mismos tipos de proyectos. Por tanto, qué mejor forma de comenzar a familiarizarte y usar microcontroladores que con un Arduino…
¿Qué es el IDE de Arduino?
Como ya he dicho anteriormente, Arduino cuenta con un gran IDE (Integrated Development Environment) o entorno de desarrollo integrado. Con este software podrás crear los sketches o códigos fuente de programas para luego cargarlos a la memoria del microcontrolador de Arduino mediante un cable USB conectado a tu PC y así que la MCU pueda ejecutarlos para realizar las funciones que quieras.
Por supuesto, Arduino IDE es de código abierto, es gratuito y está disponible para una gran variedad de plataformas, como macOS, Windows, y Linux. Y no solo podrás programar placas Arduino, también admite programar otros microcontroladores compatibles, como AVR, PIC, etc., así como placas compatibles con Arduino…
Ventajas de Arduino y Arduino IDE
Para finalizar, me gustaría exponer algunos proyectos que puedes crear con esta plataforma Arduino IDE y la placa de desarrollo Arduino. Además, lo puedes hacer usando este lenguaje de programación de alto nivel, y dejando de las manos del IDE la traducción a código máquina (unos y ceros) comprensible por el microcontrolador o también puedes usar lenguaje por bloques para los que no saben programar o para los niños.
Los proyectos pueden ser de lo más variado, desde crear una simple alarma, hasta desarrollar un complejo sistema de riego para un huerto, pasando por sistemas de automatización para el hogar, monitorización de parámetros, automatizar tareas, etc. Como dije al principio, el límite es casi tu imaginación.
Además, existe una gran comunidad dispuesta a ayudarte, además de multitud de complementos y kits especialmente diseñados para Arduino, lo que te facilitará mucho las cosas. No es como empezar con un chip como los PIC o un 8051 y tener que crearlo todo casi de cero…
Ahora ya conoces todo el mundillo de los microcontroladores y sabes cómo puedes empezar desde casa o desde tu centro educativo…