Hoy utilicé un sensor de nivel de agua con mi nuevo arduino Mega, pero es igual para arduino Uno. La forma de conectarlo es muy sencilla, simplemente tiene tres pines:
Indicador en el sensor | Conexión en la placa Arduino |
---|---|
+ | se conecta al positivo (5v) |
– | va conectado al negativo (GND) |
S | a un pin analógico. En mi ejemplo lo conecté a A0 |
Gracias a este tutorial de Prometec aprendí que alcanza con este sencillo código para ver la medición:
void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); }
Utilizando el menú abrimos el monitor serial (en el menú Herramientas), y podemos ver cómo se muestra el nivel de agua:
No conforme con ver en el monitor serial el resultado, conecté también un display LCM 1602. La explicación de como conectarlo es sencilla:
GND – va a GND
VCC – a 5v
SDA y SCL, en el caso del arduino Mega, va a los pines que tienen ese nombre: SDA y SCL. En el caso del arduino Uno, van a A4 / A5 (aquí, más información)
Una vez realizadas todas las conexiones, este fue el código que utilicé:
#include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity int agua = 0; void setup() { Serial.begin(9600); // para utilizar el sensor de agua lcd.begin(16,2); // inicializa el display lcd.backlight(); // enciende la luz del display lcd.setCursor(0, 0); // acomoda el cursor lcd.print("Nivel de agua: "); // escribe el texto } void loop() { lcd.clear(); // borra el contenido del display lcd.setCursor(0, 0); // acomoda el cursor lcd.print("Nivel de agua: "); // escribe el texto lcd.setCursor(12, 1); // acomoda el cursor agua = analogRead(A0); // guarda en variable valor del sensor de agua lcd.print(agua); //Escribe en el display el valor del sensor Serial.println(agua); //Escribe en el monitor serial el valor de agua delay(50); // espera un poquito antes de continuar }
Un dato: Al conectar el display, el valor devuelto por el sensor de agua se altera, no vuelve a 0 sino que queda en 8 aproximadamente.