Está en la página 1de 3

me podrias dar un ejemplo en arduino de como medir un nivel de un liquido

ChatGPT
¡Por supuesto! Una forma común de medir el nivel de un líquido en Arduino es
utilizar un sensor de nivel de líquido, como el sensor de nivel de líquido
ultrasónico HC-SR04.

Para usar el sensor HC-SR04, conecta el pin VCC del sensor al pin 5V de Arduino, el
pin GND del sensor al pin GND de Arduino, el pin TRIG del sensor al pin digital 7
de Arduino y el pin ECHO del sensor al pin digital 6 de Arduino.

Aquí hay un ejemplo de código para leer el nivel de un líquido usando el sensor HC-
SR04 y mostrar la lectura en el monitor serie de Arduino:

scss
Copy code
#define TRIG_PIN 7
#define ECHO_PIN 6

void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}

void loop() {
// Enviar un pulso de 10 microsegundos al sensor
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

// Medir la duración del pulso de eco del sensor


long duration = pulseIn(ECHO_PIN, HIGH);

// Convertir la duración en distancia en centímetros


float distance_cm = duration / 58.0;

// Mostrar la distancia en el monitor serie


Serial.print("Distancia: ");
Serial.print(distance_cm);
Serial.println(" cm");

delay(500);
}
Este código envía un pulso al sensor HC-SR04, mide la duración del eco del pulso y
lo convierte en una distancia en centímetros. Luego, muestra la distancia en el
monitor serie de Arduino. Para medir el nivel de un líquido, simplemente coloca el
sensor en la parte superior del líquido y lee la distancia mostrada en el monitor
serie. La distancia medida corresponderá al nivel del líquido.

User
al ejemplo anterior como le puedo colocar un buzzer para que suene a cierto nivel
del liquido
ChatGPT
Para agregar un buzzer que suene cuando el nivel del líquido alcance un cierto
valor, puedes modificar el ejemplo anterior de la siguiente manera:

Agregar una constante que represente el nivel máximo del líquido que deseas
detectar. Por ejemplo, si deseas que el buzzer suene cuando el nivel del líquido
alcanza los 10 cm, puedes agregar la siguiente línea al principio del código:

arduino
Copy code
const int NIVEL_MAXIMO = 10;
Agregar una variable booleana que indique si el buzzer está activado o no.
Inicialmente, el buzzer debe estar desactivado. Agrega la siguiente línea al
principio del código:

arduino
Copy code
boolean buzzer_activo = false;
Agregar un zumbador (buzzer) a la placa de Arduino. Conecta el pin positivo del
buzzer al pin digital 8 de Arduino y el pin negativo del buzzer al pin GND de
Arduino.

Dentro del bucle loop(), después de leer la distancia del sensor, agrega la
siguiente lógica para activar o desactivar el buzzer según el nivel del líquido:

scss
Copy code
if (distance_cm >= NIVEL_MAXIMO && !buzzer_activo) {
tone(8, 1000); // activar el buzzer
buzzer_activo = true;
}
else if (distance_cm < NIVEL_MAXIMO && buzzer_activo) {
noTone(8); // desactivar el buzzer
buzzer_activo = false;
}
La primera condición comprueba si la distancia medida es mayor o igual al nivel
máximo deseado y si el buzzer aún no está activado. Si es así, activa el buzzer con
una frecuencia de 1000 Hz y establece la variable buzzer_activo en true.

La segunda condición comprueba si la distancia medida es menor que el nivel máximo


deseado y si el buzzer aún está activado. Si es así, desactiva el buzzer y
establece la variable buzzer_activo en false.

El código completo se vería así:

scss
Copy code
#define TRIG_PIN 7
#define ECHO_PIN 6
const int NIVEL_MAXIMO = 10;
boolean buzzer_activo = false;

void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(8, OUTPUT); // Configurar el pin 8 como salida para el buzzer
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

long duration = pulseIn(ECHO_PIN, HIGH);


float distance_cm = duration / 58.0;

Serial.print("Distancia: ");
Serial.print(distance_cm);
Serial.println(" cm");

if (distance_cm >= NIVEL_MAXIMO && !buzzer_activo) {


tone(8, 1000); // activar el buzzer
buzzer_activo = true;
}
else if (distance_cm < NIVEL_MAXIMO && buzzer_activo) {
noTone(8); // desactivar el buzzer
buzzer_activo = false;
}

delay(500);
}

También podría gustarte