Learning   Examples | Foundations | Hacking | Links

Pines Digitales

Los pines del Arduino pueden configurarse como entradas o salidas. Este documento explica el funcionamiento de los pines en esos modos. Si bien el título de este documento se refiere a los pines digitales, es importante señalar que la gran mayoría de los pines analógicos de Arduino (Atmega), pueden configurarse y utilizarse, exactamente de la misma manera que los pines digitales.

Propiedades de los Pines Configurados como Entrada (INPUT)

Los pines de Arduino (Atmega) por defecto son de entrada, por lo que no es necesario configuraros explícitamente como entradas con pinMode(). Se dice que los pines configurados como entradas están en estado de alta impedancia. Una forma de explicar esto es que los terminales de entrada hacen demandas extremadamente pequeñas en el circuito que están muestreando, se dice que equivale a una resistencia en serie de 100 megaohmio frente al pin. Esto significa que se necesita muy poca corriente para pasar el pin de entrada de un estado a otro, y puede hacer posible el uso de los pines para tareas como la utilización de un sensor capacitivo al tacto, la lectura de un LED como un fotodiodo, o la lectura de un sensor analógico con un esquema como el RCTime.

Esto también significa sin embargo, que los terminales de entrada sin conectar nada a ellos, o con los cables conectados a ellos sin estar conectados a otros circuitos, reflejarán cambios aparentemente aleatorios en el estado de pin, recogiendo el ruido eléctrico del entorno, o el acoplamiento capacitivo del estado de un pin próximo.

Resistencias Pullup

A menudo es útil para colocar un pin de entrada en un estado conocido si no hay un estado de entrada. Puede hacerse añadiendo una resistencia pull-up (a +5 V), o una resistencia pull-down (resistencia a tierra) en la entrada, 10K suele ser un valor muy común.

También hay resistencias pullup de 20K conveniente integradas en el chip Atmega a las que se puede acceder desde el software. Estos resistencias pull-up incorporadas son accedidas de la siguiente manera.

pinMode(pin, INPUT);           // pone el pin como entrada
digitalWrite(pin, HIGH);       // activa la resistencia pullup

Ten en cuenta que las resistencias pull-up proporcionan suficiente corriente para dar una luz tenue con un LED conectado a un pin que se ha configurado como entrada. Si el LED de un proyecto parece estar funcionando pero muy tenuemente, es posible que sea esto lo que está pasando, y el programador ha olvidado usar pinMode() para ajustar los pines como salidas.

También debes tener en cuenta que las resistencias pull-up son controladas por los mismos registros (posiciones de memoria interna del chip) que controlan si un pin está alto (HIGH) o bajo (LOW). Por consiguiente, un pin que se configura para tener las resistencias pullup activadas cuando esta configurado como entrada, debe tener el pin a alto (HIGH) si el pin es cambiado como salida (OUTPUT) con pinMode(). Esto funciona en la otra dirección también, y un pin de salida que queda en un estado alto tendrá las resistencias pull-up activas, si cambia a entrada (INPUT) con pinMode().

NOTA: El pin Digital 13 es más difícil de usar que otros pines digitales porque tiene un LED y una resistencia asociada soldados a la placa en la mayoría de las placas. Si activa la resistencia pull-up 20k del interior, se pondra en alrededor de 1,7 V en lugar de los 5V que se esperan debido a que el LED integrado y la resistencia en serie bajan el nivel del voltaje, lo que se traduce en que siempre retornará bajo (LOW). Si estás obligado a usar el pin 13 como entrada digital, utiliza una resistencia pulldown externa.

Propedades de los Pines Configurados com salida (OUTPUT )

Los pines configurados como salida (OUTPUT) con pinMode() se dice que están en un estado de baja impedancia. Esto significa que puede proporcionar una cantidad sustancial de corriente a otros circuitos. Los pines del Atmega pueden proporcionar corriente positiva o proporcionar corriente negativa de hasta 40 mA (miliamperios) a otros dispositivos o circuitos. Esta es suficiente corriente para la brillante luz de un LED (no te olvides de la resistencia en serie), o para utilizar muchos sensores por ejemplo, pero no es corriente suficiente para utilizar la mayoría de relés, solenoides o motores.

Los cortocircuitos en los pines de Arduino, o intentos de extraer mucha corriente de ellos, pueden dañar o destruir los transistores de salida en el pin, o dañar completamente el chip Atmega. A menudo, esto se traducirá en un pin del microcontrolador "muerto", pero el resto del chip seguirá funcionando adecuadamente. Por esta razón es buena idea conectar los pines de salida a otros dispositivos con resistencias de 470Ω o 1k, limitando la corriente máxima que desde los pines es requerida para una aplicación particular.

Volver a Fundamentos

Ver También

Share