Continuamos explicando el otro tipo de entradas que necesitaremos en nuestro proyecto, en este caso son las entradas analógica, para recoger los datos del sensor de temperatura y los potenciometros.
En el arduino UNO tenemos 6 entradas analógicas (A0-A5) y que nos pueden dar valores entre 0-1023, esto es así porque el ADC(Convertidor Analogico Digital) con el que cuenta Arduino para poder recoger esa señal analógica y convertirla a binario para así poderla procesar tiene una precisión de 10 bits.
Para las entradas analógicas usaríamos analogRead(PIN). Es cierto que también tenemos salidas analógicas, simuladas mediante PWM como se comento en E/S Digitales, y seria con la función analogWrite(PIN, valor) pero este tipo de salida no la utilizaremos en este proyecto.
Los pines analogicos comienzan con «A». El pin 2 analógico es A2
Continuando con nuestra entrada analógica deberemos tener presente que si el valor de entrada es entre 0-5V se podrá conectar directamente, pero en el caso de que sea mayor a 5V se deberá usar un divisor de tensión.
También tenemos que contemplar que la finción analogRead nos dara un valor entre 0-1023 y que debemos convertirlo a voltaje normalmente con la función
V=Lectura*5/1024 (Podemos usar la función map)
Sensor de temperatura TMP36
Siempre que usemos cualquier componente lo ideal es tener las especificaciones técnicas, Data Sheet TMP36, para saber los rangos en los que nos movemos y la forma de conectarlo.
- Vs: Alimentación sera 5V, pudiendo ser segun DataSheet estar entre 2,7V y 5V
- El rango a leer esta entre -40ºC y 125ºC, con un factor de escala de 10mV el grado.
Conectaremos el PIN2 al PIN de entrada analogica que deseemos.
Para convertir el voltaje recibido a Temperatura se empleara la formula:
Temp ºC=(Vout mV – 500)/10
Temp ºC=(Vout-0,5)/100
Si desearamos convertirlo a ºFahrenheit realizaremos el siguiente calculo: (ºC*9/5)+32
Ejemplo
Los resultados del ejemplo se visualizaran en la consola del IDE de Arduino, gracias a la comunicación serie mediante el puerto USB que corresponden a los pines 0 y 1 digitales, por eso recomendamos no usar estos pines.
Serial.begin(9600) // Para abrir una conexión 9600 con la consola de Arduino.
Serial.print("TEXTO") // Para enviar información a la consola.
// Definimos los nombres simbolicos de los pines
// Entradas analogicas
#define Sensor A0
#define Potenciometro A1
void setup()
{
Serial.begin(9600); // Abrimos puerto para la consola.
Serial.println("Iniciamos ejemplo E_Analogicas");
Serial.println("******************************");
}
void loop()
{
int sondeo = 5; // Tiempo de sondeo en segundos
float valSensor, valPot;
float volSensor, volPot;
float temperatura;
int tiempo;
// Sensor de Temperatura
valSensor= analogRead(Sensor);
Serial.print("Temperatura: ");
Serial.print(valSensor);
Serial.print(" , ");
volSensor = (valSensor * 5.0)/1024.0; // Seria conversion a voltios.
Serial.print(volSensor);
Serial.print(" V, ");
temperatura = (volSensor * 100) - 50;
Serial.print(temperatura);
Serial.println("ºC");
// Potenciometro
valPot= analogRead(Potenciometro);
Serial.print("Potenciometro: ");
Serial.print(valPot);
Serial.print(" , ");
volPot = (valPot*5.0)/1024.0;
Serial.print(volPot);
Serial.print(" V ");
tiempo=map(valPot,0,1023,1,10); //Realiza una conversión para valor entre 1-10.
Serial.print(tiempo);
Serial.println(" ¿minuto 1-10?");
Serial.println("******************************");
Serial.println("");
//Pausa de sondeo.
delay(sondeo*1000);
}
Cuadernos Técnicos de interés:
- Arduinos – Uso del IDE y la programación de Arduino, incluida creación de librerias.
- Electronica – Breves notas de Electronica que puede ser util par los proyectos Arduino.
- Com_ExteriorHum – Explicación de sensores y actuadores para Arduino.
Anteriores