Arduino Kodu ve Video: ISD1820 Arduino Ses Kaydedici
ISD1820, Arduino kullanarak ses kaydedip çalmanızı sağlayan basit bir ses kaydedici modülüdür. Bu eğitimde, ISD1820'yi bir Arduino ile nasıl kurarak 20 saniyeye kadar ses kaydedip komutla nasıl çalacağınızı öğreneceksiniz. Bu proje, Arduino ile ses işlemeyi keşfetmek isteyen yeni başlayanlar için mükemmeldir.

Bu eğitim boyunca, kodda kullanılan REC, PLAY_E ve PLAY_L gibi anahtar tanımlayıcıları bulacaksınız. Bu tanımlayıcılar, kayıt ve çalma işlevleri için kullanılan pinlere karşılık gelir. Ayrıca, sağlanan kod parçacıkları bu projenin arkasındaki programlama mantığını netleştirmeye yardımcı olacaktır. Daha ayrıntılı bir açıklama için videoyu kontrol ettiğinizden emin olun (videoda 00:00'da).
Donanım Açıklaması
Bu projenin ana bileşeni, 20 saniyeye kadar ses kaydedebilen ISD1820 ses kaydedici modülüdür. Kayıt, çalma ve doğrudan geçiş işlevlerini kontrol etmek için çeşitli pinlere sahiptir. Modül, 3V ile 4.5V arasında bir besleme voltajıyla çalışır ve bu da onu çoğu Arduino kartıyla uyumlu hale getirir.
ISD1820 modülüne ek olarak bir Arduino kartı, bir hoparlör ve bir mikrofona ihtiyacınız olacaktır. Arduino, kayıt ve çalma işlevlerini dijital pinler aracılığıyla kontrol edecektir. Modülün çalışması basittir: kayıt pini yüksek ayarlandığında ses kaydeder ve çalma pinleri etkinleştirildiğinde ses çalar.
Veri Sayfası Ayrıntıları
| Üretici | ISD1820 |
|---|---|
| Parça numarası | ISD1820 |
| Mantık/G/Ç voltajı | 3.3 V tip. |
| Besleme voltajı | 3.0 V ila 4.5 V |
| Boşta akımı | 0.5 µA tip. |
| Çalışma akımı | 30 mA maks. |
| Kayıt süresi | 20 sn maks. |
| Çalma süresi | 20 sn maks. |
| Paket | 8-DIP |
- Modüle zarar vermemek için besleme voltajının 3.0 V ile 4.5 V arasında olduğundan emin olun.
- Güvenli arayüz için 5V Arduino sinyalini 3.3V mantık seviyesine düşürmek üzere dirençler kullanın.
- Akım tüketimini izleyin; modül çalışma sırasında 30 mA'ye kadar çekebilir.
- Çalma için ses çıkışına düşük güçlü bir hoparlör (0.5 W) bağlayın.
- Modül çeşitli kayıt uzunluklarını destekler; zamanlamayı ihtiyaçlarınıza göre ayarlayın.
Bağlantı Talimatları

ISD1820'yi Arduino'nıza bağlamak için modülün VCC pinini Arduino'daki 3.3V çıkışına bağlayarak başlayın. Ardından, modülün GND pinini Arduino'nun toprak pinlerinden birine bağlayın. Kontrol pinleri için modülün REC pinini Arduino pin 2'ye, PLAY_E pinini pin 3'e, PLAY_L pinini pin 4'e ve FT pinini pin 5'e bağlayın.
Arduino 5V ile çalıştığından, kontrol pinlerini güvenli bir şekilde bağlamak için bir voltaj bölücü kullanmanız gerekecektir. Örneğin, Arduino pininden modüldeki kontrol pinine 5 kΩ'luk bir direnç bağlayın ve ardından modül kontrol pininden toprağa 3.3 kΩ'luk bir direnç bağlayın. Ek kontrol pinleri için doğru voltaj seviyelerini aldıklarından emin olmak üzere bu işlemi tekrarlayın.
Kod Örnekleri ve Açıklama
Aşağıdaki kod parçacığı, kayıt ve çalma için kullanılan pinleri tanımlar. Bu, kodunuzda sabit değerler kullanmak yerine bu pinlere kolayca başvurmanızı sağlar.
#define REC 2 // pin 2 kayıt için kullanılır
#define PLAY_E 3 // pin 3 çalma-kenar tetikleme için kullanılır
#define PLAY_L 4 // pin 4 çalma için kullanılır
Kurulum fonksiyonunda pinleri çıkış olarak başlatırız. Bu, Arduino'nun ISD1820 modülünü etkili bir şekilde kontrol edebilmesini sağlar.
void setup()
{
pinMode(REC, OUTPUT); // REC pinini çıkış olarak ayarla
pinMode(PLAY_L, OUTPUT); // PLAY_L pinini çıkış olarak ayarla
pinMode(PLAY_E, OUTPUT); // PLAY_E pinini çıkış olarak ayarla
}
Ana döngü, seri monitörden kullanıcı girişini kontrol eder. Alınan karaktere bağlı olarak, ses kaydetme veya çalma gibi uygun eylemleri tetikler.
void loop() {
while (Serial.available() > 0) {
char inChar = (char)Serial.read();
if (inChar == 'p' || inChar == 'P') {
digitalWrite(PLAY_E, HIGH); // Çalmayı başlat
delay(50);
digitalWrite(PLAY_E, LOW); // Çalmayı durdur
}
}
Bu koşullu yapı, kullanıcı girişine dayalı olarak ISD1820'nin esnek kontrolüne olanak tanır ve gerektiğinde ses kaydetmeyi ve çalmayı kolaylaştırır. Daha fazla ayrıntı için, kodun tamamı makalenin altında yüklenir.
Gösterim / Beklentiler
Her şey kurulduktan ve kod yüklendikten sonra, seri monitörden r komutunu göndererek ses kaydedebilmeli ve p komutunu kullanarak çalabilmelisiniz. Beklenen davranış, kaydın ne zaman başladığını ve durduğunu ve ayrıca çalmanın ne zaman başlayıp bittiğini belirten seri monitörde bir yanıt içerir. Kodda ayarlanan zamanlamayı aklınızda bulundurun; örneğin, kayıt 3 saniye ve çalma 5 saniye olarak ayarlanmıştır (videoda 05:00'da).
/*
* 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);
}
İhtiyacın olabileceğini düşünüyor
-
Amazon
-
eBayISD1820 Voice Recorder from eBayebay.us
-
AliExpressISD1820 Voice Recorder from AliExpresss.click.aliexpress.com
Kaynaklar ve referanslar
Henüz kaynak yok.
Dosyalar📁
Fritzing Dosyası
-
ISD1820 voice recorder module
ISD1820-module.fzpz0.01 MB