9 Sensores Análogos de Arduino

Sensor de sonido KY-037


Módulo que detecta sonidos .mediante un micrófono electret y entrega señales analógicas y digitales. Tiene dos potenciómetros para ajustar la sensibilidad del micrófono y el umbral de detección del canal digital.0


¿Qué es un micrófono electret?

Un micrófono electret es un tipo de micrófono de condensador que usa un material electret (un dieléctrico con carga eléctrica permanente) para detectar sonidos y convertirlos en señales eléctricas.

Funcionamiento del micrófono electret

  1. Captación del sonido:
    • Una membrana delgada vibra con las ondas sonoras.
  2. Variación de la capacitancia:
    • La membrana está cerca de una placa fija, formando un condensador.
    • Cuando la membrana vibra, la capacitancia cambia, generando variaciones de voltaje.
  3. Amplificación con FET interno:
    • Un pequeño transistor de efecto de campo (FET) amplifica la señal, ya que el micrófono genera una corriente muy débil.
  4. Salida de la señal:
    • La señal amplificada puede ser procesada por un circuito externo, como un sensor de sonido KY-037 o una tarjeta de sonido en dispositivos de grabación.

Ejemplo de aplicación KY 037

  • En el KY-037, el micrófono electret detecta sonidos y genera una señal analógica proporcional a la intensidad del sonido, que se puede leer con Arduino.
  • También se usa en micrófonos de celulares, audífonos, cámaras y equipos de grabación por su pequeño tamaño y bajo consumo.


Características principales del sensor

  • Salida digital (D0): Se activa cuando el sonido supera el umbral ajustado.
  • Salida analógica (A0): Proporciona un voltaje proporcional a la intensidad del sonido.
  • Tensión de operación: 3.3V - 5V (compatible con Arduino).

Actividad de Simulación de KY-037 con Potenciómetro

Objetivo: En esta actividad se simulará el comportamiento del micrófono KY-037 utilizando un potenciómetro para generar una señal variable que se leerá a través del puerto serial de un Arduino. El propósito es emular el comportamiento de un micrófono sin necesidad de capturar sonido real, solo variando el valor de voltaje como lo haría un micrófono al captar diferentes intensidades sonoras.


---

Materiales:

1 Arduino (cualquier modelo con entrada analógica)

1 Potenciómetro (10kΩ recomendado)

2 Cables de conexión

1 Resistencia de 10kΩ (opcional, si se desea un divisor de voltaje más preciso)

1 Fuente de alimentación de 5V (como la que proporciona Arduino)

1 PC con el entorno de desarrollo de Arduino (IDE)



---

Esquema de conexión:

1. Conecta un extremo del potenciómetro a 5V (fuente de alimentación de Arduino).


2. Conecta el otro extremo del potenciómetro a GND (tierra).


3. Conecta el terminal central (wiper) del potenciómetro al pin analógico A0 del Arduino. Este será el punto de salida de la señal variable.


4. (Opcional) Usa una resistencia en serie si deseas ajustar mejor el rango de voltaje.




---

Código para Arduino:

int valorPot = 0; // Variable para almacenar el valor leído del potenciómetro

void setup() {
  Serial.begin(9600); // Iniciar la comunicación serie
}

void loop() {
  valorPot = analogRead(A0); // Leer el valor analógico de A0
  Serial.println(valorPot); // Imprimir el valor en el monitor serie
  delay(100); // Espera de 100 ms
}


---

Procedimiento:

1. Conectar los componentes: Realiza las conexiones como se indica en el esquema, asegurándote de que el potenciómetro esté correctamente conectado al pin A0 del Arduino.


2. Cargar el código en Arduino: Abre el IDE de Arduino y carga el código proporcionado. Esto permitirá que el Arduino lea continuamente el valor del potenciómetro conectado a A0.


3. Monitorear la salida serial: Una vez cargado el código, abre el Monitor Serial en el IDE de Arduino. El valor leído por el Arduino de la entrada analógica A0 (proveniente del potenciómetro) aparecerá en el monitor serial.




---

Explicación de los resultados:

El potenciómetro variará su resistencia interna conforme lo gires, lo que hará que el voltaje en el terminal central (wiper) cambie entre 0V y 5V.

El valor leído por el pin A0 del Arduino será un número entre 0 y 1023, que representa el voltaje que el potenciómetro está generando, mapeado en 10 bits (de 0 a 1023).

Al girar el potenciómetro:

Si lo giras hacia un extremo, el valor en el monitor serial será bajo (cerca de 0), representando un sonido muy débil o ausente.

Si lo giras al otro extremo, el valor será alto (cerca de 1023), emulando un sonido fuerte o intenso.



En resumen, lo que verás en el monitor serial es una señal de voltaje variable, similar a lo que un micrófono haría al captar sonidos de distintas intensidades. Aunque el potenciómetro no detecta sonido real, su variación de voltaje puede ser utilizada para emular el comportamiento de un micrófono en cuanto a la variabilidad de la señal en función de la "intensidad" del sonido.


---

Conclusión:

A través de este ejercicio, hemos simulado el comportamiento de un micrófono utilizando un potenciómetro como generador de señales analógicas. El monitor serial en Arduino muestra cómo el voltaje varía, emulando cómo un micrófono podría generar señales en respuesta a cambios en la intensidad del sonido. Esto te permite experimentar con la lectura de señales análogas sin necesidad de captar sonido real.

Sensor de nivel de agua

Definición del Sensor de Nivel de Agua

Este sensor es un sensor de nivel de agua que detecta la presencia o ausencia de líquido mediante la conductividad eléctrica entre sus pistas de cobre. Funciona como un divisor de voltaje y genera una señal analógica proporcional al nivel de agua que lo cubre.


---

Detalles Importantes del Sensor

1. Voltaje de operación: 3.3V - 5V


2. Salida: Señal analógica (proporcional a la cantidad de agua)


3. Interfaz: 3 pines (VCC, GND, y SIG)


4. Principio de funcionamiento: Al cubrirse con agua, la resistencia disminuye y el voltaje de salida aumenta.




---

Conexión con Arduino

Conectaremos el sensor al Arduino de la siguiente manera:

VCC → 5V en Arduino

GND → GND en Arduino

SIG → Entrada analógica A0 en Arduino


Para controlar un servomotor, conectaremos:

Cable rojo del servo → 5V en Arduino

Cable negro del servo → GND en Arduino

Cable amarillo/blanco del servo → Pin digital 9 en Arduino



---

Código para Leer el Sensor y Mostrar Datos en el Monitor Serial

#include <Servo.h> // Librería para controlar el servomotor

Servo miServo; // Crear un objeto para el servomotor
int pinSensor = A0; // Entrada analógica del sensor
int pinServo = 9; // Pin del servomotor

void setup() {
  Serial.begin(9600); // Iniciar comunicación serial
  miServo.attach(pinServo); // Asignar el servo al pin 9
  miServo.write(0); // Posicionar el servo en 0°
}

void loop() {
  int lectura = analogRead(pinSensor); // Leer el valor del sensor
  Serial.print("Nivel de Agua: ");      
  Serial.println(lectura); // Imprimir el valor en el Monitor Serial

  // Controlar el servomotor si el nivel de agua es alto
  if (lectura > 500) { 
    miServo.write(90); // Mover el servo a 90°
  } else {
    miServo.write(0); // Mantener en 0° si el nivel de agua es bajo
  }

  delay(500); // Pequeña pausa antes de la siguiente lectura
}


---

Explicación del Código

1. Importamos la librería Servo.h y creamos un objeto miServo.


2. Configuramos los pines en setup(), iniciando el servo en 0°.


3. En loop():

Leemos el sensor con analogRead(A0).

Mostramos el valor en el Monitor Serial con Serial.println(lectura).

Si el nivel de agua es alto (lectura > 500), el servomotor se mueve a 90°.

Si el nivel es bajo, el servo vuelve a 0°.

Esperamos 500 ms antes de la siguiente lectura.





---

Comportamiento en el Monitor Serial

Cuando se sumerge el sensor en agua, el Monitor Serial mostrará valores altos. Si el sensor está seco, los valores serán bajos.

Ejemplo de salida en el Monitor Serial:

Nivel de Agua: 120
Nivel de Agua: 650 <-- Se detectó agua
Nivel de Agua: 700
Nivel de Agua: 150 <-- Agua bajó

Cuando los valores sean mayores a 500, el servomotor se moverá a 90°, indicando la presencia de agua. Cuando sean menores, regresará a 0°.


---

Resumen de la Asociación con el Servomotor

Sin agua → Servo en 0°

Con agua → Servo en 90°


Este sistema puede usarse para activar válvulas o alarmas según el nivel de agua detectado.

Interpretación de los Valores en el Monitor Serial

Cuando conectamos el sensor a Arduino y abrimos el Monitor Serial, veremos una serie de valores numéricos que indican la lectura de voltaje del sensor. Estos valores pueden variar entre 0 y 1023, ya que Arduino usa una conversión analógica-digital (ADC) de 10 bits.


---

Ejemplo de Salida en el Monitor Serial

Si el sensor está seco (sin agua), la resistencia es alta y la lectura será cercana a 0:

Nivel de Agua: 20
Nivel de Agua: 15
Nivel de Agua: 10

Si el sensor empieza a mojarse, la resistencia disminuye y el valor aumenta:

Nivel de Agua: 300
Nivel de Agua: 450

Cuando el sensor está sumergido completamente, la lectura será alta (cercana a 1023 si está bien sumergido):

Nivel de Agua: 850
Nivel de Agua: 900
Nivel de Agua: 980


---

Cómo Interpretamos Estos Valores

0 - 100 → El sensor está seco o apenas hay agua.

100 - 500 → Hay algo de agua, pero el nivel es bajo.

500 - 800 → El sensor está moderadamente sumergido.

800 - 1023 → El sensor está completamente sumergido en agua.



---

Relación con el Servomotor

Si el valor en el Monitor Serial es menor a 500, el servomotor se queda en 0°.

Si el valor es mayor a 500, el servomotor se mueve a 90°.


Ejemplo de Monitor Serial con el servo en acción:

Nivel de Agua: 120 → Servo en 0°
Nivel de Agua: 600 → Servo en 90°
Nivel de Agua: 750 → Servo en 90°
Nivel de Agua: 300 → Servo en 0°

Este comportamiento nos ayuda a interpretar la cantidad de agua detectada y a tomar decisiones, como activar una válvula o una bomba cuando el nivel es alto.




No hay comentarios:

Publicar un comentario

JIJIJIJIJI

ACTIVIDAD FINAL DEL MODULO

PARTE 1 : SIMULACION Enunciado Diseñar un circuito con Arduino que mida la temperatura usando un sensor TMP36 y controle un servomotor, movi...