Salidas Digitales en Arduino


Primero, vamos a recordar que una salida digital es una señal binaria, esto quiere decir que toma únicamente 2 valores. Y esos valores en el mundo de los microcontroladores o de electrónica digital son 0V (GND) y 5V.





Estos dos valores los conoceremos como:
  • 0 – Cero Lógico – Falso – 0V
  • 1 – Uno Lógico – Verdadero – 5V
Sin embargo, algunos modelos de ARDUINO y Microcontroladores en general operan a 3.3V (en lugar de 5V), tales como las placas basadas en procesadores ARM (Arduino Due) o como el Arduino Nano o Mini.
Como vimos en el post de Introducción Pasado (Click aqui para ver la Introducción a Arduino) todos los pines del puerto I/O (Input – Output) pueden configurarse para ser Salidas Digitales en Arduino,

Pines Digitales Arduino Uno

Los puertos digitales del Arduino UNO van desde el PIN 0 hasta el PIN 13, como lo vemos en esta figura:

Pinout Arduino
La única recomendación es que si usas los PINES 0 y 1 como salidas o entradas digitales, deberás desconectar el circuito que estes haciendo en el momento de hacer la programación del Arduino, ya que estos dos pines también son usado para la comunicación con el computador, por lo tanto si se usan como entradas o salidas digitales debe desconectarse antes el circuito para que permita ser programado.

Para que Sirven las Salidas Digitales

Con las salidas digitales Arduino Mega, Uno, Leonardo o el que sea, podremos interactuar con el mundo fisico de miles de formas, porque como yá lo vimos, podemos mandar una señal de dos estados (1 o 0) es decir, prender o apagar.
Entonces con esto podremos encender y apagar luces, leds, motores, relés, actuadores, etc.

Intensidad de una Salida Digital

El voltaje de salida digital de Arduino Uno, Mega o cualquier otro que trabaje a 5V de alimentación es exactamente ese mismo valor de alimentación (5V).
La intensidad o corriente máxima que puede entregar un pin de salida digital en arduino es de 40mA, pero como valor recomendado se establece que sea a 20 mA, donde la suma de todas las potencias en un solo puerto debe ser inferior a los 300 mA.

Declarar Pines de Salida en Arduino

Vamos a ver que para poder declarar un pin de salida en Arduino es muy fácil, e incluso la misma función nos va a servir para poder declarar las entradas digitales de Arduino. O sea es una función que sirve para las entradas y salidas Arduino.
Para programar una salida digital, debemos hacerlo dentro de la función “void setup” y vamos a utilizar la siguiente instrucción
pinMode(PIN Digital,OUTPUT);
Donde dice “Pin Digital” debemos sustituirlo por el PIN del Arduino que nosotros queremos que sea una salida.

Ejemplo

Vamos a suponer que queremos configurar el PIN 5 del Arduino como Salida. Debemos utilizar la instrucción pinMode dentro del void setup de la siguiente forma:
  • void setup() {
    1. pinMode(5,OUTPUT); //Configura el PIN 5 como SALIDA DIGITAL
    }

    Otra forma de programar la Salida Digital de Arduino es declarando un Nombre para el PIN, en este caso el PIN 5. Es decir podemos bautizar nuestro PIN con el nombre que nosotros queramos, veamos como se hace:
    pinMode dentro del void setup de la siguiente forma:



    byte Terminal_5 = 5; //Bautizo el PIN 5 con el nombre "Terminal_5"
    void setup() {
    pinMode(Terminal_5,OUTPUT); //Configura el PIN 5 como SALIDA DIGITAL
    }
    Vemos que antes del SETUP, en la zona de Declaraciones, hemos declarado una variable de tipo “byte” llamada “Terminal_5” y le hemos asignado el valor de 5. Con eso podemos utilizar ese nombre en cualquier parte del programa que necesitemos alguna cosa del PIN 5. Note que muchos tutoriales de Arduino colocan “int” en lugar de “byte”, cualquira de los dos tipos de Variable Sirven. En el caso de nombrar pines del Arduino es más que suficiente utilizar el tipo “byte” que almacena valores enteros de 0 a 255.

    Utilizar las Salidas Digitales en Arduino

    Una vez hemos configurado los pines que queremos establecer como salidas, es hora de utilizar estas salidas, para eso vamos a utilizar una segunda función, la cual deberemos llamar dentro del “void loop”

    void setup() {
    digitalWrite(Pin de Salida,HIGH); //Energiza la SALIDA DIGITAL (5V)
    digitalWrite(Pin de Salida,LOW);  //DesEnergiza la SALIDA DIGITAL (0V)
    }
    Aqui la variable “Pin de Salida” la sustituimos por el pin del Arduino que queramos energizar (5V) o desenergizar (0V). En otras palabras estamos escribiendo en la salida digital del arduino si queremos que se active o desactive, encienda o apague.

    Ejemplo

    Vamos a suponer que queremos activar salida digital de Arduino en el PIN 5. Debemos utilizar la instrucción digitalWrite dentro del void loop usando cualquiera de las siguientes formas:

    void loop() {
    digitalWrite(5,HIGH); //Activa o Energiza el PIN 5
    }

    byte Terminal_5 = 5; //Bautizo el PIN 5 con el nombre "Terminal_5"
    void loop() {
    digitalWrite(Terminal_5,HIGH); //Activa o Energiza el PIN 5
    }

    byte Terminal_5 = 5; //Bautizo el PIN 5 con el nombre "Terminal_5"
    void loop() {
    digitalWrite(Terminal_5,1); //Activa o Energiza el PIN 5
    }

    void loop() {
    digitalWrite(5,1); //Activa o Energiza el PIN 5
    }

    Note que podemos Usar directamente el 5 dentro de la función, o podemos bautizar el PIN y usarlo. Note también que la palabra “HIGH” que significa alta o Activar salida digital Arduino, usted también puede sustituirla por el numero “1” que es exactamente lo mismo.
    Ahora para Desactivar o Desenergizar el PIN 5 hacemos exactamente lo mismo de las instrucciones anteriores, solo que en lugar de Colocar “HIGH” colocamos “LOW” o si lo deseas puedes colocar “0” (cero), desactivar salida digital arduino.

    Salidas Digitales en Arduino UNO – Ejemplo

    Vamos a Hacer una secuencia Ritmica de LEDs con el Arduino, para entrenar lo aprendido en este POST y pongamos en práctica la configuración de las salidas digitales del Arduino.
    El esquematico en la Board de la Secuencia de Luces con Arduino es:

    Secuencia de LEDS con ARDUINO

    En este programa vamos a Utilizar 8 LEDs, 8 Resistencias para hacer nuestra secuencia ritmica de LEDs con ARDUINO, el objetivo aqui será colocar los PINES desde el 2 hasta el 9 como SALIDAS. Y hacer una secuencia usando las dos funciones que vimos aqui: pinMode y digitalWrite.
    El Programa de ARDUINO de este ejemplo puedes descargarlo a Continuación. Para ver el código basta solo con compartir el contenido de este post con cualquiera de los siguientes 3 botones, de esa forma ayudas a este sitio web a que continue aportando más contenido de calidad y totalmente gratuito.


    //Delcaración de Los Pines de los LED
    byte led1=2;
    byte led2=3;
    byte led3=4;
    byte led4=5;
    byte led5=6;
    byte led6=7;
    byte led7=8;
    byte led8=9;
    int i; //Variable del Contador del FOR
    long vel=100; //Velocidad de las Luces
    void setup() {
    // put your setup code here, to run once:
    //Configura los 8 Pines digitales como SALIDAS
    for(i=led1;i<=led8;i++){
    pinMode(i,OUTPUT);
    }
    }
    void loop() {
    // put your main code here, to run repeatedly:
    //Enciende los LED de Izquierda a Derecha
    for(i=led1;i<=led8;i++){
    digitalWrite(i,HIGH); //Enciende el LED
    delay(vel);           //Retardo (Espera el valor de vel)
    }
    //Apaga los LED de Derecha a Izquierda
    for(i=9;i>=2;i--){
    digitalWrite(i,LOW); //Apaga el LED
    delay(vel);          //Retardo (Espera el valor de vel)
    }
    //Enciende los dos LEDs del Medio
    digitalWrite(led4,1);
    digitalWrite(led5,1);
    delay(1000);     //Retardo de 1000ms (1 segundo)
    //Enciende los LEDs desde el MEDIO hacia los LADOS
    for(i=6;i<=8;i++){
    digitalWrite(i,LOW);
    digitalWrite(i+1,HIGH);
    digitalWrite(11-i,LOW);
    digitalWrite(10-i,HIGH);
    delay(vel*2);  //Espera el Doble del valor de vel
    }
    }


    No hay comentarios:

    Publicar un comentario