15
Estación Meteorológica 2013 Introducción En el presente trabajo se expone la manera en que realizamos el proyecto integrador, una estación meteorológica, exponiendo paso a paso el procedimiento que llevamos a cabo para realizarlo Cabe destacar que cualquier proyecto conlleva tiempo suficiente, el cual fue dedicado completamente al proyecto, sobretodo en conseguir todo el material, pues ciertas piezas no eran comunes para los mercados. Cd. Universitaria, San Nicolás de los Garza, Nuevo León S E N S O R E S Y A C T U A D O R E S 1

Estacion Meteorologica

Embed Size (px)

DESCRIPTION

Estacion meteorologica

Citation preview

Estacin Meteorolgica

Estacin Meteorolgica2013

Introduccin

En el presente trabajo se expone la manera en que realizamos el proyecto integrador, una estacin meteorolgica, exponiendo paso a paso el procedimiento que llevamos a cabo para realizarloCabe destacar que cualquier proyecto conlleva tiempo suficiente, el cual fue dedicado completamente al proyecto, sobretodo en conseguir todo el material, pues ciertas piezas no eran comunes para los mercados.DesarrolloEmpezamos el proyecto de hacer una estacin meteorolgica consiguiendo el material necesario para poder medir la temperatura, esto fue un arduino, un sensor de temperatura LM35, un LCD que arrojara los datos y un potencimetro. Posteriormente iniciamos a programar el arduino.

Se incluyo la siguiente codificacin:

#include

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

float centi()

{

int dato;

float c;

dato=analogRead(A0);

c = (500.0 * dato)/1023;

return(c);

}

float kelvin(float cent)

{

float k;

k= cent+273.15;

return (k);

}

float fahren(float cent)

{

float f;

f= cent*1.8 + 32;

return f;

}

float rankin(float cent)

{

float r;

r = (cent + 273.15) * 1.8;

return r;

}

void setup()

{

lcd.begin(16,2);

lcd.print("C= F=");

lcd.setCursor(0,1);

lcd.print("K= R=");

}

void loop()

{

float Centigrados = centi();

float Fahrenheit = fahren(Centigrados);

float Kelvin = kelvin(Centigrados);

float Rankin = rankin(Centigrados);

lcd.setCursor(2,0);

lcd.print(Centigrados);

lcd.setCursor(10,0);

lcd.print(Fahrenheit);

lcd.setCursor(2,1);

lcd.print(Kelvin);

lcd.setCursor(10,1);

lcd.print(Rankin);

delay(200);

}

Se hicieron posteriormente las siguientes conexiones:

Dando como resultadoUna vez que terminamos la primera parte del proyecto proseguimos investigando sobre como medir la direccin del viento, de esta manera armamos el siguiente diagrama:

El circuito esta compuesto por 1 codificador optico el cual trabaja con tres optocuplers a reflexion (CNY70) con un disco codificado

Los optocuplers son un led infrarojo y un fototransistor montados en un encapsulado dejando salir de cada uno un lente, estos estan montados uno del otro a un cierto angulo para la reflexion sobre un superfice.

El disco codificador se hizo sobre un disco que no sera siendo negro para la parte no reflexiva y de blanco para la parte reflexiva, en el diagrama del circuito aparece el dibujo a escala de este disco. El circuito conversor es un decodificador de 3 lineas a 8 lineas o sea de un binario de 3 bits a un decimal de 8. Para esto utilizamos un integrado CMOS el CD 4051.

Las entradas de este van conetadas al captor y las salidas se conectan cada una a un led quedando entonces 8 leds encargados de darnos la direccion del vientolo ms complicado fue conseguir los optocoplers CNY70

Despus de armar el circuito en el protoboard qued de esta manera:

Por ltimo hicimos el disco que acta como un codificador tal como lo indica el diagrama

Lo probamos con una fuente de 12 V dando resultados satisfactorios, pues cada led indicaba una direccin.Por ltimo y lo ms complicado fue para medir la velocidad del viento, despus de investigar y hacer intentos fallitos como el siguiente diagrama:

Investigamos como utilizar un OPAM UA741 para producir un voltaje hacia los leds dependiendo de cuando se moviera un pequeo motor. Tomamos como referencia cada led indica 1 km/hra. Sin embargo era difcil que el viento pudiera mover la flecha del rotorPor ltimo terminamos cambiando la estructura inicial de nuestro proyecto despus de haber realizado una codificacin en arduino:

#include

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int pin = A0;

int pin2 = A1;

int tempc = 0,tempf=0;

int interacciones[5];

int maxi = -100,mini = 100;

int i;

float interacciones2[5];

int val = 0;

float rpm = 0;

float vel = 0;

float rad =0;

void setup()

{

Serial.begin(9600);

lcd.begin(16,2);

lcd.print("TempC TempF Vel");

}

void loop()

{

for(i=0;i maxi)

{

maxi = tempc;

}

if (tempc < mini)

{

mini = tempc;

}

vel=0;

for(i=0;i