En esta entrada comenzaremos a entender el funcionamiento de nuestro Arduino y programaremos nuestro primer ejemplo. Y para eso vamos a aprender que es y como usar las salidas digitales en Arduino y al final de este post podrás descargar totalmente gratis el código de implementación de las salidas digitales.
Que son 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, y es justamente lo que vamos a hacer hoy.
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:
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.
Quizas te interese algunos productos de Arduino en Amazon a un mu buen precio.
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() { 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 loop() { 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:
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.
Lista de Materiales
- Cualquier Placa de ARDUINO
- 8 leds de cualquier color
- 8 Resistencias de 220ohms para los leds
- 1 Protoboard
- Cables de conexión
Código y Simulación
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.
Pudes ver la simulación de este circuito en Tinkercad si lo deseas Dando CLICK AQUÍ y seleccionando el proyecto de Salidas Digitales con Arduino. Debes tener una cuenta en tinkercad para poder ver los esquemas.
[sociallocker id=948]
//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 } }
[/sociallocker]
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.