AED 28.10
Description
The ISD1820 Voice Record and Playback Module provides a simple way to record up to 10 seconds of audio and then play it back under MCU or manual control.
PACKAGE INCLUDES:
- ISD1820 Voice Record and Playback Module
KEY FEATURES OF ISD1820 VOICE RECORD AND PLAYBACK MODULE:
- Record and playback up to 10 seconds of audio.
- Pushbutton and MCU controllable
- Edge or level activated playback
- Built-in microphone
- On-chip 8-ohm speaker driver
- Duration and sample rate can be modified up to 20 seconds with resistor change
- Auto power-down mode
- 2.6 -5V operation
With the built-in microphone, you can record one message that is up to 10 seconds long. This can be extended up to 20 seconds with a resistor change. The message can be rerecorded up to 100,000 times and is non-volatile.
A small built-in audio amplifier can drive an 8-ohm speaker.
The main features of the module are shown below. The main features such as Record, PlayE and PlayL can be activated by Jumper
REC | RECORD – Pin is active HIGH to start recording and must remain high while the recording is in process. The red LED will light while recording. Once the pin goes LOW or it runs out of memory, an End-Of-Message (EOM) marker is automatically recorded. Pressing and holding down the pushbutton will also record a message. Release the button to stop the recording. |
PLAYE | PLAY Edge – Pin is edge activated when it transitions to HIGH. The recording will play until the EOM is reached. The pin can be set LOW while message plays and it will not terminate the message. When EOM is reached the red LED will flash. Pressing the pushbutton will play the entire recorded message. |
PLAYL | PLAY Level – Pin is an active HIGH. When the pin goes HIGH, the message will play until the pin is set back to LOW or the EOM is reached. Pressing the pushbutton will play the recorded message until the button is released or the EOM is reached. |
PTREPEAT | REPEAT Jumper– if moved to the right will play the recorded message continuously. |
FT | FT Jumper– if enabled it will e enable a Feed-Thru mode of operation. In this mode of operation, any audio picked up by the mic will be sent directly out to the speaker |
LED | LED Output – Normally HIGH, goes LOW when LED is lit |
VCC | VCC can range from 2.6 to 5.5V. Only one VCC pin needs to be connected |
GND | The ground should be common with the uC. Only one GND pin needs to be connected |
NC | No Connect |
The ISD1820 chip has a Resistor Controlled Oscillator input (ROSC) input. A resistor placed between the ROSC pin and ground sets the oscillator frequency and therefore sample rate and thus the maximum duration of the audio. As per the table below, a tradeoff can be made between using a shorter duration recording, but with a higher sample rate and bandwidth or the duration can be extended up to 20 seconds with a lower sample rate and bandwidth.
The module ships with a 100K resistor in location R4 that is connected to the ROSC pin on the ISD1820P chip. It is put into the circuit with the jumper at location P2. 100K is what sets the 10-second duration for the recording. R4 can be replaced, or the jumper can be removed and a different value can be jumpered from the header pin next to R4 to ground to change the recording characteristics per the table below.
ROSC | Duration | Sample Rate | Bandwidth |
80K Ohm | 8 Secs | 8.0kHz | 3.4kHz |
100K Ohm | 10 Secs | 6.4kHz | 2.6kHz |
120K Ohm | 12 Secs | 5.3kHz | 2.3kHz |
160K Ohm | 16 Secs | 4.0kHz | 1.7kHz |
200K Ohm | 20 Secs | 3.2kHz | 1.3kHz |
It is also possible to record at one rate and playback at another. That will serve to speed up or slow down the playback which might be useful for creating sound effects. A pot can be wired in for this purpose.
The power output is sufficient to drive a small speaker or the output can be used to drive the input of an audio amplifier if a louder sound is desired.
int Rec = 12; int Play = 13; void setup() { pinMode(Rec, OUTPUT); pinMode(Play, OUTPUT); } void loop() { digitalWrite(Rec, HIGH); delay(10000); digitalWrite(Rec, LOW); delay(1000); digitalWrite(Play, HIGH); delay(10000); digitalWrite(Play, LOW); delay(10000); }