­čĺí 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);
  }
}