21 enero, 2020

Termómetro Arduino (Entrada Análogicas) 2/4

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

E/S Digitales para los LEDs y los botones. (1/5)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos

  • Responsable Javier .
  • Finalidad Moderar los comentarios. Responder las consultas.
  • Legitimación Su consentimiento.
  • Destinatarios Hostinger.es.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puede consultar la información detallada en el Aviso Legal.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.