Beruflich Dokumente
Kultur Dokumente
Subsede: Cochabamba
RESUMEN:
En este artículo vamos a ver un ejemplo de cómo podemos crear un sensor de nivel de agua
con Arduino. Cuando hablo de agua puede ser cualquier líquido e incluso sustancias sólidas.
Lo único que debemos de tener en cuenta es la capacidad del recipiente.
La aplicación es sencilla, con el sensor de ultrasonidos mediremos cuanta distancia hay hasta el
líquido. Debemos conocer el recipiente para saber cuánta cantidad cabe y que medida se obtiene
cuando está lleno. Lo mismo haremos cuando el recipiente esté vacío. Esto se llama calibración.
Veremos las características principales para utilizarlo con Arduino. El otro componente será
una pantalla LCD. Aquí es donde visualizaremos en todo momento la cantidad de agua o
líquido que queda en el recipiente.
ABSTRACT:
In this article we are going to see an example of how we can create a water level
sensor with Arduino. When I speak of water can be any liquid and even solid
substances. The only thing we should keep in mind is the capacity of the vessel.
The application is simple, with the ultrasonic sensor we will measure how much
distance there is until the liquid. We must know the container to know how much it
fits and what measure is obtained when it is full. We will do the same when the
container is empty. This is called calibration.
We'll look at the main features to use with Arduino. The other component will be an
LCD screen. This is where we will visualize at all times the amount of water or
liquid left in the container.
2
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
TABLA DE CONTENIDOS
1 INTRODUCCIÓN.......................................................................................................... 4
2 JUSTIFICACIÓN ........................................................................................................... 4
3 OBJETIVO GENERAL ................................................................................................. 4
3.1 OBJETIVOS ESPECIFICOS .................................................................................. 4
4 ALCANCE ..................................................................................................................... 5
4.1 ALCANCE TEMPORAL ........................................................................................ 5
4.2 ALCANCE ESPACIAL .......................................................................................... 5
4.3 ALCANCE TEMÁTICO ......................................................................................... 5
5 MARCO TEÓRICO ....................................................................................................... 5
5.1 ARDUINO UNO….. ............................................................................................... 5
5.2 SENSOR ULTRASONIDOS HC-SR04.................................................................. 6
5.3 PANTALLA LCD 16*2……………. .................................................................... 7
5.4 DEMAS COMPONENTES ELECTRICOS ......................................... ................. 8
6 MARCO PRÁCTICO ..................................................................................................... 8
6.1 DIAGRAMA DEL CIRCUITO………………… .................................................. 8
6.2 MATERIALES A UTILIZAR ................................................................................. 9
6.3 PROCEDIMIENTO ................................................................................................. 9
7 CONCLUSIONES........................................................................................................ 21
8 RECOMENDACIONES .............................................................................................. 21
9 Bibliografía ................................................................................................................... 22
3
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
1 INTRODUCCIÓN
2 JUSTIFICACIÓN
Si una industria tiene distintos productos, muchos tanques, traslada productos, entonces
requiere de un sistema de control de niveles automático, que opere durante décadas, 24 horas
por día, sin fatiga ni falla, exento de error humano por operación y con una alta precisión.
3 OBJETIVO GENERAL
4 ALCANCE
5 MARCO TEÓRICO
Definir Arduino es complicado, muy complicado. Cuando hablamos de Android, por ejemplo,
todos sabemos que se trata de un sistema operativo. Sin embargo, Android no es un único sistema
5
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Los sensores de ultrasonido o sensores ultrasónicos son detectores de proximidad que trabajan
libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros
hasta varios metros. El sensor emite un sonido y mide el tiempo que la señal tarda en regresar.
Estos reflejan en un objeto, el sensor recibe el eco producido y lo convierte en señales eléctricas,
las cuales son elaboradas en el aparato de valoración. Estos sensores trabajan solamente en el
aire, y pueden detectar objetos con diferentes formas, diferentes colores, superficies y de
diferentes materiales. Los materiales pueden ser sólidos, líquidos o polvorientos, sin embargo
han de ser deflectores de sonido. Los sensores trabajan según el tiempo de transcurso del eco,
6
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
es decir, se valora la distancia temporal entre el impulso de emisión y el impulso del eco.
Además de los componentes esenciales para el sensor de nivel de agua con Arduino, vamos a
necesitar los típicos componentes que se suelen utilizar en muchos circuitos. Te los detallo a
continuación.
Protoboard
Potenciómetro 10kΩ
Resistencia 220Ω
Cables
6 MARCO PRÁCTICO
Con todos los componentes en nuestro poder, ya podemos empezar a montar el circuito. Como
ya he comentado al principio del artículo, vamos a necesitar 8 entradas y salidas digitales.
Además utilizaremos el pin de 5V y el GND (toma de tierra). El circuito sería el siguiente.
8
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Arduino uno
Sensor de ultrasonidos HC-SR04
Pantalla LCD 16*2
Protoboard
Potenciómetro kΩ
Resistencia 220 Ω
Cables
6.3 PROCEDIMIENTO
Antes de meternos en faena y empezar a programar el sensor de nivel de agua con Arduino,
vamos a probar los diferentes componentes del circuito eléctrico. Es importante asegurarnos de
que todo está bien conectado. Lo más sencillo es probar cada componente por separado y así es
como lo haremos.
Para probar este sensor vamos a cargar un sketch que nos servirá más adelante a la hora de medir
el nivel. Las conexiones Echo y Trigger van a los pines 6 y 7 respectivamente. Carga el siguiente
sketch en tu placa de Arduino y comprueba el monitor serie.
float distancia;
void setup()
Serial.begin(9600);
pinMode(PinTrig, OUTPUT);
pinMode(PinEcho, INPUT);
void loop()
iniciarTrigger();
// La función pulseIn obtiene el tiempo que tarda en cambiar entre estados, en este caso a HIGH
// Obtenemos la distancia en cm, hay que convertir el tiempo en segudos ya que está en
microsegundos
Serial.print(distancia);
Serial.print("cm");
Serial.println();
delay(500);
10
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
}
void iniciarTrigger()
digitalWrite(PinTrig, LOW);
delayMicroseconds(2);
digitalWrite(PinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(PinTrig, LOW);
}
Como su nombre indica, se trata de una pantalla de 16 columnas y 2 filas. Esto nos va a permitir
escribir un total de 32 caracteres a la vez. Ahora lo que haremos es escribir un simple texto para
comprobar que todo está bien conectado. Carga el siguiente sketch en tu placa.
void setup() {
// Configuramos las filas y las columnas del LCD en este caso 16 columnas y 2 filas
lcd.begin(COLS, ROWS);
void loop() {
lcd.setCursor(0,0);
lcd.print("Hola Mundo!!!!!!");
lcd.setCursor(0,1);
lcd.print("Probando el LCD.");
}
Por lo tanto, el resultado que debemos obtener es el texto “Hola Mundo!!!!!!” en la primera fila
y en la segunda fila “Probando el LCD”.
Ya hemos montado todo el circuito, hemos comprobado que todo funciona correctamente y
ahora vamos a montar el sensor encima del recipiente o cubeta donde vamos a tener el líquido.
Lo podemos hacer de muchas formas, yo te voy a mostrar una muy sencilla utilizando dos palos
de madera que se utilizan para cocinar. Son los típicos para saber si el bizcocho está hecho o
para hacer brochetas. Además, he utilizado dos alambres de los típicos que vienen en cualquier
embalaje para sujetar cables. Suelo recolectar este tipo de agarres ya que son muy útiles en
muchas ocasiones. El resultado lo puedes ver en las siguientes imagenes.
12
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Gracias a estos dos palos podemos situar los ultrasonidos baca abajo encima de cualquier
recipiente o cubeta. En la siguiente imagen te muestro un ejemplo de cómo quedaría.
13
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Esto también nos puede servir de sujeción con alguna goma elástica u otro método para que no
se mueva.
Ha llegado la hora de empezar a programar. Lo primero que debemos hacer es calibrar el sensor
de nivel de agua con Arduino. Para ello voy a utilizar un vaso medidor es decir, un vaso que
tiene marcadas las medidas. Así podremos asignar una medida del sensor de ultrasonidos a una
cantidad de líquido. Esto nos permitirá saber qué cantidad de líquido tenemos en el recipiente.
14
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Algo que tienes que tener en cuenta es que el sensor de ultrasonidos mide la cantidad de espacio
vacío en el recipiente. Por lo tanto, si conocemos la capacidad total del recipiente, al restar la
cantidad de espacio vacío sabremos cuánto líquido hay. Mira el esquema general.
Entonces, según este esquema general debemos conocer qué valor obtenemos con el sensor de
ultrasonidos cuando está vacío, cuando está lleno y una medida conocida. Esta última medida la
haremos con vaso medidor calculando el valor para 100ml. Antes de comenzar con las
medidas, debemos de tener en cuenta que el vaso debe ser cilíndrico es decir, la base debe ser
del mismo diámetro que la parte de arriba. Si intentamos medir en un recipiente que no es
cilíndrico, en forma de cono, las medidas no serán proporcionales.
En todos los sistemas electrónicos se genera un ruido debido al movimiento de los electrones,
al propio sensor, la placa de Arduino, etc… Esto se traduce en una variación o fluctuación en
las medidas que vamos obteniendo a través del sensor. Para eliminar este tipo de ruido se suele
aplicar un filtro paso bajo que elimina las frecuencias bajas, justo donde se encuentra el ruido.
15
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
La forma más sencilla de aplicarlo a través de la programación es hacer una media de los valores
que se van obteniendo.
Pero no solo para eliminar el ruido, calculando la media podemos eliminar las fluctuaciones
debidas al movimiento del recipiente. Imagínate un depósito de gasolina de un coche. Cuando
va en marcha el combustible no está quieto, se va moviendo. Si se quiere medir con un sensor
de ultrasonidos sería complicado si no se utiliza alguna técnica como esta.
Dependiendo del número de muestras que utilicemos para obtener la media, podremos tener un
valor más preciso o menos preciso. Pero esto también influye en cuánto tarda en estabilizarse la
medida cuando se produce un cambio. Por lo tanto, si cogemos un número alto de muestras, la
media será más precisa pero tardará más tiempo en reflejar los cambios. Por el contrario, si
cogemos un número bajo de muestras, la media será menos precisa pero veremos reflejados más
rápidos los cambios. Elegir uno u otro dependerá de lo que queramos conseguir, rapidez o
precisión.
Otro factor a tener en cuenta es el tamaño del tipo de dato que vamos a almacenar. Debemos de
tener mucho ojo ya que podemos provocar un desbordamiento. Todas las muestras se irán
almacenando en una variable para luego calcular la media, por lo tanto si elegimos un número
alto de muestras debemos asegurarnos que no nos saldremos de rango.
En este caso yo voy a elegir precisión, voy a coger un rango de muestras de 100. El código es
muy parecido al que hemos utilizado para probar el sensor de ultrasonidos al que he añadido el
cálculo de la media cada 100 valores.
// Número de muestras
bool primeraMedia = false; // Para saber que ya hemos calculado por lo menos una
void setup()
Serial.begin(9600);
pinMode(PinTrig, OUTPUT);
pinMode(PinEcho, INPUT);
// Inicializamos el array
lecturas[i] = 0;
void loop()
17
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
{
iniciarTrigger();
// La función pulseIn obtiene el tiempo que tarda en cambiar entre estados, en este caso a
HIGH
// Obtenemos la distancia en cm, hay que convertir el tiempo en segudos ya que está en
microsegundos
lecturas[lecturaActual] = distancia;
lecturaActual = lecturaActual + 1;
primeraMedia = true;
lecturaActual = 0;
// Calculamos la media
18
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
media = total / numLecturas;
if (primeraMedia)
Serial.print(media);
Serial.println("cm");
delay(500);
void iniciarTrigger()
digitalWrite(PinTrig, LOW);
delayMicroseconds(2);
digitalWrite(PinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(PinTrig, LOW);
}
19
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Programando el sketch para calcular el nivel
Todo esto tenemos que plasmarlo en un sketch para subirlo a nuestro Arduino. A continuación
te dejo el código para que veas como lo he hecho. Fíjate en los comentarios.
// Número de muestras
bool primeraMedia = false; // Para saber que ya hemos calculado por lo menos una
void setup()
Serial.begin(9600);
pinMode(PinTrig, OUTPUT);
20
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
// Ponemos el pin Echo en modo entrada
pinMode(PinEcho, INPUT);
// Inicializamos el array
lecturas[i] = 0;
void loop()
iniciarTrigger();
// La función pulseIn obtiene el tiempo que tarda en cambiar entre estados, en este caso a HIGH
// Obtenemos la distancia en cm, hay que convertir el tiempo en segudos ya que está en
microsegundos
lecturas[lecturaActual] = distancia;
lecturaActual = lecturaActual + 1;
21
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
// Comprobamos si hemos llegado al final del array
primeraMedia = true;
lecturaActual = 0;
// Calculamos la media
if (primeraMedia)
Serial.print(media);
Serial.println(" cm");
Serial.print(cantidadLiquido);
Serial.println(" ml");
delay(500);
void iniciarTrigger()
22
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
digitalWrite(PinTrig, LOW);
delayMicroseconds(2);
digitalWrite(PinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(PinTrig, LOW);
}
Por último y, aunque no es necesario, vamos a mostrar la información en una pantalla LCD de
16×2. La información que vamos a mostrar es la cantidad de líquido en ml y el porcentaje de
llenado. Estos datos son fundamentales en el sensor de nivel de agua con Arduino.
7 CONCLUSIONES
23
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
Este proyecto permite a las pequeñas y medianas industrias la automatización del control de
niveles en tanques o calderas a bajos costos, permitiendo la optimización de sus procesos.
8 RECOMENDACIONES
Hay que tener en cuenta algunos aspectos fundamentales que hacen a la instalación
El sensor debe permanecer fijo en el espacio, cualquier movimiento del mismo producirá
errores en la interpretación de la medición
Se debe tener especial cuidado en cuanto a la protección de la cápsula y evitar la rotura
del cable ya sea por rozamiento o contacto con filos o bordes.
El sensor se deberá instalar a un nivel más bajo que el mínimo a medir.
24
Título: PANEL SOLAR CASERO DE 1.5v
Autor: Edson Escalera Medrano
9 BIBLIOGRAFÍA
http://programarfacil.com/blog/arduino-blog/sensor-de-nivel-de-agua-
con-arduino/
https://www.youtube.com/watch?v=fXvAZYpUzvg
http://expoelectronica.upbbga.edu.co/pdf_2005/CONTROL%20DE%20NIV
EL.pdf
http://www.monografias.com/trabajos85/controles-sistema-automatico-
utesa/controles-sistema-automatico-utesa.shtml
25
25