Entradas salidas digitales Arduino


Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr1Share on LinkedIn0

Entradas salidas digitales ArduinoEntradas salidas digitales Arduino, para ver el uso de los pines entradas salidas digitales Arduino se utilizarán como placas de prueba el arduino uno y el arduino mega, el arduino uno tiene 12 pines que pueden ser utilizados como entradas salidas digitales arduino y están numeradas del 2 al 13, los pines 0 y 1 son utilizados para la comunicación serial, el arduino mega tiene 51 pines que pueden ser utilizados como entradas salidas digitales arduino y están numeradas del 2 al 13, y del 22 al 53 los pines 0 y 1 y del 14 al 21 son utilizados para comunicaciónes, algunos de estos pines pueden también cumplir algunas otras funciones pero en esta ocasión solo se comentará sobre su utilización como pines de entradas salidas digitales arduino.

La programación de los pines como entradas salidas digitales arduino será realizada en el software ARDUINO, este lenguaje está basado en C/C++, además como los microcontroladores que forman parte del arduino son microcontroladores AVR, los  pines del arduino como entradas salidas digitales también puede ser programado mediante el lenguaje C/C++ utilizado para programar los microcontroladores AVR, se verán algunos ejemplos de como realizar esto.

En esta sección se verán ejemplos sencillos para comprender como programar los pines del arduino como entradas salidas digitales, es una sección de aprendizaje, ejemplos mas complejos serán publicados en la sección llamada proyectos arduino.

Entradas salidas digitales Arduino

Para elegir si un pin será utilizado como una entrada o salida digital el arduino tiene una función llamada

pinMode() cuya forma general se puede ver así:

pinMode(numero_de_pin , como_entrada_o_como_salida_digital)

para el arduino uno numero_de_pin puede ser de 0 a 13, mientras que para el arduino mega puede ser de 0 a 53, para indicarle si será una entrada digital será mediante la palabra reservada INPUT y para indicarle que será una salida digital será mediante la palabra reservada OUTPUT.

Por ejemplo si se quiere utilizar el pin 37 del arduino mega como entrada digital, esto se hará así:

pinMode(37,INPUT);//pin 37 como entrada digital

y si se quiere que sea una salida digital será así:

pinMode(37,OUTPUT);//pin 37 como  salida digital

En lugar de utilizar los números directamente se pueden utilizar variables, para ello hay que declaralas previamente por ejemplo si en el pin 37 es usado como una salida digital y en el se conecta un led, se puede hacer algo así:

byte led=37;//a la variable led de tipo byte que es de 8 bits se le asigna el valor de 37

pinMode(led,OUTPUT);//pin 37 como salida digital

Los pines del arduino cuentan con unas resistencias internas pull up, lo que es una ventaja ya que evita estar utilizando resistencias externas cuando un pin del arduido es declarado como entrada digital, esta resistencia pull up se activará mediante la palabra reservada INPUT_PULLUP, la que es utilizada dentro de la función pinMode, por ejemplo si se quiere utilizar el pin 37 como entrada digital y a la vez activar su resistencia interna pull up, sería así:

pinMode(37,INPUT_PULLUP);//pin 37 como entrada digital con su resistencia pull up activada

Salidas digitales Arduino

Cuando los pines son declarados como salidas digitales mediante la función pinMode(pin,OUTPUT), a estos pines se les puede enviar bajos o altos, ceros o unos, para realizar esto el arduino cuenta con la función.

digitalWrite() cuya forma general se puede ver  así:

digitalWrite(numero_de_pin , bajo_o_alto)

Para indicarle que al pin elegido como salida digital se le enviará un bajo será con la palabra reservada LOW aunque también se puede usar 0, y para indicarle que se le enviará un alto será con la palabra reservada HIGH o también mediante un 1.

Por ejemplo si se usa el pin 7 del arduino uno como una salida digital sería algo así:

digitalWrite(7,LOW);//por el pin 7 se envía un bajo o un 0

digitalWrite(7,HIGH);//por el pin 7 se envía un alto o un 1

En lugar del número también se pueden utilizar variables.

Entradas digitales Arduino

Cuando los pines son declarados como entradas digitales mediante la función pinMode(pin,INPUT), será necesario conocer si a estos pines les esta llegando bajos o altos, ceros o unos, para realizar esto el arduino cuenta con la función.

digitalRead() cuya forma general se puede ver  así:

digitalRead(numero_de_pin)

Por ejemplo si se usa el pin 13 del arduino uno como una entrada digital para conocer que le está llegando a este pin sería algo así:

estado=digitalRead(13);//se lee el estado del pin 13 y se guarda en la variable estado

En lugar del número también se pueden utilizar variables.

Entradas salidas digitales Arduino Ejemplos

Entradas salidas digitales Arduino Ejemplo 1

Este es el ejemplo básico con el que la gran mayoría empezamos a programar microcontroladores, en este caso se hará parpadear un led cada cierto intervalo de tiempo, se utilizará el arduino uno, se conectará a su pin 2 un led, en este caso el pin 2 será utilizado como una salida digital.

Dentro de la sección void setup() se declara el pin a ser utilizado como salida digital con la función pinMode(), ya que esto solo en necesario declararlo una vez, para el ejemplo será

pinMode(2,OUTPUT);//el pin 2 del arduino uno como salida digital

Dentro de la sección void loop() se declara el código que se quiere que se repita, esto es el ciclo del programa, como en el pin 2 se conectará un led para que parpadee, eso quiere decir que un tiempo estará encendido y un tiempo estará apagado, para  ello se utilizará la función digitalWrite()

digitalWrite(2,HIGH);//led en el pin 2 encendido

digitalWrite(2,LOW);//led en el pin 2 apagado

para los controles de tiempos en milisegundos en el software arduino se tiene la función

delay(tiempo);

donde tiempo puede ser un número o una variable.

El circuito utilizado es el siguiente:

Entradas salidas digitales Arduino ejemplo1 circuito.JPG

El código utilizando es software arduino para el ejemplo 1 es el siguiente:

Entradas salidas digitales Arduino Ejemplo 2

En este caso se utilizarán los pines 2, 3 y 4 del arduino uno como salidas digitales, se simulará un semáforo con  leds conectados a estos tres pines.

Se utilizará la función pinMode() para configurar los pines 2, 3 y 4 como salidas digitales, la función digitalWrite() para poner las salidas de estos pines a 0 o a 1, y la función delay() para los intervalos de tiempo necesarios para simular el semáforo.

El circuito es el  siguiente:

Entradas salidas digitales Arduino ejemplo 2 circuito

El código utilizando es software arduino para el ejemplo 2 es el siguiente:

Entradas salidas digitales Arduino Ejemplo 3

En el siguiente ejemplo se usan 8 pines del arduino uno como salidas digitales, los pines usados serán del 2 al 9, en ellos se conectarán unos leds para obtener un efecto de luces, el efecto será que se iluminará un led y se hará como si la iluminación del led se moviera de un sentido a otro.

Se utilizará la instrucción for del lenguaje C/C++ para poner los pines a usar como salidas digitales mediante la función pinMode().

Con la función digitalWrite() se elegirán los estados que se quieren que salgan por el pines utilizados como salidas digitales.

Se utiliza una variable de tipo int (entero) para el control de los tiempos, en el arduino las variables de tipo int  pueden ir de -32768 a 32767.

Se utiliza una variable de tipo byte (entero) para elegir los pines, en el arduino las variables de tipo byte pueden ir de 0 a 255.

Se utiliza una variable de tipo booleam (entero) para elegir el sentido de la elección de los pines, en el arduino las variables de tipo booleam  pueden ser 0 o 1.

Se hace uso de la condicional if  del lenguaje C/C++ para obtener el efecto deseado.

El circuito es el  siguiente:

Entradas salidas digitales Arduino ejemplo 3 circuito

El código utilizando es software arduino para el ejemplo 3 es el siguiente:

Entradas salidas digitales Arduino Ejemplo 4

El siguiente es un ejemplo en el que se utilizará el pin 6 del arduino uno como una entrada digital, en esta entrada se colocará un pulsador, para no colocar resistencias externas, se activará la resistencia interna pull up del pin 6, al presionar el pulsador se encenderá un led conectado en el pin 13 el que será configurado como salida digital, si no se presiona el pulsador el led estará apagado.

Se utilizará la función pinMode() para configurar el pin 6 como entrada digital, pero en este caso se utiliza el parámetro INPUT_PULLUP para activar su resistencia interna pull up, con la misma función pinMode() se configura el pin 13 como salida digital donde se conectará el led.

Con la función digitalRead() se leerá el estado del pin utilizado como entrada digital, donde se conectará el pulsador.

Con la función digitalWrite() se elegirán los estados que se quieren que salgan por el pin utilizado como salida digital.

Se utiliza una variable de tipo int (entero) para el control de los tiempos, en el arduino las variables de tipo int  pueden ir de -32768 a 32767.

Se hace uso de la condicional if else del lenguaje C/C++ para detectar cuando se ha presionado el pulsador.

El circuito es el  siguiente:

Entradas salidas digitales Arduino ejemplo 3 circuito

El código utilizando es software arduino para el ejemplo 4 es el siguiente:

Entradas salidas digitales Arduino Ejemplo 5

En el siguiente ejemplo realizado en el arduino uno, se tendrán dos 2 leds alternando cada segundo conectados en los pines 3 y 6, los pines donde están conectados los leds serán utilizados como salidas digitales, en el pin 10 que será utilizado como entrada digital se conectará un pulsador, al presionar el pulsador y mientras se mantenga pulsado los leds alternarán  cada 100ms.

Se utilizará la función pinMode() para configurar el pin 10 como entrada digital, pero en este caso se utiliza el parámetro INPUT_PULLUP para activar su resistencia interna pull up, con la misma función pinMode() se configura los pines 3 y 6 como salidas digitales donde se conectarán los leds.

Con la función digitalRead() se leerá el estado del pin 10 utilizado como entrada digital, donde se conectará el pulsador.

Con la función digitalWrite() se elegirán los estados que se quieren que salgan por los pines utilizados como salidas digitales.

Se utiliza una variable de tipo int (entero) para el control de los tiempos, en el arduino las variables de tipo int  pueden ir de -32768 a 32767.

Se hace uso de la condicional if else del lenguaje C/C++ para detectar cuando se ha presionado el pulsador.

El circuito es el  siguiente:

Entradas salidas digitales Arduino ejemplo 5 circuito

El código utilizando es software arduino para el ejemplo 5 es el siguiente:

Entradas salidas digitales Arduino Ejemplo 6

En este ejemplo con el arduino uno se usará el pin 13 como una salida digital donde se conectará un led, el pin 11 será utilizado como una entrada digital donde se conectará un pulsador, del pin 11 se activará su resistencia interna pull up, mediante el pulsador se podrá encender o apagar el led. Si el pulsador se mantiene presionado el led parpadeará.

Se utilizará la función pinMode() para configurar el pin 11 como entrada digital, pero en este caso se utiliza el parámetro INPUT_PULLUP para activar su resistencia interna pull up, con la misma función pinMode() se configura el pin 13 como salida digital donde se conectará el led.

Con la función digitalRead() se leerá el estado del pin 11 utilizado como entrada digital, donde se conectará el pulsador.

Cuando se utilizan pulsadores, estos provocan internamente en si rebotes, que enviarán falsas señales a la entrada donde estén conectadas, por lo que luego que el arduino deteccte que se a pulsado el pulsador se le dará una pausa de 500ms para darle tiempo a que en el pulsador desaparezcan los rebotes, a este tiempo se le suele denominar antirrebotes.

Con la función digitalWrite() se elegirán los estados que se quiere que salga por el pin 13 utilizado como salida digital.

Se utiliza una variable de tipo byte (entero) para el control de los tiempos, en el arduino las variables de tipo int  pueden ir de 0 a 255.

Se utiliza una variable de tipo booleam (entero) para cambiar los estados del led, en el arduino las variables de tipo booleam  pueden ser 0 o 1.

Se hace uso de la condicional if else del lenguaje C/C++ para detectar cuando se ha presionado el pulsador.

El circuito es el  siguiente:

Entradas salidas digitales Arduino ejemplo 6 circuito

El código utilizando es software arduino para el ejemplo 6 es el siguiente:

aqui

Si he logrado ayudarte en el uso de los pines del ARDUINO como entradas salidas digitales arduino, comparte este enlace para poder ayudar a muchas personas mas.

Atte: MrElberni.

Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr1Share on LinkedIn0