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
}