ايران ويج

نسخه‌ی کامل: InfraRed Receiver
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام

اگر بخاهیم یک دیود گیرنده ی 5 میلیمتری مادون قرمز را که به رنگ سیاه است را به میکرو متصل کنیم و با استفاده از دستور GETRC5 در Bascom کدهایی که از ریموت کنترول ها منتشر میشود را بخانیم باید چه کنیم؟ :?:

:wink:
برای اینکار باید اول دیود رو بایاس کنی یعنی با یه مقاومت باید به vcc وصل بشه مقدار این مقاومت باید چوری باشه که بیشترین تغییر رو به اضای صفر و یک شدن ورودی داشته باشی بعد باید تقویتش کنی که با یه OpAmp می تونی این کارو بکنی میزان این تقویت هم هر چی بیشتر باشه نویز بیشتر و برد بیشتری داری و دست آخر هم باید دمودوله کنی یعنی یه فرکانس 37KHz روش هست که باید برش داری البته با یه فیلتر هم می شه این کار رو کرد در نهایت هم باید با یه اشمیت تریگر به صورت صفر و یک درش بیاری
یه را دیگه هم هست که از آمادش استفاده کنی سه پایه داره و همه این کار ها رو خودش می کنه
ha_60 نوشته است:برای اینکار باید اول دیود رو بایاس کنی یعنی با یه مقاومت باید به vcc وصل بشه مقدار این مقاومت باید چوری باشه که بیشترین تغییر رو به اضای صفر و یک شدن ورودی داشته باشی بعد باید تقویتش کنی که با یه OpAmp می تونی این کارو بکنی میزان این تقویت هم هر چی بیشتر باشه نویز بیشتر و برد بیشتری داری و دست آخر هم باید دمودوله کنی یعنی یه فرکانس 37KHz روش هست که باید برش داری البته با یه فیلتر هم می شه این کار رو کرد در نهایت هم باید با یه اشمیت تریگر به صورت صفر و یک درش بیاری
یه را دیگه هم هست که از آمادش استفاده کنی سه پایه داره و همه این کار ها رو خودش می کنه

خیلی از راهنماییتون متشکرم!
:wink:
خوب حالا من یکی از همون ای سی های گیرنده که گفتید خریدم. به شماره ی: TSOP 1136 حالا باید چیکارش کنم؟ (BASCOM)
:idea: :?:

چجوری باید به میکروکنترولر (ATMega16) متصلش کنم؟ خواهشا نگید برو داخل Help بسکام و پیدا کن. چون کردم نشد. یک مدار 100% عملی بدید و به زبون بسکام و یا اگر نشد به زبان C.

لطفا اگه میشه یه کم زودتر . چون من تا شنبه باید چنین مداری را بسازم و توش موندم! :cry:

ممنون :wink:
سلام.
شما دستور GetRC5 رو که توی هلپ بسکام نگاه کنی هم شماتیک مدار رو داره و هم برنامه نمونه.
کاری نداره که.
پایه دیتای گیرنده رو به یک پورت میکرو وصل میکنی و توی برنامه اون پایه رو معرفی میکنی.
بعد با دستور GetRC5 کد رو میخونی.
به همین راحتی.
Iran-PC نوشته است:سلام.
شما دستور GetRC5 رو که توی هلپ بسکام نگاه کنی هم شماتیک مدار رو داره و هم برنامه نمونه.
کاری نداره که.
پایه دیتای گیرنده رو به یک پورت میکرو وصل میکنی و توی برنامه اون پایه رو معرفی میکنی.
بعد با دستور GetRC5 کد رو میخونی.
به همین راحتی.

من هم همون کارا رو که گفته بود انجام دادم. اما نشد.
من پایه ی منفی گیرنده رو به GND و پایه ی مثبت را توسط یک مقاومت 330 اهم به +5V متصل کردم و یک خازن 4.4 میکرو فاراد به پایه ی مثبت گیرنده و GND متصل کردم و پایه ی دیتا را توسط یک مقاومت 10 کیلو اهم به مثبت دادم و از پایه ی دیتا به پورت D.2 میکروکنترولر (ATMega16) که پایه ی شماره ی 16 میشه وصل کردم و این کد را ریختم داخل میکروکنترولر:

کد:
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 38400

Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2

Cls
Cursor Off

$lib "mcsbyte.lbx"

Config Rc5 = Pind.2

Enable Interrupts

Dim Address As Byte , Command As Byte

Locate 1 , 1 : Lcd "Waiting for RC5"

Do

  Getrc5(address , Command)

  Locate 2 , 1 : Lcd Address ; "  " ; Command

Loop

ضمنا اوسیلاتور داخلی میکروکنترولر را هم بر روی 8 مگا هرتز تنظیم کردم و مدار را وصل کردم. و چندین ریموت کنترولر مادون قرمز را به طرف گیرنده گرفتم و شلیک کردم اما بر روی خط دوم LCD همیشه مینویسه:

255 255

و هیچ تغییری هم نمیکنه!

لطفا یک راهنمایی درست و حسابی بکنید که کارم بد جوری گیره!

:wink:
یه مثال هم تو قسمت مقالات هست اونم دیدی؟
فکرکگنم به دردت بخوره
سلام.
منم امشب میخوام تست کنم جوابشم میگم.
موفق باشید.
دمت گرم. بازم تو به فکر ما بودی.
پس بگو ببینم چیکار کردی؟ :wink:
سلام.
منم تست کردم.
از بین 4 تا کنترل فقط 1 کنترل کار کرد.اما همون یکی هم خوب کار کرد.

نمیدونم چرا فقط یکی کار کرد.
کدی که استفاده کردم این بود
کد:
$regfile = "m8def.dat"
$lib "mcsbyte.lbx"
$crystal = 8000000
Config Rc5 = Pind.2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portb.0 , Rs = Portb.1
Config Lcd = 16 * 2
Enable Interrupts
Dim Address As Byte , Command As Byte
Dim Contor As Byte
Cls
Contor = 0
Do
  Getrc5(address , Command)

     Command = Command And &B01111111
     If Address <> 255 Then
     Locate 1 , 1
     Lcd Address ; "  " ; Command ; "      "
     Contor = Contor + 1
     End If
     Locate 2 , 1
     Lcd Contor ; "   "
Loop
End
کنترل هایی که باهاش تست کردم.
1 : کنترل ضبط صوت سامسونگ
2 : کنترل تلوزیون سونی (از اون قدیمی مشکی ها)
3 : کنترل کارت تی وی پیناکل
4 : کنترل کارت دی وی بی اسکای استار

که فقط چهارمی کار کرد.
حالا بقیه چرا کار نکرد من هم خبر ندارم.
امشب و فردا در مورد دستور ارسال کد RC5 رو هم تست میکنم و جواب اون رو هم میگذارم تو سایت.
ولی شاید بشه برای این میکروهایی که کار نکرد هم بعدا یه فکری کرد.
اما کار میبره.
حالا شما همین کد رو با انواع کنترل تست کن.
موفق باشید.
آقا دمت گرم! 8)
درست شد Amaze
پس بگو مشکل کار من کجا بود! من فقط با 1 کنترول تستش کردم! :?
من با چند تا کنترول تست کردم. اما فقط با یک کنترول تلویزیون LG کار میکرد و بس :cry:

اگه شما میدونید چطور میشه کد بقیه ی کنترولها رو هم دریافت کرد، بگید. :wink:
منم روش کار میکنم :P

به هر حال از راهنماییتون خیلی خیلی متشکرم :wink:
صفحه‌ها: 1 2 3