Sistem Perekaman & Pemutaran Suara Berbasis Arduino dengan ISD1820
Bahan dan Komponen
- Arduino UNO × 1
- ISD1820 × 1
- Speaker: 0.25W, 8 ohm × 1
- Kabel jumper (umum) × 6
Tentang Proyek
Ide Di Baliknya!
Saya sedang mencari di internet perangkat yang merekam suara dan memutarnya lagi. Saya menemukan ISD1820, yang sangat terjangkau (hanya 3$), dan dapat merekam suara sendiri menggunakan beberapa tombol rekam dan putar. Saya perlu mengontrol perangkat ini menggunakan Arduino, saya berarti merekam dan memutar suara hanya melalui Arduino.
Proyek ini hanya untuk pemula dan bagi mereka yang ingin mempelajari cara kerja ISD1820 dengan Arduino, tetapi Anda dapat mengembangkannya ke skala yang jauh lebih besar.
Anda dapat mengunjungi www.gadgetprogrammers.online untuk deskripsi lengkap dan ide baru.
Cara Kerjanya!
Pertama, kita hanya merekam suara melalui ISD1820, yang dapat merekam 20 detik sekaligus (Anda juga dapat menyimpan suara di kartu SD), dan Anda dapat memutarnya berulang kali. Jadi di sini kita merekam suara saat pengguna menekan 'r' di serial monitor dan memutarnya saat pengguna menekan 'p' di serial monitor.
Itulah keseluruhan cara kerja sistem kami.
Berikut adalah fungsi pin (Anda dapat melewatinya):
- VCC – Sumber daya 3.3V
- GND – Ground daya
- REC – Input REC adalah sinyal rekam aktif-TINGGI. Modul mulai merekam kapan saja REC TINGGI. Pin ini harus tetap TINGGI selama durasi rekaman. REC memiliki prioritas atas sinyal pemutaran (PLAYL atau PLAYE).
- PLAYE – Pemutaran, diaktifkan tepi: Saat transisi TINGGI terdeteksi pada input ini, pemutaran berlanjut hingga penanda Akhir Pesan (EOM) ditemukan atau akhir ruang memori tercapai.
- PLAYL – Pemutaran, diaktifkan level, saat level input pin ini transisi dari RENDAH ke TINGGI, siklus pemutaran dimulai.
- Keluaran Speaker – Pin SP+ dan SP- memberikan pengemudi langsung untuk speaker dengan impedansi hingga 8Ω.
- MIC – Input Mikrofon, input mikrofon mentransfer sinyalnya ke pra-penguat pada chip.
- FT – Feed Through: Mode ini memungkinkan Mikrofon untuk mengemudi speaker langsung.
- P-E – Putar rekaman tanpa henti.
Mari Buat!
Silakan hubungkan seperti berikut ini:
- VCC => Arduino 5v
- GND => Arduino GND
- FT => Arduino pin 5
- Play L (PL) => Arduino pin 4
- PLAY_E (P-E) => Arduino Pin 3
- REC => Arduino pin 2
Setelah penulisan pin di atas, unggah kode SAMPLE1:
SAMPLE 1: JIKA ANDA INGIN PENGGUNA MEMUTUSKAN UNTUK MEREKAM SUARA
SAMPLE 2: OTOMATIS MEREKAM SUARA DURASI 3 DETIK DAN MEMUTARKAN DURASI 5 DETIK.
Sample 1:
/* * ISD1820 Arduino Voice Recorder * to record and play sound using Arduino and ISD1820 Sound Recorder * get this code from https://www.gadgetprogrammers.online /* * ISD1820 Arduino Voice Recorder * Code Written by Anshul Pareek for the purpose of education * on June 06, 2018 at 11:20 pm, */ #define REC 2 // pin 2 digunakan untuk merekam #define PLAY_E 3 // pin 3 digunakan untuk pemutaran-edge trigger #define FT 5 // pin 5 digunakan untuk feed through // dan akan TIDAK merekam #define playTime 5000 // waktu pemutaran 5 detik #define recordTime 3000 // waktu rekaman 3 detik Anda dapat memperpanjang waktu hingga 10 detik void setup() { pinMode(REC,OUTPUT);// set pin REC sebagai output pinMode(PLAY_E,OUTPUT);// set pin PLAY_E sebagai output pinMode(FT,OUTPUT);// set pin FT sebagai output Serial.begin(9600);// atur Serial monitor } void loop() { 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("Playbak Started"); delay(playTime); Serial.println("Playbak Ended"); break; } else if(inChar =='r' || inChar =='R'){ digitalWrite(REC, HIGH); Serial.println("Recording started"); delay(recordTime); digitalWrite(REC, LOW); Serial.println("Recording Stopped "); } Serial.println("###Serial Monitor Exited"); } Serial.println("### Enter r to record, p to play"); delay(500); }
Sample 2:
#define REC 2 // pin 2 digunakan untuk merekam #define PLAY_E 3 // pin 3 digunakan untuk pemutaran-edge trigger // saat PLAY_E TINGGI perangkat akan memulai pemutaran dan berlanjut #define FT 5 // pin 5 digunakan untuk feed through #define playTime 5000 // waktu pemutaran 5 detik #define recordTime 3000 // waktu rekaman 3 detik #define playLTime 900 // waktu pemutaran tekan dan lepaskan 0.9 detik void setup() { pinMode(REC,OUTPUT);// set pin REC sebagai output pinMode(PLAY_E,OUTPUT);// set pin PLAY_E sebagai output pinMode(FT,OUTPUT);// set pin FT sebagai output Serial.begin(9600);// atur Serial monitor } void loop() { digitalWrite(REC, HIGH); delay(recordTime); digitalWrite(REC, LOW); digitalWrite(PLAY_E, HIGH); delay(50); digitalWrite(PLAY_E, LOW); delay(playTime); delay(500); }
Jadi sekarang Anda telah membangun seluruh sistem, selamat!
SCOPE MASA DEPAN:
Anda dapat merekam suara dan menyimpannya di Kartu SD untuk tujuan masa depan dan Anda dapat membuat walkie talkie dan banyak lagi... sesuai dengan imajinasi Anda :)
Jika Anda suka silakan berbagi.......:)
Silakan kunjungi dan promosikan kami sehingga kami dapat membuat proyek baru untuk Anda www.gadgetprogrammers.online
Kode
sample 1Arduino
SILAKAN TEMPATKAN KODE INI DI ARDUINO DAN JALANKAN SETELAH RANGKAIAN DIBENTUK.
/* * ISD1820 Arduino Voice Recorder * to record and play sound using Arduino and ISD1820 Sound Recorder * get this code from https://www.gadgetprogrammers.online /* * ISD1820 Arduino Voice Recorder * Code Written by Anshul Pareek for the purpose of education * on June 06, 2018 at 11:20 pm, */ #define REC 2 // pin 2 digunakan untuk merekam #define PLAY_E 3 // pin 3 digunakan untuk pemutaran-edge trigger #define FT 5 // pin 5 digunakan untuk feed through // dan akan TIDAK merekam #define playTime 5000 // waktu pemutaran 5 detik #define recordTime 3000 // waktu rekaman 3 detik Anda dapat memperpanjang waktu hingga 10 detik void setup() { pinMode(REC,OUTPUT);// set pin REC sebagai output pinMode(PLAY_E,OUTPUT);// set pin PLAY_E sebagai output pinMode(FT,OUTPUT);// set pin FT sebagai output Serial.begin(9600);// atur Serial monitor } void loop() { 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("Playbak Started"); delay(playTime); Serial.println("Playbak Ended"); break; } else if(inChar =='r' || inChar =='R'){ digitalWrite(REC, HIGH); Serial.println("Recording started"); delay(recordTime); digitalWrite(REC, LOW); Serial.println("Recording Stopped "); } Serial.println("###Serial Monitor Exited"); } Serial.println("### Enter r to record, p to play"); delay(500); } SAMPLE 2Arduino
Merekam suara terus-menerus selama 3 detik dan memutar selama 5 detik
#define REC 2 // pin 2 digunakan untuk merekam #define PLAY_E 3 // pin 3 digunakan untuk pemutaran-edge trigger // saat PLAY_E TINGGI perangkat akan memulai pemutaran dan berlanjut #define FT 5 // pin 5 digunakan untuk feed through #define playTime 5000 // waktu pemutaran 5 detik #define recordTime 3000 // waktu rekaman 3 detik #define playLTime 900 // waktu pemutaran tekan dan lepaskan 0.9 detik void setup() { pinMode(REC,OUTPUT);// set pin REC sebagai output pinMode(PLAY_E,OUTPUT);// set pin PLAY_E sebagai output pinMode(FT,OUTPUT);// set pin FT sebagai output Serial.begin(9600);// atur Serial monitor } void loop() { digitalWrite(REC, HIGH); delay(recordTime); digitalWrite(REC, LOW); digitalWrite(PLAY_E, HIGH); delay(50); digitalWrite(PLAY_E, LOW); delay(playTime); delay(500); }
Skematik
