Componentes de un microcontrolador
Dejando de lado el microprocesador y la memoria que definirán gran
parte de la potencialidad de un PIC, las entradas/salidas de éste
determinarán en gran medida su funcionalidad.
Centrándonos en las placas Arduino UNO R3 y compatibles (como la placa
UNO con chip CH340) por su sencillez, robustez, documentación y bajo
coste, éstas disponen, a rasgos generales, de los siguientes pines de
entrada/salida.
POWER (alimentación)
La placa trabaja a 5V, pudiéndo ser alimentada con tensiones de 5 a 20
V (recomendado de 7 a 12V). Para ello, dispone internamente del
regulador LM7805.
Disponemos de entradas/salidas de 5V, una salida de 3,3V (corriente
máxima de 50 mA) y la entrada/salida Vin que puede emplearse como
salida de voltaje cuando el PIC se está alimentando a través del jack
de alimentación externa. En este caso el voltaje presente en Vin será
aquel que estemos aplicando en el jack, restando la caída de tensión en
el diodo de protección de inversión de polaridad (alrededor de 0.7
volts). No se recomienda conectar cargas mayores a 1000 mA en este pin,
ya que podemos dañar el diodo de protección.
En todos los casos, el polo negativo de la alimentación estará conectado a cualquiera de los pines etiquetados como GND.
ANALOG IN (entradas analógicas)
Disponemos de 6 entradas analógicas (pines serigrafiados con los
caracteres A0 a A5) que pueden tomar cualquier valor dentro de un
intervalo 0 y 5 V.
La precisión de una entrada analógica depende de su conversor analógico
digital (ADC), que es su componente fundamental. Dicho ADC es el
dispositivo que convierte una medición analógica en una medición
digital codificada con un número N de bits.
Mediante la conversión de la medida analógica a digital, la medida se
clasifica dentro de 2^N niveles, que definen 2^N-1 intervalos. El ancho
de este intervalo medido en mV es la precisión de la señal. Cuanto
mayor sea el número de bits, mayor será el número de intervalos, menor
será el ancho del intervalo, y por tanto mejor la precisión de la
medición. En el caso de PIC que nos ocupa, las entradas analógicas
disponen de 10 bits de resolución, lo que proporciona 2^10=1024 niveles
digitales, lo que a 5V supone detectar variaciones en el nivel de la
señal de entrada de casi 5 mV.
En caso de necesitar leer una entrada de nivel de tensión superior, por
ejemplo de 10V, debemos realizar una adaptación de tensión. La forma
mejor de realizar la adaptación es emplear un simple divisor de
tensión.
DIGITAL PWM (GPIOs, entradas/salidas de propósito general)
En nuestro PIC disponemos de 14 pines digitales serigrafiados con los
números del 0 al 13. Estos pines son utilizados en modo digital para
entradas y salidas, incluso algunos de ellos, serigrafiados con el
símbolo de alterna (~), pueden ser también utilizados como pines de
salida en modo PWM (pulse-width modulation, modulación por ancho de
pulso).
Los pines de salida han sido diseñados para entregar señales de
voltaje, siendo aproximadamente 40mA el máximo de corriente que puede
entregar. Las cargas que se empleen no deben superar los 5V ni consumir
más de 40mA.
Los pines de salida en modo PWM permiten establecer una salida en
función al periodo de la señal. Uno de sus usos más frecuentes es el
control del valor promedio de un voltaje de una señal cuadrada.
En su empleo como pines de entrada, el valor inferior de tensión se
asocia con un valor lógico LOW o 0, mientras que el valor superior se
asocia con HIGH o 1 lógico. En nuestro PIC 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 el PIC devolverá una lectura LOW, y si medimos un valor entre
2,5V y 5V, devolverá una lectura HIGH.
Para utilizar los GPIOs como entradas digitales, necesitamos emplear
una configuración que permita distinguir correctamente el voltaje en la
entrada con objeto de evitar interferencias o perturbaciones que
produzcan cambios de estado. Las resistencias pull-up y pull-down nos
permiten establecer voltajes de reposo para asegurar una correcta
lectura.
Podemos utilizar resistencias con valores entre 1KΩ y 10KΩ. Sin
embargo, cuanto mayor sea la resistencia, más lento es el pin en
responder a los cambios de voltaje. Por ello es más común encontrar
valores de pull-up entre 1KΩ y 4,7KΩ.
Hay resistencias pull-up de 20KΩ integradas en el chip del PIC. Para su
empleo simplemente hay que emplear una instrucción en su programación.
Esto resulta muy sencillo y nos evitará tener que añadir más elementos
a nuestro circuito.