Código Arduino y vídeo: Grabadora de voz Arduino ISD1820

Código Arduino y vídeo: Grabadora de voz Arduino ISD1820

El ISD1820 es un módulo grabador de voz sencillo que te permite grabar y reproducir audio usando un Arduino. En este tutorial, aprenderás cómo configurar el ISD1820 con un Arduino para grabar hasta 20 segundos de sonido y reproducirlo bajo demanda. Este proyecto es perfecto para principiantes que desean explorar el procesamiento de audio con Arduino.

isd1820 voice recording module

A lo largo de este tutorial, encontrarás identificadores clave que se usan en el código, comoREC,PLAY_E, yPLAY_L. Estos identificadores corresponden a los pines utilizados para las funciones de grabación y reproducción. Además, los fragmentos de código proporcionados ayudarán a aclarar la lógica de programación detrás de este proyecto. Para una explicación más detallada, asegúrate de ver el video (a 00:00).

Hardware explicado

El componente principal de este proyecto es el módulo grabador de voz ISD1820, que puede grabar audio durante hasta 20 segundos. Cuenta con varios pines para controlar las funciones de grabación, reproducción y paso de audio. El módulo funciona con una tensión de alimentación de 3 V a 4,5 V, lo que lo hace compatible con la mayoría de las placas Arduino.

Además del módulo ISD1820, necesitarás una placa Arduino, un altavoz y un micrófono. El Arduino controlará las funciones de grabación y reproducción a través de pines digitales. El funcionamiento del módulo es sencillo: graba audio cuando el pin de grabación se pone en nivel alto y reproduce audio cuando se activan los pines de reproducción.

Detalles de la ficha técnica

FabricanteISD1820
Número de piezaISD1820
Voltaje lógico/E/S3.3 V típ.
Tensión de alimentación3.0 V a 4.5 V
Corriente en reposo0,5 µA típico.
Corriente de funcionamiento30 mA máx.
Tiempo de grabación20 s máx.
Tiempo de reproducción20 s máx.
PaqueteDIP de 8 pines

  • Asegúrese de que la tensión de alimentación esté entre 3.0 V y 4.5 V para evitar dañar el módulo.
  • Use resistencias para adaptar la señal de 5V del Arduino al nivel lógico de 3.3V para una conexión segura.
  • Supervise el consumo de corriente; el módulo puede consumir hasta 30 mA durante el funcionamiento.
  • Conecte un altavoz de baja potencia (0.5 W) a la salida de audio para la reproducción.
  • El módulo admite varias duraciones de grabación; ajuste el tiempo según sus necesidades.

Instrucciones de cableado

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder

Para cablear el ISD1820 a tu Arduino, comienza conectando los pines del módulo.VCCconecta el pin a la salida de 3.3V del Arduino. A continuación, conecta elGNDpin del módulo a uno de los pines de tierra del Arduino. Para los pines de control, conecte los pines del móduloRECpin al pin 2 del Arduino,PLAY_Eal pin 3,PLAY_Lal pin 4, yFTal pin 5.

Dado que el Arduino funciona a 5V, necesitará usar un divisor de tensión para conectar de forma segura los pines de control. Por ejemplo, conecte una resistencia de 5 kΩ desde el pin del Arduino hasta el pin de control del módulo, y luego conecte una resistencia de 3.3 kΩ desde el pin de control del módulo a tierra. Repita este proceso para cualquier pin de control adicional para asegurarse de que reciban los niveles de voltaje correctos.

Ejemplos de código y guía paso a paso

El siguiente fragmento de código define los pines utilizados para la grabación y la reproducción. Esto le permite hacer referencia fácilmente a estos pines en su código en lugar de usar valores fijos.

#define REC 2 // pin 2 is used for recording
#define PLAY_E 3 // pin 3 is used for playback-edge trigger
#define PLAY_L 4 // pin 4 is used for playback

En la función setup, inicializamos los pines como salidas. Esto garantiza que el Arduino pueda controlar el módulo ISD1820 de manera efectiva.

void setup() 
{
  pinMode(REC, OUTPUT); // set the REC pin as output
  pinMode(PLAY_L, OUTPUT); // set the PLAY_L pin as output
  pinMode(PLAY_E, OUTPUT); // set the PLAY_E pin as output
}

El bucle principal comprueba la entrada del usuario desde el monitor serie. Dependiendo del carácter recibido, activará las acciones correspondientes, como grabar o reproducir audio.

void loop() {
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    if (inChar == 'p' || inChar == 'P') {
      digitalWrite(PLAY_E, HIGH); // Start playback
      delay(50);
      digitalWrite(PLAY_E, LOW); // Stop playback
    }
}

Esta estructura condicional permite un control flexible del ISD1820 basado en la entrada del usuario, facilitando grabar y reproducir audio según sea necesario. Para más detalles, el código completo se encuentra debajo del artículo.

Demostración / Qué esperar

Una vez que todo esté configurado y el código esté subido, deberías poder grabar audio enviando elrcomando a través del monitor serie y reproducción usando elpcomando. El comportamiento esperado incluye una respuesta en el monitor serial que indique cuándo comienza y termina la grabación, así como cuándo inicia y finaliza la reproducción. Ten en cuenta el tiempo establecido en el código; por ejemplo, la grabación está configurada por 3 segundos y la reproducción por 5 segundos (en el video a 05:00).

Imágenes

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
72-This is the Arduino code and video: ISD1820 Arduino Voice Recorder
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

Archivo de Fritzing