Lecturas Analógicas

con Pinguino
pic

Seguimos aprendiendo poco a poco a utilizar las placas de Pinguino, en esta ocasión vamos a aprender otra de sus funciones más utiles: Tomar lecturas analógicas.

Los valores analógicos son aquellos que pueden tomar un gran número de valores, a diferencia de los valores digitales que unicamente puende ser 0 o 1. Esta capacidad para tomar valores nos va a permitir, por ejemplo, utilizar sensores de temperatura LM35, que devuelven 10mV por cada grado de temperatura.

pinout

Pinguino cuenta con con cinco pines capaces de realizar lecturas analógicas, estos son los pines del 13 al 17, ambos incliusive. Estos pines además tienen la peculiaridad de que no es necesario declarar en el setup() si son entradas o salidas, ya que siempre se comportan cómo entradas.

Para leer uno de estos pines solamente nesitamos emplear analogRead() y entre los parentesis colocar el pin analógico que queremos leer. Generalmente se asigna este valor a una variable, por lo que la estructura completa sería

	lecturaAnalogica = analogRead(13);

Con esto estaríamos leyendo el pin 13 y almacenando su valor en la variable lecturaAnalogica.

Para probar la lectura analógica de nuestra placa Pinguino vamos a utilizar un pequeño y sencillo circuito, se trata unicamente de una resistencia variable que ira conectada a una de las patillas analógicas de pinguino,también tendrá conectado un led con su correspondiente resistencia. Despues cargaremos en Pinguino un programa que leerá el valor de la resitencia y en función de esa lectura cambiará la velocidad de parpadeo del Led.

circuito

El programa que deberemos cargar en Pinguino será similar a este:

//Llamamos  al pin 10 LED
#define LED 10
//Llamamos al pin 13 pot
#define POT 13
 
 //Creamosu una variable para almacenar el valor del potenciometro
int lectura = 0;
 
void setup(){
//definimos el pin LED cómo una salida
	pinMode(LED, OUTPUT);
}
 
void loop(){
//leemos el pin del potenciometro
	lectura = analogRead(POT);
//Encendemos el LED
	digitalWrite(LED, HIGH);
//Esperamos un tiempo equivalente al valor del potenciometro
	delay(lectura);
//Apagamos el Led
	digitalWrite(LED, LOW);
//Volvemos a hacer una pausa equivalente a la lectura del potenciometro
	delay(lectura);
}

Cómo hemos mencionado antes, el potenciometro puede ser sustituido por un sensor de temperatura cómo el LM35, una LDR, giroscopios.. cualquier tipo de sensor que devuelva una salida analógica.

Plantilla Basada en la obra de © 2011 Ansimuz.