Introducción a Arduino (parte II)

Originalmente publicado en «ATDT magaZINE 0x02», una zine en modo texto. Los gráficos son capturas de pantalla. El archivo original se puede ver en el enlace que se encuentra al final del artículo.

En el artículo anterior les hablé un poco sobre el concepto Arduino y como hacer el «¡Hola Mundo! electrónico»: blinkear un LED. Hoy nos toca avanzar un poco más.

En electrónica podemos trabajar con señales analógicas o digitales. Una señal analógica tiene la particularidad de variar su amplitud y período en el transcurso del tiempo. En cambio, una señal digital solo adopta dos valores posibles:

1 (HIGH)
0 (LOW)

La placa Arduino UNO tiene la capacidad de trabajar con ambos tipos de señales. Hoy vamos a leer señales digitales y analógicas.

Leer una Entrada Digital

Para leer el estado en el que se encuentra una patita digital tenemos que usar dos funciones. Primero debemos declarar la patita, para esto usamos pinMode(pin, tipo), donde «pin» es el número de patita digital de la placa y «tipo» es la función que va a cumplir:

  • INPUT, entrada
  • INPUT_PULLUP, entrada con resistencia interna a positivo
  • OUTPUT, salida

La resistencia a positivo (pull-up) se utiliza para forzar a un nivel conocido el estado de la patita. Con esto nos garantizamos de no dejarla al aire, lo que podría ocasionar en estados inciertos debido a ruido que puede haber en el ambiente.

Por lo tanto, si queremos usar la patita digital número 2 como entrada usando una resistencia externa a positivo, deberemos escribir:

pinMode(2, INPUT);

En el siguiente esquema de conexión tenemos un pulsador conectado a la patita 2, que la lleva a un estado bajo al pulsarlo. Cuando se suelta vuelve a un estado alto a través de la resistencia de 10 kΩ.

Pulsador en configuración pull-up.

La función digitalRead(pin) devuelve un valor TRUE si el estado del pin es alto, y un valor FALSE si es bajo. Para usarla escribimos:

digitalRead(2);

Leer una Entrada Analógica

Para trabajar con entradas analógicas no es necesario configurar nada, simplemente las leemos usando la función analogRead(pin). Esta función devuelve valores enteros de 0 a 1023 de acuerdo al nivel de tensión que haya en la patita (de 0 a 5 V).

El siguiente circuito utiliza un potenciómetro, que es una resistencia a la que podemos variar su valor moviendo un cursor mecánico. Esto nos permite generar una amplitud de valores de tensión para aplicar en la patita A0:

Potenciómetro en la patita A0.

Con la siguiente línea leemos los valores que llegan a la patita analógica A0 y almacenamos el valor en una variable de tipo entero:

int lectura = analogRead(A0);

Artículos relacionados