Está en la página 1de 37

Elementos básicos que conforman un

circuito basado en microcontroladores

Ing. Henry Estrada Beltrán


Pilas o baterías
Llamamos fuente de alimentación eléctrica al elemento responsable de generar la
diferencia de potencial necesaria para que fluya la corriente eléctrica por un circuito y
así puedan funcionar los dispositivos conectados a este.
Hay que tener en cuenta que el voltaje que aportan las distintas pilas es un
valor “nominal”: es decir, por ejemplo una pila AA de 1,5 V en realidad al
principio de su vida útil genera unos 1,6 V, rápidamente desciende a 1,5 V y
entonces poco a poco va descendiendo hasta 1 V, momento en el cual la pila
la podemos considerar “gastada”.

Lo mismo pasa con los otros tipos de batería; por ejemplo, una batería LiPo
marcada como “3,7 V/(4,2 V)” indica que inicialmente es capaz de aportar un
voltaje máximo de 4,2 V pero rápidamente desciende a 3,7 V, el cual será su
voltaje medio durante la mayor parte de su vida útil, hasta que finalmente
baje rápidamente hasta los 3 V y automáticamente deje de funcionar.
Además del voltaje generado de una pila/batería (que asumiremos a partir de ahora
siempre constante) hay que conocer otra característica importante: la carga eléctrica
que esta es capaz de almacenar (a veces llamada “capacidad” de la pila/batería). Este
valor se mide en amperios-hora (Ah), o miliamperios-hora (mAh) y nos permite saber
aproximadamente cuánta intensidad de corriente puede aportar la pila/batería durante
un determinado período de tiempo.
Cuando hablamos de conectar pilas “en serie” queremos decir que conectamos
el polo negativo de una con el polo positivo de otra, y así, de tal forma que
finalmente tengamos un polo positivo global por un lado y un polo negativo
global por otro.
La resistencia eléctrica
Un resistor o resistencia es un componente electrónico utilizado simplemente
para añadir, como su nombre indica, una resistencia eléctrica entre dos puntos de
un circuito. De esta manera, y gracias a la Ley de Ohm, podremos distribuir según
nos convenga diferentes tensiones y corrientes a lo largo del circuito.
Diodos LED

Un “Light Emitting Diode” (LED) es, como su nombre indica, un diodo que tiene una
característica peculiar: emite luz cuando la corriente eléctrica lo atraviesa. De
hecho, lo hace de forma proporcional: a más intensidad de corriente que lo
atraviesa, más luz emite.
¿Qué es un microcontrolador?
Un microcontrolador es un circuito integrado o “chip” (es decir, un dispositivo
electrónico que integra en un solo encapsulado un gran número de componentes) que
tiene la característica de ser programable. Es decir, que es capaz de ejecutar de forma
autónoma una serie de instrucciones previamente definidas por nosotros.
Por definición, un microcontrolador (también llamado comúnmente “micro”) ha de
incluir en su interior tres elementos básicos:

CPU (Unidad Central de Proceso): es la parte encargada de ejecutar cada


instrucción y de controlar que dicha ejecución se realice correctamente.
Normalmente, estas instrucciones hacen uso de datos disponibles previamente
(los “datos de entrada”), y generan como resultado otros datos diferentes (los
“datos de salida”), que podrán ser utilizados (o no) por la siguiente instrucción.

Diferentes tipos de memorias: son en general las encargadas de alojar tanto las
instrucciones como los diferentes datos que estas necesitan. De esta manera
posibilitan que toda esta información (instrucciones y datos) esté siempre
disponible para que la CPU pueda acceder y trabajar con ella en las que su
contenido se almacena de forma permanente incluso tras cortes de alimentación
eléctrica (llamadas “persistentes”), y las que su contenido se pierde al dejar de
recibir alimentación (llamadas “volátiles”). Según las características de la
información a guardar, esta se grabará en un tipo u otro de memoria de forma
automática, habitualmente.
Diferentes patillas de E/S (entrada/salida): son las encargadas de comunicar el
microcontrolador con el exterior. En las patillas de entrada del microcontrolador
podremos conectar sensores para que este pueda recibir datos provenientes de su
entorno, y en sus patillas de salida podremos conectar actuadores para que el
microcontrolador pueda enviarles órdenes e así interactuar con el medio físico. De
todas formas, muchas patillas de la mayoría de microcontroladores no son
exclusivamente de entrada o de salida, sino que pueden ser utilizados indistintamente
para ambos propósitos (de ahí el nombre de E/S).
¿Qué es Arduino?

Arduino (http://www.arduino.cc) es en realidad tres cosas:

Una placa hardware libre que incorpora un microcontrolador reprogramable y una serie
de pines-hembra (los cuales están unidos internamente a las patillas de E/S del
microcontrolador) que permiten conectar allí de forma muy sencilla y cómoda diferentes
sensores y actuadores.
Cuando hablamos de “placa hardware” nos estamos refiriendo en concreto a una PCB
(del inglés “printed circuit board”, o sea, placa de circuito impreso). Las PCBs son
superficies fabricadas de un material no conductor (normalmente resinas de fibra de
vidrio reforzada, cerámica o plástico) sobre las cuales aparecen laminadas (“pegadas”)
pistas de material conductor (normalmente cobre). Las PCBs se utilizan para conectar
eléctricamente, a través de los caminos conductores, diferentes componentes
electrónicos soldados a ella. Una PCB es la forma más compacta y estable de construir
un circuito electrónico (en contraposición a una breadboard, perfboard o similar)
pero, al contrario que estas, una vez fabricada, su diseño es bastante difícil de
modificar. Así pues, la placa Arduino no es más que una PCB que implementa un
determinado diseño de circuitería interna.
Arduino UNO

La imagen izquierda muestra la placa Arduino UNO en su variante convencional. La


imagen siguiente muestra la variante llamada Arduino UNO SMD. La única
diferencia entre ambas placas es el encapsulado físico del microcontrolador
incorporado: ambas tienen el mismo modelo, pero la placa convencional lo lleva
montado en formato DIP (“Dual In-line Package”) y la placa SMD lo lleva en
formato SMD (“Surface Mount Device”). Tal como se puede apreciar en ambas
figuras, el formato DIP (visualmente, un gran rectángulo en el centro-inferior-
derecha de la placa) es mucho más grande que el formato SMD (visualmente, un
pequeño cuadrado ubicado en diagonal en el centro-inferior-derecha de la placa).
Una diferencia importante entre el formato SMD y el DIP es que el primero está soldado
a la superficie de la placa (mediante una tecnología llamada precisamente “de montaje
superficial” –en inglés, SMT, de ”surface mount technology” –), mientras que el segundo
está conectado a la placa mediante una serie de patillas metálicas (las cuales son, de
hecho, las patillas de E/S del microcontrolador) que se pueden separar fácilmente y que
permiten la substitución del microcontrolador por otro si fuera necesario.

El microcontrolador que lleva la placa Arduino UNO es el modelo ATmega328P de la


marca Atmel. La “P” del final significa que este chip incorpora la tecnología
Picopower” (propietaria de Atmel), la cual permite un consumo eléctrico
sensiblemente menor comparándolo con el modelo equivalente sin “Picopower”, el
Atmega328 (sin la “P”).

De todas formas, aunque el ATmega328P pueda trabajar a un voltaje menor y


consumir menos corriente que el Atmega328 (especialmente en los modos de
hibernación), ambos modelos son funcionalmente idénticos.
En los microcontroladores que vienen incluidos en la placa Arduino no podemos
usar toda la capacidad de la memoria Flash porque existen 512 bytes (el llamado
“bootloader block”) ocupados ya por un código preprogramado de fábrica (el
llamado “bootloader” o “gestor de arranque”), el cual nos permite usar la placa
Arduino de una forma sencilla y cómoda sin tener que conocer las interioridades
electrónicas más avanzadas del microcontrolador. Los ATmega328P que podamos
adquirir individualmente normalmente no incluyen de fábrica este pequeño
programa.

Este software (también llamado “firmware”, porque es un tipo de software que


raramente se modifica) ocupa, en la placa Arduino UNO, 512 bytes de espacio en un
apartado especial de la memoria Flash, el llamado “bootloader block”, pero en
otros modelos de placas Arduino puede ocupar más (por ejemplo, en el modelo
Leonardo ocupa 4 Kilobytes).

La función de este firmware es gestionar de forma automática el proceso de


grabación en la memoria Flash del programa que queremos que el
microcontrolador ejecute.
En la placa Arduino UNO, el bootloader siempre se ejecuta durante el primer segundo
de cada reinicio. Durante esos instantes, el gestor de arranque se espera a recibir una
serie de instrucciones concretas de parte del entorno de desarrollo para interpretarlas
y realizar la correspondiente carga de un posible programa.
Alimentación de la placa de arduino
El voltaje de funcionamiento de la placa Arduino (incluyendo el
microcontrolador y el resto de componentes) es de 5 V. Podemos obtener esta
alimentación eléctrica de varias maneras:

Conectando la placa Arduino a una fuente externa, tal como un adaptador


AC/DC o una pila. Para el primer caso, la placa dispone de un zócalo donde se
puede enchufar una clavija de 2,1 milímetros de tipo “jack”. Para el segundo,
los cables salientes de los bornes de la pila se pueden conectar a los pines-
hembra marcados como “Vin” y “Gnd” (positivo y negativo respectivamente)
en la zona de la placa marcada con la etiqueta “POWER”.

En ambos casos, la placa está preparada en teoría para recibir una


alimentación de 6 a 20 voltios, aunque, realmente, el rango recomendado de
voltaje de entrada (teniendo en cuenta el deseo de obtener una cierta
estabilidad y seguridad eléctricas en nuestros circuitos) es menor: de 7 a 12
voltios. En cualquier caso, este voltaje de entrada ofrecido por la fuente
externa siempre es rebajado a los 5 V de trabajo mediante un circuito
regulador de tensión que ya viene incorporado dentro de la placa.
El adaptador ha de ser de polaridad “con el positivo en el centro”. Esto quiere
decir que la parte externa del cilindro metálico que forma la clavija de 5,5/2,1 mm
del adaptador ha de ser el borne negativo y el hueco interior del cilindro ha de ser
el borne positivo. Lo más sencillo para estar seguros de que nuestro adaptador es
el adecuado en este sentido es observar si tiene imprimido en algún sitio el
siguiente símbolo:
Conectando la placa Arduino a nuestro computador mediante un cable USB.
Para ello, la placa dispone de un conector USB hembra de tipo B. La alimentación
recibida de esta manera está regulada permanentemente a los 5 V de trabajo y ofrece
un máximo de hasta 500 mA de corriente (por lo tanto, la potencia consumida por la
placa es en ese caso de unos 2,5 W). Si en algún momento por el conector USB pasa
más intensidad de la deseable, la placa Arduino está protegida mediante un polifusible
reseteable que automáticamente rompe la conexión hasta que las condiciones
eléctricas vuelven a la normalidad.
Las entradas y salidas digitales
La placa Arduino dispone de 14 pines-hembra de entradas o salidas (según lo que
convenga) digitales, numeradas desde la 0 hasta la 13. Es aquí donde conectaremos
nuestros sensores para que la placa pueda recibir datos del entorno, y también
donde conectaremos los actuadores para que la placa pueda enviarles las órdenes
pertinentes, además de poder conectar cualquier otro componente que necesite
comunicarse con la placa de alguna manera. A veces a estos pines-hembra digitales
de “propósito general” se les llama pines GPIO (de “General Purpose
Input/Output”).
Todos estos pines-hembra digitales funcionan a 5 V, pueden proveer o recibir un
máximo de 40 mA y disponen de una resistencia “pull-up” interna de entre 20 KΩ y 50
KΩ que inicialmente está desconectada (salvo que nosotros indiquemos lo contrario
mediante programación software).

Hay que tener en cuenta, no obstante, que aunque cada pin individual pueda
proporcionar hasta 40 mA como máximo, en realidad, internamente la placa agrupa los
pines digitales de tal forma que tan solo pueden aportar 100 mA a la vez el conjunto de
los pines nº 0,1,2,3 y 4, y 100 mA más el resto de pines (del 5 al 13). Esto quiere decir
que como mucho podríamos tener 10 pines ofreciendo 20 mA a la vez.
Las entradas analógicas

La placa Arduino dispone de 6 entradas analógicas (en forma de pines hembra


etiquetados como “A0”, “A1”... hasta “A5”) que pueden recibir voltajes dentro de un
rango de valores continuos de entre 0 y 5 V. No obstante, la electrónica de la placa
tan solo puede trabajar con valores digitales, por lo que es necesaria una conversión
previa del valor analógico recibido a un valor digital lo más aproximado posible. Esta
se realiza mediante un circuito conversor analógico/digital incorporado
en la propia placa.
Las salidas analógicas (PWM)
En nuestros proyectos a menudo necesitaremos enviar al entorno señales
analógicas, por ejemplo, para variar progresivamente la velocidad de un motor, la
frecuencia de un sonido emitido por un zumbador o la intensidad con la que luce un
LED. No basta con simples señales digitales: tenemos que generar señales que
varíen
continuamente. La placa Arduino no dispone de pines-hembra de salida analógica
propiamente dichos (porque su sistema electrónico interno no es capaz de manejar
este tipo de señales), sino que utiliza algunos pines-hembra de salida digitales
concretos para “simular” un comportamiento analógico. Los pines-hembra digitales
que son capaces trabajar en este modo no son todos: solo son los marcados con la
etiqueta “PWM”. En concreto para el modelo Arduino UNO son los pines número: 3,
5, 6, 9, 10 y 11.
Sensor shield
Además de las placas Arduino propiamente dichas, también existen los
llamados “shields”. Un “shield” (en inglés significa “escudo”) no es más que una
placa de circuito impreso que se coloca en la parte superior de una placa
Arduino y se conecta a ella mediante el acoplamiento de sus pines sin
necesidad de ningún cable.
Su función es actuar como placas supletorias, ampliando las capacidades y
complementando la funcionalidad de la placa Arduino base de una forma más
compacta y estable.
Normalmente, los shields comparten las líneas GND, 5 V (o 3V3), RESET y AREF con
la placa Arduino, y además suelen monopolizar el uso de algunos pines de
entrada/salida para su propia comunicación con ella, por lo que estos quedan
“inutilizados” para cualquier otro uso.

Por otro lado, también hay que tener en cuenta los requerimientos de
alimentación eléctrica que necesitan los shields. Ya sabemos que una placa
Arduino recibe alrededor de 500 mA (ya sea mediante conexión USB o mediante
conexión jack externa), por lo que la corriente que queda para el funcionamiento
de un posible shields es pequeña. Ejemplos de shields que consumen mucho (de
hasta 300 mA) son los que tienen pantallas LCD o los que proporcionan
conectividad Wi-Fi. También hay que tener en cuenta si un shield determinado
necesita una tensión de 3,3 V.
Motor Shield (Puente H)
Este shield incorpora el chip L298N del fabricante STMicroelectronics. Este
chip está diseñado para controlar componentes que contienen inductores
–”bobinas”– en su estructura interna, tales como relés, solenoides, motores
de corriente continua –DC– o motores paso a paso – “steppers” –, entre
otros.
Este shield tiene dos canales separados, etiquetados como “A” y “B”, en forma de
bornes de tornillo para conectar allí los motores. Cada canal por separado puede
manejar un motor DC independiente, pero también se pueden combinar para
manejar entre los dos un único motor paso a paso. Si estamos en el primer caso (es
decir, si queremos manejar uno o dos motores DC), podemos emplear determinados
pines-hembra de entrada/salida para controlar y monitorizar el motor DC conectado
a cada canal.
Motores DC
Los motores DC (del inglés “Direct Current”, corriente continua) son los más simples.
Tienen dos terminales; cuando uno se conecta a una fuente de alimentación continua
y el otro se conecta a tierra el motor gira en una dirección. Si se intercambia la
conexión de los terminales (el que estaba conectado a tierra pasa a estar conectado a
la fuente, y viceversa), el motor girará en la dirección contraria. Cuanta más
intensidad de corriente atraviese el motor (es decir, cuanto más voltaje se le aplique,
si suponemos su resistencia constante), girará a más velocidad de una forma casi
linealmente proporcional.
En general, los motores DC realizan un consumo eléctrico bastante elevado para
conseguir la velocidad de giro adecuada. Esto quiere decir que muchas veces el pin de
“5 V” de nuestra placa Arduino no será suficiente, y el motor deberá ser alimentado a
partir de una fuente externa, o bien mediante un amplificador de corriente (como un
transistor).

Usualmente, los motores DC son capaces de girar hasta varios millares de rpms. No
obstante, no tienen un torque demasiado elevado. Si se desea aumentar este, se
puede conectar al motor un conjunto de engranajes (lo que se llama un “reductor” o
“caja reductora”); el precio a pagar es la reducción de la velocidad máxima de giro.
Los motores que incorporan este sistema son llamados motores “gearhead” o
“gearmotors”.
Un gran inconveniente de los motores DC es que, aunque podemos controlar
fácilmente la velocidad del motor, el sentido del movimiento siempre es el mismo. Ya
hemos dicho que cambiar el sentido del movimiento del motor DC (ya sea rotativo o
lineal) implica alternar la ubicación de los terminales de la fuente de alimentación, cosa
que es bastante poco práctica en la realidad. Para conseguir esto de una forma sencilla,
lo que deberemos hacer es conectar el motor a un conjunto de transistores (o relés) –
en todo caso, cuatro como mínimo– dispuestos de una determinada forma
comúnmente llamada “puente H”.
El sensor ultrasónico HC-SR04

Dispone de cuatro pines: “VCC” (se ha de conectar a una fuente de 5 V), “Trig”
(responsable de enviar el pulso ultrasónico; por tanto, se deberá conectar a un
pin de salida digital de la placa Arduino), “Echo” (responsable de recibir el eco de
ese pulso; luego se deberá conectar a un pin de entrada digital de la placa
Arduino) y “GND” (a tierra).
Tiene un rango de distancias sensible entre 3 cm y 3 m con una precisión de 3 mm.
Tras emitir por el pin “trigger” una señal de 10 μs para iniciar el envío de la señal
ultrasónica, espera a detectar el eco mediante la detección del fin de la señal HIGH
recibida por el pin “echo”.
Módulo Bluetooth
Cada uno de los dispositivos que se identifican vía BlueTooth presentan una
dirección única de 48 bits y además un nombre de dispositivo que nos sirva para
identificarlo cómodamente a los humanos. Por eso cuando configuras tu móvil
puedes especificar un nombre propio que será el que mostraras a los demás
cuando busquen tu teléfono en la inmediaciones.

La dirección propia también se puede identificar pero lógicamente, es un poco


menos cómoda y tiene menos utilidad. Tampoco es raro establecer un protocolo
IP sobre transporte BlueTooth, con lo que además de su identificación interna
BlueTooth (Equivalente al MAC Ethernet) dispondrá de una dirección IP para
conectarse a Internet.
Para investigar…
• ¿Cómo funciona el protocolo bluetooth?
• ¿Como se realiza el conexionado de los
motores con el L298N y la tarjeta de arduino?
• ¿Qué otras tecnologías inalámbricas se
pueden utilizar para controlar procesos
basados en microcontroladores?
• ¿Qué son lo microcontroladores AVR?
• ¿Qué significa que algunas de las salidas del
arduino sean pwm?¿que es pwm?

También podría gustarte