Paso 5: código
Coloque el siguiente código para el arduino.
Esperemos que funcione correctamente!
Cuando las temperaturas no son estables suficiente puede cambiar ' un = 0.5' en por ejemplo ' un = 0,8'
/*
Psicrómetro
Lee una entrada analógica en el pin 0 y en el pin 1. La convierte en temperatura. Temperatura se convierte en una humedad relativa.
E imprime el resultado en la pantalla LCD.
*/
incluir el código de biblioteca:
#include
inicializar la biblioteca con los números de los pines de interfaz
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
dar valor inicial para la temperatura seca y húmeda
Float averagedry = 20;
Float averagewet = 16;
dar una constante que determina el peso de los viejos valores en detemining el nuevo valor
Float a = 0,5;
la rutina de instalación se ejecuta una vez al presionar reset:
void setup() {}
Esto utiliza el voltaje que viene en Aref como referencia
CUANDO SALGAS A LAS RESISTENCIAS TAMBIÉN DEJAR DE LADO
analogReference(EXTERNAL);
fijar número la pantalla del LCD de filas y columnas:
LCD.Begin (16, 2);
Imprimir un mensaje en la pantalla LCD.
LCD.Print("RelativeHumidity");
inicializar la comunicación serial con la computadora:
Serial.Begin(9600);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
leer la entrada en el pin analógico 0 y pin 1, es la temperatura seca/húmeda:
los retrasos de la delay(1000) con un segundo, se trata de estabilizar el arduino
analogRead(A0);
Delay(1000);
int sensorValuedry = analogRead(A0);
analogRead(A1);
Delay(1000);
Float sensorValuewet = (float) analogRead(A1);
Convertir el sensorvalue a una temperatura
Sensorvalue medido sin una tensión de referencia inferior está calibrado con un termómetro
Sensorvalue mide con una tensión de referencia inferior se corrige con 149.7/828.3.
es de 149.7 sensorvalue sin la menor tensión de referencia
828.3 es sensorvalue con menor tensión de referencia.
Estos dos valores será probablemente diferentes con otros resistentes
AL USTED DEJA DE LADO LAS RESISTENCIAS TAMBIÉN DEJAR LA PARTE DE CONVERSIÓN (149.7/828.3)
Float temperaturedry = sensorValuedry * (149.7/828.3) * 0.5304-53.926;
Tomar un promedio de corriente con factor de adecuando un
averagedry = un * averagedry + (1-a) * temperaturedry;
Convertir el sensorvalue a una temperatura
Float temperaturewet = sensorValuewet * (149.7/828.3) * 0.5181-50.889;
Tomar un promedio de ejecución
averagewet = un * averagewet + (1-a) * temperaturewet;
Utilice fórmulas para determinar la humedad relativa
flotar Es = 0.61 * exp ((19.9 * averagewet) /(273 + averagewet));
flotador de Ea = Es-0.067 * (averagedry-averagewet);
Float H = Ea / Es;
{
establecer el cursor a la columna 0, línea 1
(Nota: la línea 1 es la segunda fila, ya que cuenta comienza con 0):
lcd.setCursor (0, 1);
la humedad relativa de la impresión:
LCD.Print(H);
}
}