کوڈ تلاش کریں

آرڈوئینو کوڈ اور ویڈیو: ISD1820 آرڈوئینو وائس ریکارڈر

آرڈوئینو کوڈ اور ویڈیو: ISD1820 آرڈوئینو وائس ریکارڈر

ISD1820 ایک سادہ وائس ریکارڈر ماجیول ہے جو آپ کو Arduino استعمال کرتے ہوئے آڈیو ریکارڈ کرنے اور چلانے کی اجازت دیتا ہے۔ اس ٹیوٹوریل میں، آپ سیکھیں گے کہ ISD1820 کو Arduino کے ساتھ کیسے ترتیب دیا جائے تاکہ 20 سیکنڈ تک آواز ریکارڈ کی جا سکے اور حکم پر اسے چلایا جا سکے۔ یہ پروجیکٹ ان ابتدائی افراد کے لیے بہترین ہے جو Arduino کے ساتھ آڈیو پروسیسنگ کو دریافت کرنا چاہتے ہیں۔

isd1820 voice recording module

اس پورے ٹیوٹوریل میں، آپ کو کوڈ میں استعمال ہونے والے اہم شناخت کنندگان ملیں گے، جیسے REC، PLAY_E، اور PLAY_L۔ یہ شناخت کنندگان ریکارڈنگ اور پلے بیک کے افعال کے لیے استعمال ہونے والے پنوں کے مطابق ہیں۔ مزید برآں، فراہم کردہ کوڈ سنیپٹس اس پروجیکٹ کے پیچھے پروگرامنگ منطق کو واضح کرنے میں مدد کریں گے۔ مزید تفصیلی وضاحت کے لیے، ویڈیو کو ضرور دیکھیں (ویڈیو میں 00:00 پر)۔

ہارڈویئر کی وضاحت

اس پروجیکٹ کا مرکزی جزو ISD1820 وائس ریکارڈر ماجیول ہے، جو 20 سیکنڈ تک آڈیو ریکارڈ کر سکتا ہے۔ اس میں ریکارڈنگ، پلے بیک، اور فیڈ تھرو کے افعال کو کنٹرول کرنے کے لیے کئی پن موجود ہیں۔ ماجیول 3V سے 4.5V کی سپلائی وولٹیج پر کام کرتا ہے، جو اسے زیادہ تر Arduino بورڈز کے ساتھ مطابقت رکھتا ہے۔

ISD1820 ماجیول کے علاوہ، آپ کو ایک Arduino بورڈ، ایک اسپیکر، اور ایک مائیکروفون کی ضرورت ہوگی۔ Arduino ڈیجیٹل پنوں کے ذریعے ریکارڈنگ اور پلے بیک کے افعال کو کنٹرول کرے گا۔ ماجیول کا آپریشن سیدھا ہے: جب ریکارڈ پن کو ہائی سیٹ کیا جاتا ہے تو یہ آڈیو ریکارڈ کرتا ہے اور جب پلے بیک پن فعال ہوتے ہیں تو آڈیو چلاتا ہے۔

ڈیٹاشیٹ کی تفصیلات

مینوفیکچررISD1820
پارٹ نمبرISD1820
لاجک/IO وولٹیج3.3 V عام
سپلائی وولٹیج3.0 V سے 4.5 V
آئیڈل کرنٹ0.5 µA عام
آپریٹنگ کرنٹ30 mA زیادہ سے زیادہ
ریکارڈنگ کا وقت20 سیکنڈ زیادہ سے زیادہ
پلے بیک کا وقت20 سیکنڈ زیادہ سے زیادہ
پیکیج8-DIP

  • ماجیول کو نقصان پہنچانے سے بچنے کے لیے سپلائی وولٹیج 3.0 V اور 4.5 V کے درمیان یقینی بنائیں۔
  • محفوظ انٹرفیسنگ کے لیے 5V Arduino سگنل کو 3.3V لاجک لیول پر منتقل کرنے کے لیے ریزسٹر استعمال کریں۔
  • کرنٹ کی کھپت کی نگرانی کریں؛ ماجیول آپریشن کے دوران 30 mA تک کھینچ سکتا ہے۔
  • پلے بیک کے لیے آڈیو آؤٹ پٹ پر کم پاور والا اسپیکر (0.5 W) جوڑیں۔
  • ماجیول مختلف ریکارڈنگ لمبائیوں کو سپورٹ کرتا ہے؛ اپنی ضروریات کے مطابق وقت کو ایڈجسٹ کریں۔

وائرنگ کی ہدایات

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder

ISD1820 کو اپنے Arduino سے جوڑنے کے لیے، ماجیول کے VCC پن کو Arduino پر 3.3V آؤٹ پٹ سے جوڑ کر شروع کریں۔ اگلا، ماجیول کے GND پن کو Arduino کے کسی ایک گراؤنڈ پن سے جوڑیں۔ کنٹرول پنوں کے لیے، ماجیول کے REC پن کو Arduino پن 2 سے، PLAY_E کو پن 3 سے، PLAY_L کو پن 4 سے، اور FT کو پن 5 سے جوڑیں۔

چونکہ Arduino 5V پر کام کرتا ہے، آپ کو کنٹرول پنوں کو محفوظ طریقے سے جوڑنے کے لیے وولٹیج ڈیوائیڈر استعمال کرنے کی ضرورت ہوگی۔ مثال کے طور پر، Arduino کے پن سے ماجیول کے کنٹرول پن تک 5 kΩ ریزسٹر جوڑیں، اور پھر ماجیول کے کنٹرول پن سے گراؤنڈ تک 3.3 kΩ ریزسٹر جوڑیں۔ اس عمل کو کسی بھی اضافی کنٹرول پن کے لیے دہرائیں تاکہ یہ یقینی بنایا جا سکے کہ انہیں صحیح وولٹیج کی سطح ملے۔

کوڈ کی مثالیں اور واک تھرو

درج ذیل کوڈ سنیپٹ ریکارڈنگ اور پلے بیک کے لیے استعمال ہونے والے پنوں کی وضاحت کرتا ہے۔ یہ آپ کو ہارڈ کوڈڈ اقدار استعمال کرنے کے بجائے اپنے کوڈ میں ان پنوں کو آسانی سے حوالہ دینے کی اجازت دیتا ہے۔

#define REC 2 // پن 2 ریکارڈنگ کے لیے استعمال ہوتا ہے
#define PLAY_E 3 // پن 3 پلے بیک-ایج ٹرگر کے لیے استعمال ہوتا ہے
#define PLAY_L 4 // پن 4 پلے بیک کے لیے استعمال ہوتا ہے

سیٹ اپ فنکشن میں، ہم پنوں کو آؤٹ پٹ کے طور پر ابتدائی کرتے ہیں۔ یہ یقینی بناتا ہے کہ Arduino ISD1820 ماجیول کو مؤثر طریقے سے کنٹرول کر سکتا ہے۔

void setup() 
{
  pinMode(REC, OUTPUT); // REC پن کو آؤٹ پٹ کے طور پر سیٹ کریں
  pinMode(PLAY_L, OUTPUT); // PLAY_L پن کو آؤٹ پٹ کے طور پر سیٹ کریں
  pinMode(PLAY_E, OUTPUT); // PLAY_E پن کو آؤٹ پٹ کے طور پر سیٹ کریں
}

مرکزی لوپ سیریل مانیٹر سے صارف کے ان پٹ کی جانچ کرتا ہے۔ موصول ہونے والے کردار کے لحاظ سے، یہ مناسب کارروائیاں متحرک کرے گا، جیسے آڈیو ریکارڈ کرنا یا چلانا۔

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); // پلے بیک روکیں
    }
}

یہ مشروط ڈھانچہ صارف کے ان پٹ کی بنیاد پر ISD1820 کے لچکدار کنٹرول کی اجازت دیتا ہے، جس سے ضرورت کے مطابق آڈیو ریکارڈ کرنا اور چلانا آسان ہو جاتا ہے۔ مزید تفصیلات کے لیے، مکمل کوڈ مضمون کے نیچے لوڈ ہوتا ہے۔

ڈیمونسٹریشن / کیا توقع کریں

ایک بار جب سب کچھ ترتیب دیا جائے اور کوڈ اپ لوڈ ہو جائے، تو آپ سیریل مانیٹر کے ذریعے r کمانڈ بھیج کر آڈیو ریکارڈ کر سکیں گے اور p کمانڈ استعمال کر کے پلے بیک کر سکیں گے۔ متوقع رویے میں سیریل مانیٹر میں ایک ردعمل شامل ہے جو اشارہ کرتا ہے کہ ریکارڈنگ کب شروع اور رکتی ہے، نیز پلے بیک کب شروع اور ختم ہوتا ہے۔ کوڈ میں سیٹ کردہ وقت کو ذہن میں رکھیں؛ مثال کے طور پر، ریکارڈنگ 3 سیکنڈ کے لیے سیٹ ہے، اور پلے بیک 5 سیکنڈ کے لیے (ویڈیو میں 05:00 پر)۔

تصاویر

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
زبان: 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);
}

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

ابھی تک کوئی وسائل نہیں۔

فائلیں📁

فریٹزنگ فائل