Un indicador de nivel de agua sin contacto por ultrasonido es un dispositivo utilizado para medir el nivel de agua u otros líquidos en un contenedor sin la necesidad de contacto directo con el líquido en sí. Funciona utilizando ondas ultrasónicas, que son enviadas desde el dispositivo hacia la superficie del líquido y luego recibidas después de rebotar en esa superficie.
El funcionamiento básico implica un transductor que emite pulsos de ultrasonido y otro transductor que recibe los ecos de estos pulsos. La diferencia de tiempo entre el envío y la recepción de las ondas ultrasónicas se utiliza para calcular la distancia desde el transductor hasta la superficie del líquido. Al conocer la distancia entre el sensor y el líquido, se puede determinar el nivel del líquido en el contenedor.
Estos dispositivos son utilizados en una amplia gama de aplicaciones industriales, domésticas y comerciales. Son especialmente útiles en situaciones donde el contacto directo con el líquido es complicado, peligroso o poco práctico. Por ejemplo, en tanques de almacenamiento de líquidos corrosivos, tóxicos o en entornos donde se requiera una medición precisa sin interferencias.
Los indicadores de nivel de agua por ultrasonido suelen ser precisos y confiables, pero su rendimiento puede verse afectado por factores ambientales como la temperatura, la presión atmosférica, la presencia de espuma o vapor, así como la turbulencia en la superficie del líquido. Sin embargo, en general, son una opción popular debido a su capacidad para medir niveles de líquido de manera no intrusiva y en una amplia variedad de condiciones.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos del proyecto
Arduino Nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Un Zócalo para arduino
Pines hembra
Display oled sh1106
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
Cables dupont hembra hembra
Pines Macho
Modulo Sensor Ultrasonido HC-SR04
El sensor HC-SR04 es una excelente opción como sensor de distancia ultrasónico. Su relación de costo/beneficio lo hace óptimo para un
gran abanico de aplicaciones. El uso de este módulo es bastante sencillo debido a que se toda la electrónica de control, transmisión y
recepción se encuentra contenida en PCB. El usuario solamente debe enviar un pulso de disparo y medir en tiempo alto del pulso de
respuesta. Solamente se requieren 4 cables para completar la interfaz con el módulo de sensor HC-SR04. El HC-SR04 es compatible con la
mayoría de los microcontroladores del mercado, incluyendo el Arduino UNO, Arduino MEGA y otras tarjetas compatibles que funcionen con
5 volts. Existen librerías para este módulo que hacen que la parte del software quede resuelta de manera muy sencilla. Recomendamos
adquirir algunos cables tipo Dupont para poder usar este sensor sin necesidad de realizar soldaduras.
Posee dos transductores: un emisor y un receptor piezoeléctricos, además de la electrónica necesaria para su
operación. El funcionamiento del sensor es el siguiente: el emisor piezoeléctrico emite 8 pulsos de ultrasonido(40KHz) luego de
recibir la orden en el pin TRIG, las ondas de sonido viajan en el aire y rebotan al encontrar un objeto, el sonido de rebote es
detectado por el receptor piezoeléctrico, luego el pin ECHO cambia a Alto (5V) por un tiempo igual al que demoró la onda desde que
fue emitida hasta que fue detectada, el tiempo del pulso ECO es medido por el microcontrolador y asi se puede calcular la distancia al
objeto. El funcionamiento del sensor no se ve afectado por la luz solar o material de color negro (aunque los materiales blandos
acusticamente como tela o lana pueden llegar a ser difíciles de detectar).
Especificaciones:
-Interfaz sencilla: Solamente 4 cables
-Voltaje de Operación: 5V DC
-Corriente de reposo: < 2mA
-Corriente de trabajo: 15mA
-Rango de medición: 2cm a 450cm
-Precisión: +- 3mm
-Ángulo de apertura: 15°
-Frecuencia de ultrasonido: 40KHz
-Duración mínima del pulso de disparo TRIG (nivel TTL): 10 µS
-Duración del pulso ECO de salida (nivel TTL): 100-25000 µS
-Dimensiones: 45mm x 20mm x 15mm
-Tiempo mínimo de espera entre una medida y el inicio de otra 20ms (recomendable 50ms)
Conexion:
-VCC (+5V DC)
-TRIG (Disparo del ultrasonido)
-ECHO (Recepción del ultrasonido)
-GND (0V)
Módulo Buzzer
PCB
Diagrama electrónico del pcb
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#include <U8g2lib.h> #define trigPin 9 // Pin del sensor ultrasónico TRIGER #define echoPin 10 // Pin del sensor ultrasónico ECHO #define buzzerPin 12 // U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); void setup(void) { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(buzzerPin, OUTPUT); u8g2.begin();//Inicilizamos el display oled } void loop(void) { long duracion, distancia; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duracion = pulseIn(echoPin, HIGH); distancia = duracion * 0.034 / 2; // Calcular la distancia en centímetros if(distancia <=9){//Tanque más lleno buzzerDelay1(); } if(distancia >=14){//Tanque más vacio buzzerDelay2(); } u8g2.clearBuffer(); // Limpiar el buffer de la pantalla u8g2.setFont(u8g2_font_ncenB14_tr); // Establecer la fuente // Mostrar la distancia en la pantalla u8g2.setCursor(0, 15); u8g2.print("Nivel de agua:"); u8g2.setCursor(0, 35); u8g2.print(distancia); u8g2.print(" cm al sensor"); u8g2.sendBuffer(); // Enviar la información del buffer a la pantalla delay(100); // Esperar un tiempo antes de la siguiente lectura } //Retardos para que suena el buzzer en forma fistinta dependiendo si está lleno o vacío el tanque void buzzerDelay1(){ digitalWrite(buzzerPin, HIGH); delay(150); digitalWrite(buzzerPin, LOW); delay(5); } void buzzerDelay2(){ digitalWrite(buzzerPin, HIGH); delay(50); digitalWrite(buzzerPin, LOW); delay(5); } |
PROYECTO RECOMENDADO