فایل های پروژه ضبط و پخش صدا با میکروکنترلر و ISD4004

پروژه ضبط و پخش صدا با میکروکنترلر و ISD4004 همراه با اکولایزر یک پروژه کاربردی و ترکیبی از دیجیتال و آنالوگ می باشد.این پروژه کاربرد هایی مانند گفتن یک پیام متنی در آسانسورها عروسک ها دستگاه های سخنگو و… دارد.

پروژه ضبط و پخش صدا با AVR

قسمت اصلی این پروژه آیسی ضبط و پخش صدا ISD4004  می باشد.از میکروکنترلر به عنوان قسمت کنترل کننده آیسی و استفاده شده روی پروژه 3 عدد پوش باتن یا شستی  که یکی برای ضبط صدا ، یکی برای پخش و یکی هم برای قطع عملیات ضبط یا پخش پیش بینی شده است. با فشردن کلیک ضبط میکروکنترلر کدهای لازم برای ضبط صدا را با پروتکل SPI  به آیسی ISD4004 ارسال می کند و تا زمانی که شستی STOP فشار داده نشده است ضبط صدا ادامه پیدا می کند (البته محدودیت حافظه یادتون نره) و با فشردن شستی STOP ضبط صدا خاتمه پیدا می کنه و با فشردن شستی پخش یا PLAY صدای ذخیره شده پخش می شود.

بلوک دیاگرام isd4004

برای ورودی صدا از یک عدد میکروفون خازنی می توانیم استفاده کنیم و یا با فیش هدفون می توانید صدا را به ورودی آیسی ISD4004 اعمال کنید.در این مدار یک اکولایزر با آیسی PT2389 پیش بینی شده است که افکت های مختلف را می توانید روی صدا اعمال کنید و همچنین از یک آیسی تقویت کننده LM386N برای تقویت صدا استفاده کردیم و البته این سه بخش (بلوک ضبط و پخش صدا -بلوک اکولایز – بلوک تقویت کننده ) جدا از هم هستند و هر قسمت را دوست نداشتید می توانید استفاده نکنید.مثلا خروجی آیسی ضبط و پخش را مستقیم به تقویت کننده وصل کنید نحوه وصل در شکل زیر مشخص است.

مطلب پیشنهادی:  ارتباط متلب با میکروکنترلر ( MATLAB+AVR )

ضبط و پخش صدا با میکروکنترلر

فیلم عملکرد پروژه ضبط و پخش صدا از خروجی گوشی

فقط دقت کنید برای اینکه صدا با کیفیت بالا ضبط شود بهتره از خروجی کامپیوتر و دامنه صدا پایین باشه.

فیلم تست با میکروفون خازنی (برای کیفیت بالاتر میکروفون بهتر)


 

لیست قطعات پروژه ضبط و پخش صدا 

(شماتیک و عکس مدار را چک کنید تا اگر قطعه ای را فراموش کردم یادآور کنید.)

  • آی سی ضبط و پخش ISD4004 (دقت کنید اصل باشه 🙂 )
  • آی سی اکولایزر PT2389
  • آی سی تقویت کننده LM386N-1  هشت پایه
  • میکروکنترلر ATMEGA8-A DIP
  • رگولاتور 3.3 ولت LF33
  • رگولاتور 5 ولت 7805
  • پوش باتن تک سوئیچ 2 پایه  10 عدد
  • پتانسیومتر ولوم 10 کیلو اهم
  • ال ای دی سبز 5 عدد
  • ال ای دی قرمز 4 عدد
  • مقاومت صفر اهم 5 عدد
  • سوکت 28 پین آی سی مگا8
  • سوکت 8 پین سوکت
  • 28 پین برای ISD4004
  • سوکت  24 پین برای PT2389
  • مقاومت 100 اهم
  • 3 عدد خازن 100 میکروفاراد 2 عدد برای رگولاتور ها
  • خازن 1 میکرو فارارد برای ISD  و PT  هفت عدد
  • مقاومت 4.7 کیلو اهم 12 عدد
  • خازن 470 پیکو فاراد 1 عدد برای تقویت کننده
  • خازن 220 میکرو فاراد برای تقویت کننده دو عدد
  • خازن 10 میکروفاراد برای نقویت کننده 2 عدد
  • خازن 100نانو یا 104  ده عدد
  • خازن 102 5عدد
  • خازن 22 نانو 223 دو عدد
  • مقاومت 10کیلو اهم 1 عدد
  • مقاومت 5.6 2 عدد یا مقاومت 4.7 کیلو دو عدد
  • پین هدر نری 40*1 یک شاخه
  • میکرو فون خازنی
  • فیش هدفونی برای ورودی ضبط صدا در صورت نیاز
  • اسپیکر 16 اهم 1وات
  • سیم بردبردی مادگی برای وصل کردن ورودی ها و خروجی ها طبقات مختلف (خروجی آیسی به تقویت کننده و یا خروجی صدا به ورودی اکولایزر)
مطلب پیشنهادی:  پروژه دربازکن هوشمند

 

اتصالات برنامه نوشته شده :

شماتیک زیر فقط قسمتی از شماتیک اصلی است ولی برای برنامه زیر کافی می باشد.شماتیک کامل را بصورت پی_دی_اف و با کیفیت بالا از زیر همین نوشته دانلود کنید.

شماتیک ISD4004

شستی های PLAY -STOP-Record

#define play_key PIND.7
#define rec_key  PIND.6
#define stop_key PIND.5

ال ای دی های وضعیت :

#define rec_led PORTD.0
#define play_led PORTD.1

نمونه کد نوشته شده برای میکروکنترلر ATMEGA8

#include <mega8.h>
#include <stdio.h>
#include <delay.h>
#define SCK 5
#define MOSI 3
#define CS 0
#define SS 2
#define     POWERUP         0x20
#define     SETPLAY         0xE0
#define     PLAY            0XF0
#define     SETREC          0XA0
#define     REC             0XB0
#define     STOPPWRDN       0X10
#define     STOP            0X30
#define play_key PIND.7
#define rec_key PIND.6
#define stop_key PIND.5
#define rec_led PORTD.0
#define play_led PORTD.1
unsigned char spi(unsigned char data);
void playback(void);
void record(void);
void stop(void);
//Melec.ir
void main()
{

DDRB|=((1<<CS)|(1<<SCK)|(1<<MOSI)|(1<<SS));
SPCR=((1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0)|(1<<DORD));
MCUCR=0x00;
GICR=0xc0;
PORTB|=1<<CS;
DDRD=0X03;
PORTD=0XE0;
DDRC=0XFF;

//#asm("sei")
while(1)
    {  
      play_led=0;
      rec_led=0;
      if(!play_key)
        {
          delay_ms(300);
          playback();  
          play_led=1;
          rec_led=0;
          while(1)
            {
              if(!stop_key)
                { 
                  delay_ms(300);
                  stop();  
                  goto st;
                }
            }
        } 
        if(!rec_key)
        {
          delay_ms(300);
          record(); 
          play_led=0;
          rec_led=1;
          while(1)
            {
              if(!stop_key)
                { 
                  delay_ms(300);
                  stop(); 
                  goto st;
                }
            }
        }
        
      st:
       
    }
}
unsigned char spi(unsigned char data)
{
SPDR=data;
while(!(SPSR & 0X80));
}
interrupt [EXT_INT0] void external_int0_INT(void) 
{
#asm("cli")

#asm("sei")
}
interrupt [EXT_INT1] void external_int1_RAC(void) 
{
#asm("cli")

#asm("sei")
}
void playback(void)
{
PORTD.0=1;
PORTD.1=0;
PORTB&=~(1<<CS);
spi(POWERUP);
PORTB|=1<<CS;
delay_ms(30);
PORTB&=~(1<<CS);
spi(0x00);
spi(0x00);
spi(SETPLAY);
PORTB|=1<<CS;

PORTB&=~(1<<CS);
spi(PLAY);
PORTB|=1<<CS;
}
void record(void)
{
PORTD.0=0;
PORTD.1=1;
PORTB&=~(1<<CS);
spi(POWERUP);
PORTB|=1<<CS;
delay_ms(25);
PORTB&=~(1<<CS);
spi(POWERUP);
PORTB|=1<<CS;
delay_ms(100);
PORTB&=~(1<<CS);
spi(0x00);
spi(0x00);
spi(SETREC);
PORTB|=1<<CS;

PORTB&=~(1<<CS);
spi(REC);
PORTB|=1<<CS;
}
void stop(void)
{
PORTB&=~(1<<CS);
PORTC=spi(STOP)>>3;
PORTB|=1<<CS;
delay_ms(5);
//Melec.ir
}

خب امیداوارم تا اینجا یادگرفته باشید که چگونه با این آیسی کار کنید و نمونه شماتیک و برنامه را دیدید.

نکته مهم : آیسی ISD4004 خیلی کم یاب شده و مدل های تقلبی آن در بازار زیاد هستن در هنگام خرید خیلی دقت کنید از فروشگاه معتبر خرید کنید.

این پروژه شامل : فایل PCB  طراحی شده در نرم افزار آلتیوم دیزاینر – شماتیک کامل با کیفیت بالا – فایل کدنویسی کدویژن پروژه

فایل های قابل دانلود بعد از خرید
فایل های قابل دانلود بعد از خرید

شما می توانید بعد از خرید و دانلود فایل ها فایل PCB  را خودتان چاپ کنید و یا به یکی از شرکت های مدارچاپی بفرستید تا چاپ و از روی لیست قطعات ، قطعات را تهیه و با نقشه مدار و فایل PCB برد را منتاژ کنید. مثلا روی فایل PCB نوشته U2 که روی شماتیک نیز اسم قطعه بهمراه شماره قطعه (U2) مشخص هستند.بعد از منتاژ از روی برنامه میکروکنترلر را پروگرام و تست کنید.این پروژه چندین بار منتاژ شده و هیچ مشکل سخت افزاری و نرم افزاری ندارد.و همچنین در خرید آیسی ISD4004 دقت کنید که اصل باشد. دقت داشته باشید که آیسی ISD4004 خیلی کم یاب شده.

مطلب پیشنهادی:  مدار ترموستات با 4 سنسور و 4 رله

دانلود فایل ها

درباره ی جهاندیده

کاربر عزیز از اینکه مطالب سایت ما را مطالعه میکنید بینهایت سپاسگذارم.با نظرات سازنده خود به ما انگیزه بیشتری دهید تا در مطالب آموزشی بیشتری را تولید و منتشر کنیم. استیوجابز میگه "شغل شما بخش عمده ای از زندگیتان را تشکیل خواهد داد، پس تنها راهی که از این بخش احساس رضایت خواهید کرد این است که باور داشته باشید در حال انجام کار بزرگی هستید. بهترین راه برای انجام یک کار بزرگ نیز لذت بردن از آن کار است. اگر نمی دانید چه باید انجام دهید عجله نکنید و سعی نمایید اول راه خود را بیابید. با پیدا کردن راه درست مانند یک رابطه ی خوب با گذشت سال ها هر روز همه چیز بهتر و بهتر می شود و همواره رو به جلو پیش خواهید رفت. بنابراین به دنبال آن چیزی بگردید که قلباً شما را راضی می کند. عجله نکنید." امیدوارم همیشه موفق باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

44 دیدگاه

  1. سلام ، ممنون از سايت مفيدتون
    اين پروژه قابليت ضبط و ذخيره سازي چند صدا و پخش جداگانه ي اونا رو هم داره؟

  2. من ميخواستم فايل كامل اين پروژه رو بخرم،
    ميتونيد يه برنامه واسش بنويسيد كه قابليت ضبط و ذخيره سازي چند صدا و پخش اونا رو داشته باشه؟
    يعني آدرس بهش بديم، بتونه يه صداي خاص رو كه ذخيره كرده بوده، پخش كنه

    • خودتان با مطالعه برنامه می توانید تغییرات لازم را انجام دهید . ولی متاسفانه چون فعلا دسترسی به سخت افزار ندارم تا بتونم کد را روی آن تست کنم . کد را هم بدون تست نمیشه تضمین کرد.

  3. برنامه نويسي isd هاي مختلف با هم فرق داره؟
    همين برنامه و سخت افزارش رو ميشه با isd ديگه اي انجام داد؟

    • برای ISD4004 ها با حافظه های مختلف که فرقی نداره مثلا ISD4004-8M یا ISD4004-16M

      ولی روی ISD دیگر تست نکردم لطفا شماره ISD مورد نظر را بگین تا چک کنم بگم. ولی اگر اونم SPI باشه به احتمال زیاد نباید زیاد فرق داشته باشن .

  4. isd هاي سري 2500 ميتونه جايگزين 4004 بشه تو اين پروژه؟

    • آیسی های ضبط و پخش ISD2500 کلا پروتکل ندارن وخیلی راحتر هستن و با کلید و یا براحتی با میکروکنترلر قابل کنترل می باشند. ولی ISD4004 پروتکل SPI داشت . پس جایگیزین نمیشه کرد ولی راحتر هستن .

  5. با ISD هاي سري 2500 هم ميشه چند صدا ضبط و جداگانه آدرس دهي و پخش بشه؟

  6. خيلي ممنون،
    فقط چطوري بايد با اين پين ها آدرس دهي كرد؟
    واسه ميكروكنترلر ديگه برنامه ي آدرس نبايد بنويسيم؟

    • با صفر و یک کردن پایه های A0 – A9 می توانید از حافظه دلخواه شروع به ضبط و یا پخش کنید .

      خب با میکرو هم می توانید این پایه ها را صفر یک کنید و البته با میکرو بهتر هست مثلا دیگه تو میکرو میزنید قسمت اول خودش آدرس دهی می کنه و پخش …

      • ببخشید میشه یه نمونه کد آدرس دهی با میکرو بنویسید.
        با تشکر

        • ببینید دوست عزیز آدرس دهی کمی شاید بزرگ بیاد بنظر این میشه آدرس دهی :

          فک کن آیسی دلخواه 8 تا پایه آدرس دهی و میکرو هم هشت بیتی مانند avr است و به پورت A وصل شده و می خواهید از خانه صفر شروع به ضبط کنید :

          PORTA=0X00

  7. سلام وقت بخیر،
    در این پروژه خط 105 کار آدرس دهی رو انجام میده و خط 107 کار play؟
    و چرا 105 دوباره در خط 106 تکرار شده؟
    با تشکر

  8. خیلی ممنون بابت راهنمایی هاتون،
    میشه توضیح بدید که چرا تو خط های 4 تا 7 این مقادیر رو به پین ها دادید؟

  9. خیلی ممنون از راهنماییتون،
    بنده فایل کامل پروژه رو دانلود کردم؛
    ولی متوجه نشدم که P1,P2,… دقیقا چه قطعاتی هستند؟

    • ورودی و خروجی هر قسمت را جدا گذاشتیم . مثلا ورودی میکروفون خروجی آیسی صوتی . ورودی اکولایزر و خروجی آن و همچنین ورودی تقویت کننده و خروجی نقویت کننده

  10. خیلی ممنون از راهنماییتون،
    بنده فایل کامل پروژه رو دانلود کردم؛
    فقط متوجه نشدم که P1,P2,.. دقیقا چه قطعاتی هستند؟

  11. سلام مجدد،
    Vcc استفاده شده در این پروژه چند ولت است؟

    • سلام
      اگر شماتیک را منظرتان هست که 3.3 ولت به vcc اختصاص داده شده ولی ورودی اصلی مدار همانطور که در شماتیک هم هست 9 ولت است و بعد یک رگولاتور 5 ولت برای قسمت هایی که نیاز به 5 ولت دارند. و یک رگولاتور 3.3 برای قسمت هایی که نیاز به 3.3 ولت دارند .

      • بله، شماتیک رو دیدم
        ولی مشکلی که هست وقتی ولتاژ ورودی که در شماتیک 9 ولت اومده را از 6.8 ولت بالاتر می برم، اسپیکر وزوز میکنه!
        به نظر شما مشکل چیه؟

        • خب رگولاتور های مدار تا وقتی زیر 7 ولت هستن کار نمیکنن یا درستکار نمیکنن وقتی ولتاژ را بالا میبرین تازه شروع به کار میکنن.
          مدار را چطوری بستین ؟ pcb را زدین یا روی بردبرد ؟
          آیسی isd4004 را از کجا تهیه کردین ؟ قیمتیش چقدر بود ؟ خراب نباشه

          ببینید وقتی رکمه ضبط را میزنید باید ال ای دی روشن و صدای اسپیکر تغییر میکند یا تغییرات را میبینید ؟

  12. سلام،
    روی بردبرد در حال تست هستم تا بعد pcb چاپ کنم

  13. از پاساژ امجد جمهوری تهیه کردم 30000 تومان بود، از کجا باید مطمئن بشم که خراب نباشه؟
    وقتی دکمه ی play رو می زنم، LED روشن میشه اما اسپیکر بوق میزنه!
    و وقتی دکمه ی record رو میزنم، LED سبز روشن میشه

  14. سلام وادب
    اگه من بخوام برای خروجی از led استفاده کنم که مثلا هنگام پخش ی اهنگ رقص نور داشته باشه از این مدار میشه استفاده کرد؟

  15. با عرض سلام
    با ای سی isd2560 میشه بدون میکرو کنترلر صدا رو ضبط و پخش نمود؟

  16. سلام
    پروژه کارشناسی من دقیقا شبیه اینه با این تفاوت که باید روی حافظه sd ذخیره بشه. باید چه تغییراتی انجام بدم تو این مدار. ممنون میشم کمک کنین

  17. نمیدونم با آی سی کار کردین

    اگه ممکنه پروژه ای بزارید که صدا رو بگیره پردازشش کنه و با توجه به فرکانسهای صدا و واحد تایمر همون صدارو خود میکرو تولید کنه نه آی سی.

  18. سلام بنده هزینه پروژه ضبط و پخش دیجیتال صدا را پرداخت کردم ولی هنوز به ایمیلم فرستاده نشده

  19. نکته خیلی مهم
    سلام ، وقت بخير
    ميخواستم از پروژه ي خوبتون و راهنمايي هاي مفيدتون تشكر كنم
    تنها سايتي كه به من كمك كرد تا بتونم پروژه م رو انجام بدم، سايت شما بود
    فقط چند تا توصيه براي دوستاني كه ميخوان اين پروژه رو انجام بدن، دارم:
    آيسي ISD4004 خيلي حساسه حتما چك كنيد كه پايه ٢٤ هنگام ضبط و پخش بايد پالس توليد كنه، كه با يه LED ميتونيد چك كنيد(آيسي من سوخته بود، فقط ضبط ميكرد ،از اين روش فهميدم )
    براي اسپيكر و ميكروفن بهتره از سيم كوتاه استفاده كنيد و بهتره سيم شيلد شده باشه كه نويز كمتري داشته باشه(مدار من خيلي نويز داشت)
    با تشكر فراوان??????

  20. سلام خسته نباشید آقا من فایلهای پروژرو خریداری کردم ولی متاسفانه فایل هگزش نیست ممنون میشم واسم بفرستید چون من ساختمش مونده پروگرام کردنش فقط

  21. سلام.خسته نباشی مهندس
    عرض کنم خدمت شما من ایران نیستم و مدت یکساله که ترکیه هستم.مهندسی برق از دانشگاه نجف اباد دارم و قصد دارم که یه رکوردر بسازم.اگر امکانش هست منو راهنمایی کنید.*******توضیحات شخصی*****.از قبل ازتون تشکر میکنم.

    • با سلام ، اگر وقت کافی دارید توصیه بنده استفاده از آیسی های دکدر و رکردر جدید مثل vs1003 و حتی خیلی جدیدتر هست که میتونی روی sd کارت دخیره کنید ولی اگر دقیق همین فایل را لازم دارید از ایمیل دانشگاهی ، یک ایمیل برامون بفرستید براتون بفرستیم.

  22. سلام داداش خیلی ممنون …