Kode Arduino dan Video: Perekam Suara ISD1820 Arduino
ISD1820 adalah modul perekam suara sederhana yang memungkinkan Anda merekam dan memutar audio menggunakan Arduino. Dalam tutorial ini, Anda akan belajar cara menyiapkan ISD1820 dengan Arduino untuk merekam suara hingga 20 detik dan memutarnya kembali sesuai perintah. Proyek ini sangat cocok untuk pemula yang ingin menjelajahi pemrosesan audio dengan Arduino.

Sepanjang tutorial ini, Anda akan menemukan pengidentifikasi kunci yang digunakan dalam kode, seperti REC, PLAY_E, dan PLAY_L. Pengidentifikasi ini sesuai dengan pin yang digunakan untuk fungsi perekaman dan pemutaran. Selain itu, potongan kode yang disediakan akan membantu memperjelas logika pemrograman di balik proyek ini. Untuk penjelasan yang lebih rinci, pastikan untuk menonton video di (di video pada 00:00).
Penjelasan Perangkat Keras
Komponen utama dari proyek ini adalah modul perekam suara ISD1820, yang dapat merekam audio hingga 20 detik. Modul ini memiliki beberapa pin untuk mengontrol fungsi perekaman, pemutaran, dan feed-through. Modul beroperasi pada tegangan suplai 3V hingga 4.5V, sehingga kompatibel dengan sebagian besar papan Arduino.
Selain modul ISD1820, Anda akan membutuhkan papan Arduino, speaker, dan mikrofon. Arduino akan mengontrol fungsi perekaman dan pemutaran melalui pin digital. Pengoperasian modul ini sederhana: modul merekam audio ketika pin rekam disetel tinggi dan memutar audio ketika pin pemutaran diaktifkan.
Detail Datasheet
| Produsen | ISD1820 |
|---|---|
| Nomor bagian | ISD1820 |
| Tegangan logika/IO | 3.3 V typ. |
| Tegangan suplai | 3.0 V hingga 4.5 V |
| Arus idle | 0.5 µA typ. |
| Arus operasi | 30 mA maks. |
| Waktu perekaman | 20 detik maks. |
| Waktu pemutaran | 20 detik maks. |
| Kemasan | 8-DIP |
- Pastikan tegangan suplai antara 3.0 V dan 4.5 V untuk menghindari kerusakan pada modul.
- Gunakan resistor untuk menurunkan sinyal 5V Arduino ke level logika 3.3V agar antarmuka aman.
- Pantau konsumsi arus; modul dapat menarik hingga 30 mA selama pengoperasian.
- Hubungkan speaker daya rendah (0.5 W) ke output audio untuk pemutaran.
- Modul mendukung berbagai durasi perekaman; sesuaikan waktu berdasarkan kebutuhan Anda.
Instruksi Pengkabelan

Untuk menghubungkan ISD1820 ke Arduino Anda, mulailah dengan menghubungkan pin VCC modul ke output 3.3V pada Arduino. Selanjutnya, hubungkan pin GND modul ke salah satu pin ground Arduino. Untuk pin kontrol, hubungkan pin REC modul ke pin Arduino 2, PLAY_E ke pin 3, PLAY_L ke pin 4, dan FT ke pin 5.
Karena Arduino beroperasi pada 5V, Anda perlu menggunakan pembagi tegangan untuk menghubungkan pin kontrol dengan aman. Misalnya, hubungkan resistor 5 kΩ dari pin Arduino ke pin kontrol pada modul, lalu hubungkan resistor 3.3 kΩ dari pin kontrol modul ke ground. Ulangi proses ini untuk pin kontrol tambahan lainnya untuk memastikan mereka menerima level tegangan yang benar.
Contoh Kode & Penjelasan
Potongan kode berikut mendefinisikan pin yang digunakan untuk perekaman dan pemutaran. Ini memungkinkan Anda dengan mudah mereferensikan pin-pin ini dalam kode daripada menggunakan nilai hardcoded.
#define REC 2 // pin 2 digunakan untuk perekaman
#define PLAY_E 3 // pin 3 digunakan untuk pemicu tepi pemutaran
#define PLAY_L 4 // pin 4 digunakan untuk pemutaran
Dalam fungsi setup, kita menginisialisasi pin sebagai output. Ini memastikan bahwa Arduino dapat mengontrol modul ISD1820 secara efektif.
void setup()
{
pinMode(REC, OUTPUT); // set pin REC sebagai output
pinMode(PLAY_L, OUTPUT); // set pin PLAY_L sebagai output
pinMode(PLAY_E, OUTPUT); // set pin PLAY_E sebagai output
}
Loop utama memeriksa input pengguna dari monitor serial. Tergantung pada karakter yang diterima, ia akan memicu tindakan yang sesuai, seperti merekam atau memutar audio.
void loop() {
while (Serial.available() > 0) {
char inChar = (char)Serial.read();
if (inChar == 'p' || inChar == 'P') {
digitalWrite(PLAY_E, HIGH); // Mulai pemutaran
delay(50);
digitalWrite(PLAY_E, LOW); // Hentikan pemutaran
}
}
Struktur kondisional ini memungkinkan kontrol yang fleksibel terhadap ISD1820 berdasarkan input pengguna, sehingga memudahkan untuk merekam dan memutar audio sesuai kebutuhan. Untuk detail lebih lanjut, kode lengkap dimuat di bawah artikel.
Demonstrasi / Apa yang Diharapkan
Setelah semuanya disiapkan dan kode diunggah, Anda seharusnya dapat merekam audio dengan mengirim perintah r melalui monitor serial dan memutar menggunakan perintah p. Perilaku yang diharapkan mencakup respons di monitor serial yang menunjukkan kapan perekaman dimulai dan berhenti, serta kapan pemutaran dimulai dan berakhir. Perlu diingat waktu yang diatur dalam kode; misalnya, perekaman diatur selama 3 detik, dan pemutaran selama 5 detik (di video pada 05:00).
/*
* ISD1820 Arduino Voice Recorder
* to record and playback sound using Arduino and ISD1820 Sound Recorder
* Watch the video https://youtu.be/IfK8z_o5vbk
* get this code from https://robojax.com
* Get this code and other Arduino codes from Robojax.com/RJT58
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
/*
* ISD1820 Arduino Voice Recorder
* Code Written by Ahmad Shamshiri for Robojax.com
* on Jan 04, 2018 at 08:57, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*/
#define REC 2 // pin 2 is used for recording
#define PLAY_E 3 // pin 3 , P-E is used for playback-edge trigger
// when PLAY_E goes HIGH, playback STARTS and continues
// ISD1820 Arduino Voice Recorder for Robojax.com
#define PLAY_L 4 // pin 4 , P-Lis used for playback
// when PLAY_L is HIGH, it will playback. As soon as it goes LOW, playback STOPS
// So you have to keep it HIGH to keep playing
#define FT 5 // pin 5 is used for feed through
// if the SPI (speaker) pin is used to send audio to another device,
// set FT to high and any audio from the microphone will pass through the SPI connector
// and will NOT record
#define playTime 5000 // playback time 5 seconds
#define recordTime 3000 // recording time 3 seconds
#define playLTime 900 // press and release playback time 0.9 seconds
void setup()
{
// ISD1820 Arduino Voice Recorder for Robojax.com
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
pinMode(FT,OUTPUT);// set the FT pin as output
Serial.begin(9600);// set up Serial monitor
}
void loop() {
// ISD1820 Arduino Voice Recorder for Robojax.com
while (Serial.available() > 0) {
char inChar = (char)Serial.read();
if(inChar =='p' || inChar =='P'){
digitalWrite(PLAY_E, HIGH);
delay(50);
digitalWrite(PLAY_E, LOW);
Serial.println("Playback Started");
delay(playTime);
Serial.println("Playback Ended");
break;
}// if
else if(inChar =='r' || inChar =='R'){
digitalWrite(REC, HIGH);
Serial.println("Recording started");
delay(recordTime);
digitalWrite(REC, LOW);
Serial.println("Recording Stopped ");
}
else if(inChar =='l' || inChar =='L'){
digitalWrite(PLAY_L, HIGH);
Serial.println("Playback L Started");
delay(playLTime);
digitalWrite(PLAY_L, LOW);
Serial.println("Playback L Ended");
}
// ISD1820 Arduino Voice Recorder for Robojax.com
Serial.println("**** Serial Monitor Exited");
}// wihile
Serial.println("**** Enter r to record, p to play");
delay(500);
}
Hal-hal yang mungkin Anda butuhkan
-
Amazon
-
eBayISD1820 voice recorder from eBayebay.us
-
AliExpressISD1820 voice recorder from AliExpresss.click.aliexpress.com
Sumber daya & referensi
Belum ada sumber daya.
Berkas📁
File Fritzing
-
ISD1820 voice recorder module
ISD1820-module.fzpz0.01 MB