# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > مقاله: برنامه نويسي فرستنده ، گيرنده مادون قرمز

## singel

سلام عزيزان   :بوس: 
من ميخوام يه فرستنده ؛ گيرنده مادون قرمز درست كنم اما نميدونم بايد چي توي برنامش بنويسم 
لطفا كمكم كنيد
اگر سايت يا مطلب داريد دريق نفرمائيد .
 :کف کرده!:  :بوس:  :قلب:

----------


## zaker3055

سلام عزیز
 چند تا نکته:
اول اینکه با چه زبانی میخوای برنامه بنویسی؟
 با چه میکرویی میخوای کار کنی؟
 در کل من یه پیشنهاد دارم و اون اینه که بری دنبال برنامه نویسی avr
برنامه نویسی اسم گنده ای داره اما واقعا سادس.
در کل اگه دوس داری کار با میکرو کنترل رو یاد بگیری بگو تا با یاری دوستان با هم دست به کار شیم
البته اینم بگم که اگه زبان برنامه نویسیه میکرو رو یاد بگیری بعدش ساختن چیزایی مثل کنترل مادون قرمز یه چیز پیش پا افتاده میشه.در کل هر امری بود در خدمتم zaker3055@yahoo.com :چشمک:

----------


## singel

دوست عزيز سلام
من با بسكام ميخوام بنويسم
ميكرو atmega32
البته يه زمينه كوچيكي از avr دارم
در حد يك دماسنج ديجيتال ساختم اما از مادون قرمز هيچي نميدونم

----------


## farzadsw

http://www.scienceprog.com/ir-remote...crocontroller/
http://www.serasidis.gr/circuits/InReCoMe/InReCoMe.htm

----------


## singel

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

 
 
 $regfile = "m32def.dat"                                 ' specify the used micro
$crystal = 4000000                                          ' used crystal frequency
$baud = 19200                                               ' use baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space
$lib "mcsbyte.lbx"
 Config Portd.6 = Output
 Config Rc5 = Portd.2
 Enable Interrupts
 Dim Address As Byte , Command As Byte
  Set Portd.6
  Cls
Lcd "Waiting for RC5..."
Do
  Reset Portd.6
  Getrc5(address , Command)
  Cls
     Command = Command And &B01111111
     Lcd Address ; "  " ; Command
  Waitms 2500
Loop
End
 
 
 

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

----------


## singel

یعنی کسی نمیدونه مشکل کار من چیه ؟

من از کنترل تلویزیون سامسونگ استفاده میکنم اما توی نمایش پایانی روی ال سی دی address,command هر دو 255 رو نشون میده
اشکال کار من کجاست

 
$regfile = "m32def.dat"                                     ' specify the used micro
$crystal = 1000000                                          ' used crystal frequency
 $lib "mcsbyte.lbx"
Config Rc5 = Portd.2
Config Portb = Output
'Config Porta = Output
Enable Interrupts
Dim Address As Byte , Command As Byte
'Set Porta.0
Do
Cls
   Getrc5(address , Command)
   Lcd Address ; "       " ; Command
     Waitms 1000
     Cls
 Loop
 End

----------


## farzadsw

با بسکام برنامه رو نوشتید؟ مثال از جای دیگه ای بوده یا خودتون برنامه رو نوشتید ؟
چون من دقیقا نمیدونم توی mcsbyte.lbx چه تابع هایی هست ، فرض میکنم نحوه استفاده از تابع ها درست باشه . در این صورت :
اگه برای گیرنده بافر وجود نداره  اشکال از wait هست . برای تست این حالت wait رو داخل یه IF بگذارید تا هروقت مقدار command غیر از 255 شد اونوقت 1 ثانیه صبر کنه (در غیر این صورت همیشه مقدار گیرنده رو چک کنه).
مورد دیگه ای که به نظر گنگ میاد اینه که از چه interrupt یی استفاده شده (i/o ,timerو..) و کی فعال میشه ؟

----------


## singel

من از help بسکام استفاده کردم

----------


## M_Ali_Safdari

این برنامه کد RC5 استاندارد رو می خونه
این استاندارد متعلق به سونی است .احتمالآ ریموت کنترل شما از استاندارد دیگه ای استفاده می کنه (البته اگر فرض کنیم مدار و سایر موارد درست باشند)

برای تست برنامه و مدار : یک میکرو دیگر به عنوان فرستنده قرار دهید.برنامه فرستنده هم در help  وجود دارد .در راهنما به دنبال دستور RC5SEND بگردید.

----------


## singel

> مورد دیگه ای که به نظر گنگ میاد اینه که از چه interrupt یی استفاده شده (i/o ,timerو..) و کی فعال میشه ؟


دوست عزیز میخوام بدونم ایا توی ارتباطات مادون قرمز احتیاجی به interrupt  هست یا نه ؟ :لبخند گشاده!:

----------


## M_Ali_Safdari

دوباره سلام
شما مادون قرمز را برای چه منظوری می خواهید استفاده کنید؟

1-ارسال داده بین دو دستگاه (مثلآ دو میکرو ؛ کامپیوتر و یا ترکیبی از آنها)
2-دریافت اطلاعات از ریموت کنترل های دستگاه های معمول مثل تلویزیون و...

؟

----------


## farzadsw

> دوست عزیز میخوام بدونم ایا توی ارتباطات مادون قرمز احتیاجی به interrupt  هست یا نه ؟


اگه اینتراپت نباشه که میکرو باید همیشه چک کنه پیام اومده یا نه ! 2 صورت اینتراپت میشه استفاده کرد . یکی اینکه تایمر بگذاری که مثلا هر 50 میلی ثانیه بافر رو چک کنه (در این  حالت بافر برای ذخیره سیگنال لازمه)  . حالت دیگه اینه که هر وقت سیگنال اومد همون موقع اینتراپت فعال بشه و سیگنال رو ذخیره کنه (بافر نرم افزاری) .

----------


## singel

من هنوز مشکل دارم !!!

----------

