Skip to main content

digitalRead() y Serial.begin() – Lectura de entradas digitales – Ejemplo con Arduino Nº 03

Para leer el valor de un detector, utilizarás la función digitalRead(), además en este ejemplo te voy a mostrar cómo ver en el monitor del puerto serie el valor leído en un pin configurado como entrada digital, a través del USB, para ello utilizarás la función Serial.begin().

CIRCUITO:

En este ejemplo utilizaremos una resistencia de 10K, uno de sus extremos lo conectarás directamente a masa, el otro extremo lo conectarás a un pulsador tal como se indica en el esquema eléctrico, el nodo donde se conectan el pulsador y la resistencia lo llevarás mediante un cable de conexión al pin 2, configurado como entrada, en este caso entrada digital.

Si todo funciona como debiera, cuando no acciones el pulsador en el pin digital número 2 tendrás 0 voltios, que la placa de Arduino interpretará como “cero” o “falso” y cuando el pulsador este activado tendrás en el citado pin 5 voltios que la placa de Arduino interpreta como “uno” o “cierto”

Si desconectas el pin de entrada del todo, el LED puede parpadear de forma errática. Esto se debe a que la entrada no está conectada ni a tierra ni a Vcc, es por ello que se necesita una resistencia pull-down en la circuitería que acompaña al pulsador.

CÓDIGO:

Para comenzar las comunicaciones entre la placa de Arduino y el PC deberás inicializar el puerto de comunicaciones serie a 9600 baudios (bits/segundo) mediante la función:

Serial.begin(9600).

A continuación, iniciarás el pin digital 2, como un pin de entrada mediante la función:

pinMode( 2 , INPUT );

Estas dos funciones, como ya habrás deducido, irán dentro de la función setup() y el programa en sí, estará en la función loop(), donde continuamente estaremos comprobando si el pulsador esta accionado o no, mediante la función:

digitalRead(2);

El valor leído por esta función lo debemos memorizar en una variable de tipo int, llamada por ejemplo, EstadoDelPulsador, donde memorizaremos si el pulsador ha sido activado o no, mediante esta sentencia:

EstadoDelPulsador = digitalRead(2);

Has de tener en cuenta, que mientras el pulsador no está activado, la patilla número dos está conectada a masa mediante la resistencia de 10K, pero cuando activas el pulsador estás conectando Vcc a masa mediante la citada resistencia.

Una vez que se ha leído el valor presente en el pin 2, y memorizado en la variable EstadoDelPulsador, la puedes mostrar en el monitor del puerto serie incluido en el IDE de Arduino, mediante la función:

Serial.println(EstadoDelPulsador);

Si todo ha ido correctamente en tu monitor del puerto serie verás un “0” cuando el pulsador no está accionado y un “1” cuando pulses el dispositivo.

El programa completo quedará así:

int pulsador=2;

void setup()

{

Serial.begin(9600);

pinMode( pulsador, INPUT);

}

void loop()

{

int EstadoDelBoton = digitalRead( pulsador );

Serial.println( EstadoDelBoton );

delay( 1 ) ;                  // Retraso para poder ver el valor en el monitor

}

Un comentario en “digitalRead() y Serial.begin() – Lectura de entradas digitales – Ejemplo con Arduino Nº 03

Deja un comentario

Tu dirección de correo electrónico no será publicada.