馃挕 ARDUINO: Salidas Digitales



Recordaremos que una se帽al digital puede variar 煤nicamente entre dos valores, los cuales denominamos -Vcc y +Vcc. Una salida digital nos permite variar su tensi贸n a uno de estos dos valores mediante programaci贸n, y por tanto nos permite realizar acciones con el entorno.

En Arduino, en general, los voltajes -Vcc y +Vcc corresponden con 0V (GND) y 5V. Sin embargo, algunos modelos de Arduino operan a 3.3V, como por ejemplo algunos Mini, Nano, y las placas basadas en procesadores ARM como Arduino Due.

Todos los pines digitales de Arduino pueden actuar como entradas y salidas digitales (por ello se denominan I/O, input y output). 

El n煤mero exacto de salidas digitales depende del modelo de placa que estemos utilizando. En resumen, Arduino Uno y Nano tienen 22 pines que podemos utilizar como salidas digitales, Arduino Mini tiene 20, y tenemos hasta 70 salidas digitales en el modelo Mega. 脡stas cifras son m谩s que respetables, superiores a la mayor铆a de automatismos de tipo industrial

Intensidad m谩xima de una salida digital

En general, las salidas digitales en aut贸matas no est谩n destinadas en proporcionar potencia, sino para interactuar con electr贸nica u otros aut贸matas.

La intensidad m谩xima que puede entregar un pin es de 40 mA, si bien el valor recomendado es de 20mA. Adem谩s, existen restricciones adicionales en cuanto a la corriente, dado que la suma total de todas las salidas debe de ser inferior a 300 mA, y a su vez no pueden superar 150 mA por puerto.

Esta potencia es suficiente para encender un led, un peque帽o servomotor de 9g, o alg煤n sensor, pero no es suficiente para alimentar mayores cargas. Si queremos mover una carga superior, como un motor de corriente continua, un servo, o incluso un rel茅, tendremos que emplear una etapa de amplificaci贸n, como un transistor BJT.

No es conveniente forzar los l铆mites de potencia de forma prolongada, ya que la placa podr铆a calentarse y da帽arse. El l铆mite de 20 mA por salida significa que, para un voltaje de 5V, la resistencia del dispositivo que queramos alimentar no debe ser inferior a 200 ohms.

Montaje

Para este tutorial no es necesario ning煤n montaje. Sin embargo, podemos verificar el correcto funcionamiento de las salidas digitales simplemente midiendo con un volt铆metro la tensi贸n entre la salida digital y GND.

 
 

C贸digo

El siguiente c贸digo es una modificaci贸n del archivo de ejemplo Blink que dispone el IDE de Arduino como ejemplo, 茅ste enciende y apaga una salida digital.


const int pin = 2;
 
void setup() {
  Serial.begin(9600);    //iniciar puerto serie
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop(){
  digitalWrite(pin, HIGH);   // poner el Pin en HIGH
  delay(1000);               // esperar un segundo
  digitalWrite(pin, LOW);    // poner el Pin en LOW
  delay(1000);               // esperar un segundo
}

El siguiente c贸digo, recibe un caracter a trav茅s del puerto serie para encender o apagar una se帽al digital desde el ordenador.

A trav茅s del puerto serie enviamos un caracter. Si escribimos 0 la salida se apaga, y si escribimos 1 se enciende.


const int pin = 2;
int option;
 
void setup(){
  Serial.begin(9600);
  pinMode(pin, OUTPUT); 
}
 
void loop(){
  //si existe informaci贸n pendiente
  if (Serial.available()>0){
    //leeemos la opcion
    char option = Serial.read();
    if (option == '0' )  //si el valor es 0
    {
         digitalWrite(pin, LOW);  //apagamos el pin
    }
    else if (option == '1' )
    {
         digitalWrite(pin, HIGH;  //encendemos el pin
    }
    delay(200);
  }
}