Search Code

Arduino Kodu ve Video: ISD1820 Arduino Ses Kaydedici

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.

isd1820 voice recording module

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ı

ÜreticiISD1820
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üresi20 sn maks.
Çalma süresi20 sn maks.
Paket8-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ı

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder

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).

Görseller

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
Dil: C++
/*
 * 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

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Fritzing Dosyası