سلام به همه.
اگه میشه لطف فرمائید یه کم حوصله یه خرج بدید و پروژه رو نگاه بندازید.
من یه پروژه گیر آوردم که ارتباط بین دو میکرو هست البته از نوع UART و از نوع بیسیم مادون قرمز.
اگه پیوست رو دقت کنید میبینید که در فرستنده از ATTINY26L استفاده شده اما من چون پروگرمرشو نداشتم یه ATMEGA32 گذاشتم و کد فایل فرستنده رو تغییر دادم که اون بنام p.7-new پیوست کردم. فرستنده ای که استفاده کردم از همین ال ای دی مادون قرمز که تو بازار پیدا میشه. گیرنده گفته TSOP1238 ولی من از HS0038A2 محصول همون شرکت که تو دیتا شیت نوشته همون کارو انجام میده.
توی فرستنده تو کد داریم :
Open "COMb.4:2400,8,n,1,inverted" For Output As #2
اما من وقتی ATMEGA32 گذاشتم اینو نوشتم و پایه 4 از 555 رو به PORTD1 وصل کردم:
Open "COMd.1:2400,8,n,1,inverted" For Output As #2
ولی جوابی نگرفتم.
اینم بگم من تو فرستنده بخاطر جای کم فقط 4 تا سوییچ استفاده کردم.
یه چیز دیگه اینکه تو فرستنده قراره 555 فرکانس 38 کیلو بسازه ولی وقتی ولت متر به پایه 3 و زمین وصل میکنم روی 1.6 ولت وا میسه در واقع این پورت d.1 هست که به پایه 4 555 وصله و حکم txd رو داره.
خیلی ممنون.....
۱ - فرستنده می فرسته؟
۲ - نور فرستنده توی گوشی موبایل پیداست؟
۳ - گیرنده می گیره یعنی قبل از میکرو شما سیگنال داری؟
آقا ببخشید دیر شد.
ممنون از وقتی و حوصله ای که گذاشتی.
بالاخره به هر طریق فرستنده اطلاعات رو فرستاد و گیرنده خوند.
البته تو کد دست بردم و یه سری جابجایی تو مدار.
الان گفتم هر کدی که ارسال شد رو ال سی دی نمایش بده . نمایش هم میده ولی بعضی اوقات کد تکراری بعضی وقت هم کدهای دیگه .البته وقتی یه چیزی دریافت میکنه من گفتم یه ال ای دی روشن و خاموش بشه. رو بعضی دکمه ها دوبار میگیره و دوبار روشن خاموش میشه نمیدونم چرا. البته یه بار با کنترلهای تو خونه مثل تی وی و دی وی بی تست کرئم اونها رو هم میگیره.
نمیشه بهش بگی فقط یه نوع ریموت رو یشناس؟
راستی اون سوال 2 رو منظورتو نفهمیدم.
آقا این سوال من و جواب ندادی معمولا کی تو فروم آنلاین هستی تا بتونینم پست بدیم؟
فعلا
سلام آقا مسخرم نکنید.
من بخش فرستنده رو بی خیال شدم.
وقتی تو گیرنده نوشتم:
کد:
[align=left]$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Pinb.0 , Db5 = Pinb.1 , Db6 = _
Pinb.2 , Db7 = Pinb.3 , Rs = Pinb.4 , E = Pinb.5
Config Lcd = 16 * 2
Cls
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = _
Clear Down , Prescale = 1
Config Timer0 = Timer , Prescale = 1024
Config Porta = Output
Declare Sub Volume
Declare Sub Device
Dim A As Integer
Enable Interrupts
Enable Ovf0
On Ovf0 T0_int
Enable Urxc
On Urxc Intlab
Cls
Lcd "start>"
'Lowerline
Porta = 1
Pwm1a = 100
Start Timer1
'***********
Do
Reset Porta.2
Waitms 100
Set Porta.2
Waitms 100
Loop
End
'===========
Intlab:
Timer0 = &H00
Start Timer0
'==============
'==============
A = Udr
Cls
Lcd A
Toggle Porta.1
Waitms 50
Toggle Porta.1
'set Porta.0
'waitms 300
'reset porta.0
'end select
Waitms 500
Return
'***************
T0_int:
Stop Timer0
Timer0 = &H00
Start Timer0
Return
'*****************
[/align]
وقتی رو برد برد بسته با یه هر ریموتی که تو خونه دارم میگیرم سمت گیرنده hs0038a اطلاعات رو میگیره ولی بیشتر اوقات کد تکراری داره یا بیشتر تر رو ال سی دی مینویسه 255 و اگه یه عدد دیگه بنویسه سریع خودش دوباره میره رو 255 و دوباره ال ای دی روشن خاموش میشه.
با ریموتهای x.vision برای dvb,dvdplayer tv تست کردم جواب یکی بود.
البته وقتی 5 ولت وصل میکنم و یه دکمه میزنم اون عملکرد تایمر1 که هی داره یه ال ای دی جدا رو روشن و خاموش میکنه متوقف و سپس چند ثانیه سنگین فکر میکنه و وفتی کار تایمر0 رو تموم کرد میره به حالت عادی.
اگه تو بسکام بخام میتونم همین برنامه رو simulate کنم میشه؟
زدم سیمولیت و run ولی خیلی طول میکشه میره رو یه خط همینجوری وا میسه.
[/align]
این طور که پیداست شما از پروتکل UART میکرو استفاده کردی و بعد جلوی اون کنترل دستگاه های مختلف رو قرار دادید؟
فرستنده شما هم باید از همون پروتکل استفاده کنه. دستگاه های تجهیزات الکترونیکی هر کدام یک قالب مخصوص به خودشون رو دارند. و در چنین شرایطی اطلاعات دریافت نمی شوند یا اگر هم دریافت شوند به طور غلط دریافت میشوند.
یعنی برای درست کار کردن مدار باید فرستنده مدار رو هم مطابق گیرنده بسازی یا گیرنده رو مطابق فرستنده بسازی.
در مورد شبیه ساز هم پیشنهاد میکنم از Proteus استفاده کنی.
حالا راهی هست که بشه بهش کدها رو فهموند من از این روشی هم که توی
اینجا
بود هم استفاده کردم بازم جواب همونه . پس اگه بخوام ای وی آر با ریموتهای متفاوت کار کنه چه کنم؟
!!!! ارتباط میکرو با میکرو یا ریموت با میکرو؟
اگر هدف این باشه که کنترل دستگاه های مختلف رو بخونی باید درباره نوع ارسالشون تحقیق کنی تو نت جستجو کنید پیدا میشه.
این پروژه هم نمونه ساده ای ست. البته کدها بهینه شده نیستند اما جواب میده.
http://www.iranled.com/forum/thread-18151.html
ببین اول میخواستم وقتی روی یه میکرو سویچی زده شد اطلاعات روی برد گیرنده توسط میکروی دیگه بگیره اینم انجام دادم و کار کرد . البته تو 10 دفعه 2 بار سوتی میداد و 0 میفرستاد.
الان دیگه برد فرستنده تعطیل .
میخوام با حالا هر نوع ریموتی مثلا ریموت dvb کوچیک دارم وقتی دکمه ای زدم اطلاعات بره و گیرنده و میکرو کدش رو بگیرن و حالا بعدا با هر کد یه کاری تو مدار انجام بشه.الانم کد رو میگیره هی 255 رو ال سی دی نشون میده و بعضی موقعها اون ال ای دی که گفتم یه بار روشن خاموش بشه سریعا دو بار خاموش روشن میشه اول مثلا یه کد مینویسه رو ال سی دی و سریع دوباره مینویسه 255. احساس میکنم کدی که میفرسته از این 8 بیت مگا 16 بیشتره انگار کدها ادامه داره ، نمیدونم. او دوستمون abbasalifix گفت باید محدود کنی من که چیزی حالیم نیست. البته اون متد RC5 خوبه ولی نمیدونم برم بازار چه ریموتی بخرم که باهاش مچ باشه.
پیوستو نگاه کنید ریموتهایی که تست کردم و فیلمی که دکمه ریموت رو میزنم اول 0 بعد 102 بعد 255 رو نشون میده
سلام...
کجا رفتید پس ؟
کجا رفتید؟
کجا رفتید؟