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.

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.

Pines


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.

Pines analógicos


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.

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).

Pines digitales


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.

Pull-up y pull-down


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.