El sensor de humedad FC28 es un sensor que mide la humedad del suelo a partir de la resistencia eléctrica del mismo. Es usual usar este sensor sin ninguna otra placa, obteniendo su resistencia en todo momento por medio de un divisor de tensión simple, sin embargo el módulo también puede obtenerse con una placa Flying Fish, la cual provee una salida analógica proporcional a la resistencia medida y una salida digital dada por un circuito amplificador operacional en modo comparador, el cual compara el valor medido con una referencia dada por el valor en el potenciómetro, dando una salida digital alta cada vez que el valor medido sea mayor a la referencia.
Debe mencionarse que la medición del elemento no está calibrada, así, si se desea obtener una medida numérica, se debe realizar una calibración con un segundo higrómetro, sin embargo una buena referencia puede ser el hecho que un suelo ligeramente húmedo da un valor en el ADC de un Arduino de 600 a 700 y un suelo seco da un valor mayor a 700.
Debido al uso bastante simple del módulo, este duele ser utilizado para sistemas de riego automático. La tensión en la salida analógica del módulo es inversamente proporcional a la resistencia medida, es decir, en un suelo muy húmedo, la tensión se aproximará a 0 y en un suelo muy seco se aproximará a VCC. Los pines del módulo son los siguientes:
VCC = Referencia positiva de 3.3 a 5 V
GND = Referencia negativa
A0 = Salida analógica de 0 a VCC
D0 = Salida digital
A continuación presentamos una aplicación en la cual usamos la salida analógica y la salida digital del módulo.
Código Arduino
int pin_analogico = A1; // definimos los pines por los que
int pin_digital = A0; // conectamos las salidas del módulo
void setup() {
Serial.begin(9600); //iniciamos la comunicación serial
pinMode(pin_digital,INPUT_PULLUP); //definimos como entrada
}
void loop() {
Serial.print("lectura analoga = ");
Serial.println(analogRead(A1));
// si la salida digital está en cero, es porque se ha superado el valor de referencia
// entonces se desplegará el mensaje: "salida digital activa"
if (digitalRead(pin_digital) == LOW)
{
Serial.println("salida digital activa");
}
else
{
Serial.println("salida digital inactiva"); // de otra forma de deplegará "salida digital inactiva"
}
}
Una vez subido el código y al abrir el monitor serial, podremos observar el valor medido en la salida analógica del módulo y el estado de la salida digital.
FIN DEL POST
0 comentarios:
Publicar un comentario