اطلاعیه

Collapse
No announcement yet.

مدار عملی را برای ارسال DTMF توسط avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #46
    پاسخ : مدار عملی را برای ارسال DTMF توسط avr

    سلام به همه دوستان
    چطور میشه به میکرو فهماند که الان شماره ای را که گرفته طرف مقابل گوشی را برداشته تا پیغامی براش پخش بشه؟
    یا اگه خط بوق اشغالی پخش میکنه چطور تشخیص بده که این بوق , بوق اشغال هست ومجددا شماره گیری کنه

    دیدگاه


      #47
      پاسخ : مدار عملی را برای ارسال DTMF توسط avr

      نوشته اصلی توسط POLESTAR
      با سلام

      دوستان من قبلا یه برنامه کوچیک برای تولید تنهای DTMF فقط با یک میکروی MEGA8 نوشتم که هیچ نیازی هم به این ایسی 8870 نداره
      پین OCR1A خروجی تن هست و شما میتونید با استفاده از تابع Send_DTMF و رشته ای که بهش میدید تنهای DTMF رو تولید کنید
      برنامه خیلی ساده نوشته شده و نیازی به توضیح بیشتری نداره
      در ضمن حتما قبل از استفاده از تابع Send_DTMF با استفاده از تابع dtmf_init تایمر 1 میکرو رو اینیشیال کنید.

      http://s3.picofile.com/file/7386144729/DTMF_Generator.rar.html

      این برنامرو خود شرکت اتمل پیشنهاد داره و بنده فقط اونو توی کامپایلر کدویژن پیاده کردم
      میدونم این برنامه به مشکل خانوم امامی فر ربطی نداره و ازشون شرمنده هستم که این تاپیک رو که ایشون ایجاد کردن رو زودتر ندیدم چون ایشون طی پیغامها خصوصی با بنده مطرح کردند ولی به علت پاره ای از مشکلات بنده نشد که ایشون رو بهتر راهنمایی کنم و توضیحات ناتموم موند
      در کل از همه دوستان برای اینکه این مشکل رو حل مردن تشکر میکنم

      بنده دارم روی یک پروژه کار میکنم که نیاز به دتکت و تشخیص تنهای DTMF داره البته توسط میکرو و بدون ایسی که تونستم یه نمونه برنامه ای براش بنویسم ولی زمان دتکت حدود 1 ثانیه طول میکشه که این خیلی زیاده دارم روش کار میکنم که بتونم این زمان رو به کمترین مقدارش برسونم این کارو توسط الگروریتمی موسوم به Goertzel انجام میدم که در واقع یه جور FFT هست اگه بتونم ریل تایمش کنم عالی میشه در صورت تکمیل شدن حتما توی انجمن قرار میدم انشاالله

      به همین سادگی :nice:
      واقعا ممنون من خیلی وقته دنبال این برنامه برای کامپایلر کدویژن میگردم ..ممنون :wow:

      دیدگاه


        #48
        پاسخ : مدار عملی را برای ارسال DTMF توسط avr

        نوشته اصلی توسط POLESTAR
        با سلام

        دوستان من قبلا یه برنامه کوچیک برای تولید تنهای DTMF فقط با یک میکروی MEGA8 نوشتم که هیچ نیازی هم به این ایسی 8870 نداره
        پین OCR1A خروجی تن هست و شما میتونید با استفاده از تابع Send_DTMF و رشته ای که بهش میدید تنهای DTMF رو تولید کنید
        برنامه خیلی ساده نوشته شده و نیازی به توضیح بیشتری نداره
        در ضمن حتما قبل از استفاده از تابع Send_DTMF با استفاده از تابع dtmf_init تایمر 1 میکرو رو اینیشیال کنید.

        http://s3.picofile.com/file/7386144729/DTMF_Generator.rar.html

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

        ممنون من این برنامه رو قبلا هم دانلود کردم ولی چرا موقع کامپایل کردن روی این خط خطا میگیره و کامپایل نمیکنه ؟ای خطا مربوط به چیه؟!
        OCR1A = (auc_SinParam[i_TmpSinValA] + (auc_SinParam[i_TmpSinValB]-(auc_SinParam[i_TmpSinValB]>>2)));
        خط 84 برنامه میشه...
        خطا:
        Warning: Desktop\DTMF Generator\DTMF Generator\DTMF.c(84): overflow is possible in 8 bit addition, casting to 'int' may be required

        ممنون میشم کمک کنید :sad:

        دیدگاه


          #49
          پاسخ : مدار عملی را برای ارسال DTMF توسط avr

          نوشته اصلی توسط حمیدجان
          جناب آقای اسلامی عزیز جوابتون رو به صورت پیغام خصوصی دادم اما با این حال اینجا میذارم که اگه دوستانی اینچنین مشکلی داشتن انشاء الله حل بشه:


          دقت داشته باشین که برای اشغال خط تلفن باید از مقاومت 390 اهم استفاده کنید و این مقاومت به همراه ترانزیستورش داخل شماتیک مشخص هست

          تمامی مقاومتها 500 میلی وات میباشند یا همون 1/2 وات

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

          ‫اتصال فیلتر به این صورت هست که یه سر مقاومت به خروجی میکرو و اون سر مقاومت به خازن وصل میشه اون سر خازن هم به زمین وصل میشه در واقع خروجی این فیلترکه یه سر مقاومت و یه سر خازن هست به بیس ترانزیستور TIP122 داده میشه که به کلکتور این ترازیستور یه مقاومت در حدود 10 کیلو اهم وصل هست اون سر این مقاومت هم بعد از پل دیود به خط تلفن وصل میشه. دقت کن که نکته ی کار همین مقاومت 10 کیلو اهم هست‬.
          در این صورت هست که بدون هیچ چیز دیگه ای شما میتونی صوت رو رو خط ارسال کنی بدون اینکه در سیگنال تن تداخلی ایجاد کنه‬

          من این رو تو حالتهای مختلف تست کردم و هیچ مشکلی ایجاد نمیکنه‬

          دقت کن که با این مدار دیگه نیازی به تقویت صوت به هیچ وجه نیست‬

          ‫مدار اشغال تلفن با مدار ارسال صوت کاملا جدا هست یعنی این که................‬

          ‫یه ترازیستور برای اشغال و یه ترازیستور هم برای صوت میذارم و مقاومت ها هم جدا هستن‬

          باید حتما ابتدا توسط مقاومت 390 اهم خط رو اشغال کنیم وبعد باید مقاومت 10 کیلو رو خط سوار بشه تا بتونیم صوت رو ارسال کنیم‬


          اگه باز هم سوالی بود من در خدمتم.

          شماتیک مدار:

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

          دیدگاه


            #50
            پاسخ : مدار عملی را برای ارسال DTMF توسط avr

            سلام در بسکام برای اینکه در دستور dtmf outشماره های *و# راداشته باشیم چه کار باید کرد اعداد0تا9 را درست میگیره ولی برای *و# کار نمیده کسی می دونه چره

            دیدگاه


              #51
              پاسخ : مدار عملی را برای ارسال DTMF توسط avr

              سلام در برنامه بسکام با دستور dtmfout وقتی می خواهیم شماره های ستاره ومربع *#را ایجاد کنیم کد اشتباه درست میشود ولی اعداد 0 تا 9 را درست ایجاد میکند کسی میدونه چرا $regfile = "m8def.dat"
              $crystal = 8000000
              Config Portb.0 = Output
              Ddrb.2 = 1
              Portb.2 = 0
              Dim Mobile As String * 3
              Mobile = "*#"
              Enable Interrupts
              Wait 10
              Do
              If Pinb.2 = 1 Then
              Set Portb.0
              Wait 2
              Dtmfout Mobile , 50
              Wait 10
              Reset Portb.0
              Wait 10
              End If
              Loop

              دیدگاه


                #52
                پاسخ : مدار عملی را برای ارسال DTMF توسط avr

                سلام
                راستش منم خواستم این شماره گیری dtmf رو بسازم ولی من با آردوینو کار میکنم ، هرچی گشتم دستور dtmfout برای آردوینو نبود ، اگه میشه راهنمایی کنید چجور اینرو در آردوینو شبیه سازی کنم؟

                دیدگاه

                لطفا صبر کنید...
                X