0% encontró este documento útil (0 votos)
20 vistas1 página

Medición de Nivel de Tanque con Arduino

Este código mide el nivel de un tanque usando un sensor ultrasónico. Calcula la distancia al líquido, luego usa la geometría del tanque cilíndrico para determinar el volumen actual y porcentaje de llenado. Imprime periódicamente el nivel del tanque por el puerto serial.

Cargado por

juan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas1 página

Medición de Nivel de Tanque con Arduino

Este código mide el nivel de un tanque usando un sensor ultrasónico. Calcula la distancia al líquido, luego usa la geometría del tanque cilíndrico para determinar el volumen actual y porcentaje de llenado. Imprime periódicamente el nivel del tanque por el puerto serial.

Cargado por

juan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

const int trigPin = 2; // Pin del trigger del sensor

const int echoPin = 3; // Pin del echo del sensor


const float tankRadius = 10; // Radio del tanque en metros
const float tankHeight = 20; // Altura del tanque en metros
const float tankVolume = 1000; // Volumen del tanque en metros cúbicos

void setup() {
[Link](9600); // Inicializar la comunicación serial
pinMode(trigPin, OUTPUT); // Configurar el pin del trigger como salida
pinMode(echoPin, INPUT); // Configurar el pin del echo como entrada
}

void loop() {
// Medir la distancia con el sensor ultrasónico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
float distance = pulseIn(echoPin, HIGH) / 58.0;

// Calcular el nivel del tanque


float h = tankHeight - distance; // Altura del líquido en metros
float r = tankRadius; // Radio del líquido en metros
float v = (1.0 / 3.0) * PI * h * h * (3*r - h); // Volumen del líquido en metros
cúbicos
float level = v / tankVolume * 100; // Nivel del líquido en porcentaje

// Imprimir el nivel del tanque por la comunicación serial


[Link]("Nivel del tanque: ");
[Link](level);
[Link]("%");

delay(1000); // Esperar un segundo antes de medir de nuevo


}

También podría gustarte