با درود
دوستان نحوه شماره گیری تلفن با میکرو به چه صورته چون تو محیط بسکام اماده هست (چقدر راحت این بسکامی ها)
حالا برای شماره گیری میدونم باید برای هر عدد فرکانسی خاصی تولید کرد اما به چه مدت و چگونه ؟؟
با درود
دوستان نحوه شماره گیری تلفن با میکرو به چه صورته چون تو محیط بسکام اماده هست (چقدر راحت این بسکامی ها)
حالا برای شماره گیری میدونم باید برای هر عدد فرکانسی خاصی تولید کرد اما به چه مدت و چگونه ؟؟
رفیق اگه میخوای با میکرو برنامشو بنویسی،این فایلی رو که پیوست کردم بخون ولی خوب یکم سخته...
ولی راه بهتر و دقیقترش اینه که از mt8888 استفاده کنی..
موفق باشی..
بعد این هم برای توضیحات تکمیلی تر میتونی دیتاشیت mt8888 رو هم بخونی...اگه لازم بود بگو آپلود کنم
خواهش میشه رفیق...
برا هر شماره باید 2تا موج سینوسی بسازی و با هم جمع کنی..تنی که مشخصه ی هر عدده، تک فرکانس نیست...این هم باعث میشه یکم کار ببره...نشدنی نیس ولی خوب کار میبره..کسایی هستن که انجام دادن..و البته جالب هم هستا..من خودم وقت کنم میخوام روش کار کنم...اگه به صورت صنعتی میخوای،بهتره از آیسی استفاده کنی ولی اگه نه،خوبه که روش کار کنی..تجربه ی جالبیه...
البته 1روش هم هست که روش پالسی هست و دیگه dtmf نیست...روشی که تو تلفن های قدیمی استفاده میشد...با قطع و وصل کردن خط تلفن با زمانهای مشخص میشه به این روش شماره گرفت..(اون زمونا که صفر گوشی رو میبستن،میشد از این روش استفاده کرد)
زدن بوق رو که با تک فرکانس و pwm میتونی انجام بدی..اون کاری نداره..
موفق باشی..
ویرایش توسط KHM : 03-07-2012 در ساعت 17:23
به نظرم روش دوم بهتره و باید وقت کمتری ببره در مورد استفاده از ای سی حق با شماست ولی قیمتش یه خورده بالاست نسبت به کار کوچیکی که میخوام بکنم برا همین تصمیم گرفتم با میکرو این کارو بکنم حالا اگه بشه نسبت روشن و خاموش بودن به عدد مورد نظر را پیدا کرد و با یه نسبت فرکانسی خیلی از مسایل حل میشه
بله روش دوم وقت کمتری میبره...به این لینک نگاه کن..
پروژه کنترل وسایل برقی با استفاده از خط تلفن - ایـــــــــران میـــــــکرو ™
مدت زمان های مورد نیازت رو نوشتم تو pdf. تو قسمت نحوه ی شماره گیری..
موفق باشی...
دوستان عکس زیر مثلا برای تولید عدد یک باید چیکار کرد
من اینجوری فهمیدم که روی یک رشته فرکانس 697
و تو رشته بعدی 1209 را تولید کرد
ایا درسته
نه رفیق...تا اونجایی که من میدونم باید جفت موج سینوسی هارو تولید کنی،بعدشم باهم جمع کنی...البته خودم انجام ندادم و کامل نمیدونم...و البته mt8888 هم 1پایه ی خروجی داره
اره حق با شماست اول باید این دو موج را باهم جمع کرد و سپس فرستاد روی خط
بهترین راهش همون 1 سیکل وصل و 4 سیکل قطع هستش فکر کنم
اون راحت ترین راهشه...ولی ساختن dtmf یه حال دیگه ای داره...چجوری میشه 2تا موج سینوسی را باهم جمع کرد؟؟؟با چی؟؟
خوب حالا نتیجه این شد که باید برای یک شماره به همون تعداد پالس از باید زده بشه و زمان اون پالس باید 100 میلی ثانیه باشه مثل شکل pwm زیر حالا مسئله مهم اینکه که چطوری باید یه پالس و یا به همون مقدار روی خط داد و با دقت زیاد
به نظر شما اگه تایمری راه اندازی کنیم و هر 100 میلی ثانیه بیاد تایمری که خروجی pwm را می سازد قطع و وصل کنه درست میشه
راه حل دیگه ای به نظرتون میرسه
رفیق بهترینش همو PWM هست...دیگه نمیخواد که خیلی زیادم دقیق باشه که...تقریبی هم باشه،حله...
برای انداختن پالس روی خط هم تو اون پروژه ی کنترل با تلفن،1 پایه ی busy هست...باید به اون اعمال کنی
سلام دوستان
اونطوری که من فهمیدم شما میخوای فقط یه تماس بگیریدوستان نحوه شماره گیری تلفن با میکرو به چه صورته چون تو محیط بسکام اماده هست (چقدر راحت این بسکامی ها)
حالا برای شماره گیری میدونم باید برای هر عدد فرکانسی خاصی تولید کرد اما به چه مدت و چگونه ؟؟
که این کار توسط دستور DTMFOUT تو بسکام انجام میشه
امیدوارم تونسته باشم کمکت کنم
دوست من کد زیر را نوشتم فکر میکنید درست جواب بده یا نه ؟
از تایمر استفاده نکردم چون تایمر ها را در برنامه استفاده کرده بودم و به صورت دستی موج pwm را ساختم در پروتئوس درست جواب میده تقریبا
دوست من لطفا خودتون هم یه تست بکنید فایل پروتئوس + فایل هگز را ضمیمه کردم.
کد:#include <mega32.h> #include <delay.h> void main(void) { int num[30]={9,8,7,6,5,4,3,2,1}; int i=0,j=0; DDRA=0x01; while (1) { for(i=0;i<num[j];i++) { PORTA.0=1; delay_ms(60); PORTA.0=0; delay_ms(40); } PORTA.0=0; delay_ms(200); j++; }; }
ویرایش توسط Ma3ood : 06-07-2012 در ساعت 20:15
رفیق یکم مشکل داره...باید اول خط رو اشغال کنی...بعدش شماره گیری کنی...آخر سر هم باید در حالت اشغال نگه داری....
منم میخوام این راه رو چک کنم ببینم چجوری جواب میده...فقط اون قسمت مدار رو ببند و چک کن..
به جای عدد های توی num شماره ی خودت رو بذار ببین کار میکنه یا نه...منم چک میکنم...
ظمنآ define xtal هم بذار رفیق..برای محاسبه ی مقدار delay لازمه...
ممنون که توجه کردی
این برنامه اصلی نیست و همین طوری نوشتم و فقط مربوط به تولید پالس هستش
این مواردی که شما گفتی که حتما باید باشه این برنامه رو گذاشتم برای اینکه ببینم تولید پالسها درست هست یا نه
یه سوال در مورد اینکه شماره گیری کنم کافیه دیگه این موجی که تولید شده را مستقیم بدم به یه ترانزیستور که بایه مقاومت وات بالا به خط تلفن متصل هست و اینو قطع و وصل کنم
داریم به یه نتایجی میرسیما
خواهش رفیق...آره رفیق..البته تایم هاشو چک نکردما...ولی کلش مشکلی نداره..همینجوری جواب میده..
اول باید یکسوسازی بکنی که وقتی زنگ خورد،ولتاژ سینوسی با ولتاژ بالا اومد، ولتاژ معکوس نندازه رو ترانزیستور و بسوزوندش...بعدشم که با 1ترانزیستور هم میشه ها...ولی بهتره از مدار شکله استفاده کنی که 2تا ترانزیستور داره و 4تام مقاومت....واسه مقاومت هم لازم نیست وات بالا باشه..چون جریانت خیلی کمه....
تست کردی حتمآ نتیجشو همینجا اعلام کن...
موفق باشی...
میخوام از این مدار استفاده کنم
تا فردا نتیجه شو میگم مدار شما را هم دیدیم ترانزیستور هاشو ندارم (ترانزیستور ولتاژ بالا ندارم )
اینو ببیند مشکلی نداره که برم برای تست برنامه زیر هم تقریبا فک کنم تکمیل باشه
البته کل این برنامه میره داخل مثلا وقفه که اگه فعال شد اجرا بشهکد:#include <mega32.h> #include <delay.h> #define xtal 1000000 void main(void) { int num[30]={9,8,7,6,5,4,3,2,1}; int i=0,j=0; DDRA=0x01; PORTA.0=1; while (1) { for(i=0;i<num[j];i++) { PORTA.0=1; delay_ms(60); PORTA.0=0; delay_ms(40); } PORTA.0=0; delay_ms(500); j++; PORTA.0=1; }; }
ویرایش توسط Ma3ood : 06-07-2012 در ساعت 23:56