jueves, 1 de noviembre de 2012

Tutorial uso thermistor en arduino

Los termistores son barato y facil de usar lo mas complicado es la formula matematica para hacer la conversión de variación de Voltaje a Grados C°

Este es la forma de ver el ejemplo a desarrollar:

Software Utilizado: Aquí
Hardware utilizado en este tutorial: 

Instrucciones:

Vamos a utilizar un LCD para leer la temperatura del termistor. Sigue este otro tutorial Arduino LCD para obtener el trabajo con la placa Arduino. Si no desea utilizar una pantalla LCD para obtener las lecturas de la temperatura, siempre puedes cambiar el codigo a utilizar para la conexión del serial del Arduino con el computador para leer la temperatura de el termianl Serial en el monitor.

Usa tu protoboard sin soldadura para hacer las conexiones del termistor:

El Esquema a armar es:
Se nota que cable rojo a Fuente de 5v, el amarillo es la señal enviada y el negro es cable a tierra.

Software:

Descargue el software Arduino ejemplo thermistor aquí , y descomprimir el archivo en mi documento donde arduino crea una carpeta por defecto..

Ahora tendrá una carpeta llamada "arduino_thermistor"

Inicie el software de Arduino y cargar el thermistor Arduino programa de ejemplo, haga clic en Archivo-> Sketchbook-> Abrir

Navegue a la carpeta arduino_thermistor y seleccione la opción "arduino_thermistor.pde" archivo.

cree el dibujo del Thermistor Arduino a tu placa Arduino, luego pulsando el botón "Upload to I/O board" botón. Tras la descarga, usted debe ver la temperatura actual en la pantalla LCD.

Aquí está el código:

/*
    Arduino thermistor example software
    Tutorial:  http://www.hacktronics.com/Tutorials/arduino-thermistor-tutorial
    Copyright (c) 2010 Mark McComb, hacktronics LLC
    License: http://www.opensource.org/licenses/mit-license.php (Go crazy)
*/

#include 
#include 

/*
LCD Connections:
rs (LCD pin 4) to Arduino pin 12
rw (LCD pin 5) to Arduino pin 11
enable (LCD pin 6) to Arduino pin 10
LCD pin 15 to Arduino pin 13
LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
*/

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;    // pin 13 will control the backlight

void setup(void) 
{
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(20, 4);              // rows, columns.  use 16,2 for a 16x2 LCD, etc.
  lcd.clear();                   // start with a blank screen
  lcd.setCursor(0,0);            // set cursor to column 0, row 0
}

double Thermister(int RawADC) 
{
  double Temp;
  // See http://en.wikipedia.org/wiki/Thermistor for explanation of formula
  Temp = log(((10240000/RawADC) - 10000));
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15;           // Convert Kelvin to Celcius
  return Temp;
}

void printTemp(void) 
{
  double fTemp;
  double temp = Thermister(analogRead(0));  // Read sensor
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperature is:");
  lcd.setCursor(0,1);
  lcd.print(temp); 
  lcd.print(" C / ");
  fTemp = (temp * 1.8) + 32.0;    // Convert to USA
  lcd.print(fTemp);
  lcd.print(" F");  
  if (fTemp > 68 && fTemp < 78) 
  {
    lcd.setCursor(0,3);
    lcd.print("Very comfortable");
  }
}

void loop(void) 
{
  printTemp();
  delay(1000);
}
 

2 comentarios: