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

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

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

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

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

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

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

حتما در ادامه این مطلب را هم بخوانید:  کنترل لوازم خانگی با بلوتوث

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

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

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

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


 

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

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

  • آی سی ضبط و پخش 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
}

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

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

حتما در ادامه این مطلب را هم بخوانید:  نرم افزار طراحی تقویت کننده های ترانزیستوری
فایل های قابل دانلود بعد از خرید
فایل های قابل دانلود بعد از خرید

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

فایل بعد از خرید و اتمام پرداخت فورا قابل دانلود می باشد و همچنین یک نسخه هم به ایمیل شما اتوماتیک ارسال می شود.

خرید و دانلود فایل ها  [9900 تومان]

این نوشته را با دوستانتان در تلگرام به اشتراک بگذارید :
⁩لینک گروه پرسش و پاسخ مهندسان الکترونیک   http://bit.ly/2oLHpZM

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

با سلام درود به شما که مطالب سایت خودتان را مطالعه می کنید امیدوارم مطالب سایت برایتان مفید باشد و باعث پیشرفت روز افزون شما شود. دوران راهنمایی در کار منتاژ کیت های الکترونیکی بودم تا رفتم هنرستان ^_^ دو سال هنرستان الکترونیک خیلی چیزها یاد گرفتم ! دو سال کاردانی الکترونیک و کارشناسی ICT گرایش بهره برداری از سیستم های مخابراتی پر از تجربه بود و مدتی است در الکترونیک دنیای مشغولم . الکترونیک - تکنولوژی - ICT ، برنامه نویسی ...

38 دیدگاه

  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 می توانید از حافظه دلخواه شروع به ضبط و یا پخش کنید .

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

  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. سلام بنده هزینه پروژه ضبط و پخش دیجیتال صدا را پرداخت کردم ولی هنوز به ایمیلم فرستاده نشده

پاسخ دهید

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

15 − 2 =