-->

viernes, 6 de abril de 2018

Funciones digitalRead, digitalWrite y pinMode en Arduino

Funciones pinMode, digitalRead e digitalWrite

En esta lección vamos a conocer tres funciones primordiales usadas en el desarrollo de software para el Arduino: pinMode(), digitalWrite() y digitalRead().

Función pinMode ()

Esta función permite configurar un perno específico para comportarse como un pasador de entrada o de salida.
Por defecto, los pines de Arduino tienen la función de entrada, de modo que no es necesario declararlos en este caso. Los pines de salida deben configurarse a través de esta función, lo que los lleva a un estado de baja impedancia, de modo que pueden suministrar corriente para otros circuitos. Los pines del microcontrolador Atmega pueden suministrar hasta 40 mA de corriente para otros componentes o circuitos.

Sintaxis de la función:

pinMode (pin, modo)

Parámetros:

pino es el número de pino que queremos configurar.
el modo puede ser: INPUT (entrada), OUTPUT (salida), o INPUT_PULLUP.

El parámetro INPUT_PULLUP permite habilitar las resistencias de pull-up, que se deshabilitan cuando se utiliza el modo INPUT. La función pinMode () no devuelve ningún valor al programa.

Ejemplo: Queremos ajustar el pin 7, conectado a un sensor, como entrada, y el pin 8, conectado a un LED, como salida:

int sensor = 7
int LED = 8

void setup() {
  pinMode(sensor, INPUT);
  pinMode(LED, OUTPUT);
}


Es muy común utilizar la función pinMode() dentro de la sección setup (), para efectuar las configuraciones de pines iniciales del programa.

Función digitalWrite()

Esta función escribe un valor HIGH (alto) o LOW (bajo) en un pin digital que se ha configurado como OUTPUT (salida). El valor HIGH equivale a una tensión de 5V (o 3,3V en algunas placas), y el valor LOW, a una tensión eléctrica de 0V.
Si el pin se ha configurado como INPUT (entrada), la función digitalWrite() activará o deshabilitará el pullup interno del pasador de entrada. Esta técnica no es recomendable, siendo ideal usar la función pinMode para habilitar la resistencia de pullup.
Los pines analógicos también se pueden utilizar como pines digitales, con referencias de pines A0, A1, etc.

Sintaxis:

digitalWrite (pin, valor)

Parámetros:

pino: es el número de pino considerado
Valor: HIGH o LOW (alto o bajo)

Ejemplo: Usando la lista del ejemplo anterior, vamos a escribir un nivel alto en el pino donde el LED será conectado (pin 8), esperar medio segundo (500 ms), y luego borrar el LED, escribiendo el nivel LOW en el pin. Es decir, vamos a encender y apagar el LED cada medio segundo:

int sensor = 7
int LED = 8

void setup() {
  pinMode(sensor, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}

Función digitalRead ()

Esta función permite leer el valor a partir de pino digital especificado, siendo los valores posibles HIGH o LOW.

Sintaxis:

digitalRead(pino)

Parámetro:

pino es el número del pino cuyo valor es necesario leer.

Esta función devuelve un valor para el programa, alto (HIGH) o bajo (LOW).

Ejemplo: Usando el primer ejemplo, vamos a leer el valor que el sensor conectado al pin 7 está enviando al Arduino:

int sensor = 7
int LED = 8
int valorSensor = 0;

void setup() {
  pinMode(sensor, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  valorSensor = digitalRead(sensor);
}

Tenga en cuenta que como la función digitalRead () devuelve un valor al programa, necesitamos almacenar ese valor en alguna parte, y para eso declaramos una nueva variable, la variable valorSensor, inicializada con el valor 0 (cero). Después de la llamada a la función, la variable tendrá el valor HIGH o LOW, conforme la señal enviada por el sensor, y podremos usar ese valor para decidir qué hacer posteriormente en el programa.

¡Lo qué aprenderemos en las próximas lecciones!

0 comentarios:

Publicar un comentario

Seguirnos por email

Más Populares

Categorías

Fábio dos Reis. Con tecnología de Blogger.

Total de vistas