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.
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.
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.