اطلاعیه

Collapse
No announcement yet.

ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

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

    #46
    پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

    نوشته اصلی توسط javad1354
    برای دکمه 0 تا 10 ریموت کنترل عددهای 0 تا 10 رو بر میگردونه
    مرسی از همکاریتون :applause:
    هرچند این طرح با مدار مورد نیاز تاپیک فاصله داره ، ولی خوب فعلا تا اینجا بد نیست.
    من الان میرم مدار این برنامتون رو میبندم. دوباره تمام کنترل های خونمون رو جمع میکنم، و باشون تست میکنم. امیدوارم بینشون حداقل یکیشون با پرتکل RC5 بوده باشه.

    '$sim
    راستی تو خط دوم منظور از این عبارت چی بوده؟

    اگه جواب گرفتم،باهم روش کار میکنیم تا به سمت مدار هدف تاپیک ، پیش بریم.
    تا همینجاش هم ازت ممنونم.

    دیدگاه


      #47
      پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

      متاسفانه از برنامه های آقای javad1354 هم نتیجه نگرفتم.
      هر دوتا برنامه موجود توی پست 34 و 43 رو تست کردم.
      با 5 نوع مختلف کنترل که تو خونه داشتم، تست کردم ولی خروجی تغییر وضعیت نداد.
      دیگه دارم به روش کار خودم ، و یا سخت افزارهای خودم مشکوک میشم.
      برای همین بطور خلاصه میگم چیکار کردم تا اگه اشکالی تو کارهام بود، بفرمایید تا رفعش کنم.
      متن برنامه توی پست 34 رو دقیقا کپی کردم و توی بسکام و به یه صفحه جدید منتقل کردم بعد با F7 کامپایل و سپس با F4 وارد پروگرمر شده و فیوز بیت رو روی 1Mhz تنظیم کرده و آیسی رو پروگرام کردم.
      پایه 13 آیسی خروجی بود که پایه مثبت LED رو بهش وصل کردم و پایه 4 آیسی هم ورودی اطلاعات IR هست که خروجی سنسور tsop1238 رو بهش وصل کردم.
      ولی با وصل تغذیه خروجی در حالت پایین میمونه و با فشار دادن کلید 1 تغییر حالت نمیده. برای احتیاط کلید های دیگه رو هم میزنم ، ولی با اینکه روی پایه 4 آیسی نوسان دارم، ولی خروجی تغییر وضیت نمیده.

      برنامه پست 43 هم به همین روش تست شد با این تفاوت که خروجی 5 تا در نظر گرفته شده که به ترتیب پایه های 24 تا 28 میباشند که بهشون LED وصل کردم، ولی باز خروجی ها توی حالت پایین باقی موندند و به کلیدهای 1 تا 5 عکس العملی نشون ندادند.

      اگه روش انجام کارهام درست باشه، فقط یه احتمال میمونه اون هم اینه که هیچکدوم از کنترل های من از نوع RC5 نیست!!!
      مارک کنترلهام رو توی پست 39 نوشته ام.
      آخه هر دوی این برنامه ها رو آقای javad1354 عملا تست کرده اند و جواب گرفته اند.
      با سپاس

      دیدگاه


        #48
        پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

        فردی جان ببین من برای شروع کارم از آی سی ماکس 232 استفاده کردم تا ببینم از کنترل چه چیزی دریافت میکنم و اونو توی ترمینال امولاتور مشاهده میکردم و فهمیدم که برای هر دکمه چه عددی برمیگردونه .نمیدونم شما میتونی از این آی سی استفاده کنی یا نه .اگر میتونی کارت خیلی آسون میشه و راحت میتونی کدهای دریافتی از ریموت کنترل را ببینی . ضمنا من با کنترل تلویزیون صنام که نمونه ایرانی تلویزیون سامسونگ هست چک کردم .شما میتونی با کنترل های تلویزیون های سامسونگ چک کنی .ضمنا من چون تلویزیون هم تعمیر میکنم ، بارها پیش اومده که با همین کنترل تلویزیون خودم تلویزیون های مارکهای دیگه رو هم کنترل کردم و تقریبا همه تلویزیون های قدیمی از همین کنترل استفاده میکنند .سعی میکنم عکس کنترل رو هم برات بزارم تا ببینیش . خوب یه چکی که فکر میکنم شما هم انجام دادی گرفتن خروجی چشمیه . باید اونو با یه مولتیمتر عقربه دار چک کنی و ببینی وقتی دکمه کنترل رو میزنی خروجی اون بسمت منفی باید حرکت کنه . پس باید یه مقاومت پول پ خارجی برای پایه شماره 4 میکرو بزاری که مقدارشم 2.2 کیلو یا توی همین مایه ها باشه خوبه . ضمنا یه ورودی مثبت چشمی رو با یه مقاومت 330 اهمی به تغذیه مدار وصل کن. حالا یه خازن عدسی 104 به پایه تغذیه و پایه گراند چشمی وصل کن و خروجی چشمی رو به پایه 4 وصل کن . ضمنا دستور sim$ برای شبیه سازی در محیط شبیه ساز بسکام میباشد که وقتی میخواهی برنامه رو روی آی سی بریزی نباید توی برنامه کمپایل بشه و من اونو با ' غیر فعال کردم.میتونی حذفش کنی.ایشالا جواب بگیری .
        ضمنا اینقدر گیرندگیش قوی هست که من کنترل رو به هرسمتی که میگیرم جواب میده .

        وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
        نرمن وينسنت پيل

        دیدگاه


          #49
          پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

          از آی سی ماکس 232 استفاده کردم تا ببینم از کنترل چه چیزی دریافت میکنم و اونو توی ترمینال امولاتور مشاهده میکردم و فهمیدم که برای هر دکمه چه عددی برمیگردونه
          آقا این ابتکار شما ، برای من که عاشق کار با مدارات IR هستم نعمت بزرگیه. البته هنوز درست نفهمیدم این ترمینال امولاتور چیه؟ ولی از همین الان شروع به مطالعه تو این زمینه میکنم. انگار با این روش شما می شه ، همه دگمه های ، همه نوع کنترل رو دیکد کرد!

          ضمنا من با کنترل تلویزیون صنام که نمونه ایرانی تلویزیون سامسونگ هست چک کردم
          متاسفانه ما تلویزیون سامسونگ نداریم.
          همه تلویزیونهای ما سونی هستند.
          توی اولین فرصت یه کنترل مارک سامسونگ هم میخرم.
          پس مطمئن باشیم که سامسونگ بطور قطع از RC5 استفاده میکنه؟؟

          خوب یه چکی که فکر میکنم شما هم انجام دادی گرفتن خروجی چشمیه
          در مورد خروجی سنسور IR مطمئن باشید. طبق دیتاشیت سازنده بسته ام.
          من اسیلوسکوپ دارم. خروجی رو با اسکوپ چک میکنم. موجهای خیلی تمیز و قوی دارم.

          ضمنا اینقدر گیرندگیش قوی هست که من کنترل رو به هرسمتی که میگیرم جواب میده .
          درسته وقتی با اسکوپ پایه 4 آیسی رو کنترل میکنم، تقریبا جهت کنترل رو به هر سمت که میگیرم، اون موجها رو روی پایه 4 بصورت تمیز ، دارم. ولی خوب با این حال خروجی تغییر وضعیت نمیده!

          دیدگاه


            #50
            پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

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

            آیسی 232 هم خریدم. میخوام مدار آقای javad1354 رو طبق نقشه زیر ببندم و با اعلام کدهای دریافتی از کلیدهای 1 تا 5 ببینم ایراد از کنترل هست یا مدار mega8.



            فقط نمیدونم بعد از بستن این مدار، توی کامپیوترم با کدوم نرم افزار ارتباط بر قرار خواهد کرد. احتمالا با بسکام. نمیدونم فعلا بزار اینو درست کنم به موقش اونم میپرسم

            دیدگاه


              #51
              پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

              ببین فردی جان من با تحقیقی که کردم متوجه شدم که تلویزیون های جدید عموما با پرتکل RC6 کار میکنند و شما نمیتونی اونها رو با این برنامه ای که من نوشتم دیکد کنی . یعنی خود بسکام هیچ تابعی برای دریافت اونا نساخته .پس اگه میخوای باید یا دنبال نوشتن برنامه برای این پروتکل جدید باشی ویا با کنترل های قدیمی کار کنی . موفق باشی
              به این لینک یه نگاهی بنداز یه پروژه داره ببین میتونی دانلود کنی .
              http://www.circuitlake.com/avr-sony-rc-decoding.html
              شرمنده که نتونستم زود تر این مطلبو برات بزارم و توخرج افتادی :sad:
              وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
              نرمن وينسنت پيل

              دیدگاه


                #52
                پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                شرمنده که نتونستم زود تر . . .
                این حرفها چیه! مخلص شما هم هستم!

                به این لینک یه نگاهی بنداز یه پروژه داره ببین میتونی دانلود کنی
                مارک محبوب خانواده ما سونی هست. حتی دیسکمن من هم مارک سونی بود. اینه که قبلا تو گشت و گذار هام اون لینک رو دیده بودم.میتونید تصور کنید با دیدن اون تصویر چه عذابی میکشم؟ :biggrin:
                چون میدونم اون چیزی که همیشه مانع رسیدن به خواستم شده، توی همین تصویر زیر هست.همیشه فقط یک قدم باهاش فاصله داشتم.



                ولی آه و صد افسوس که حتی بعد از درک مفهوم این عکس هم ، چون برنامه نویسی نمیدونم، آه ه ه ه . . . :sad:

                دیدگاه


                  #53
                  پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                  نا امید نشو میتونیم باهم روش کار کنیم . من دارم فعلا رو پروتکلش تحقیق میکنم تا ببینم چی میتونم گیر بیارم .توهم همین کارو بکن و نتیجه تحقیقاتمون رو توی تاپیک میزاریم تا به امید خدا به نتیجه مطلوب و نهائی برسیم .
                  وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
                  نرمن وينسنت پيل

                  دیدگاه


                    #54
                    پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                    خوب برای شروع باید ماکس 232 رو وصل کنی و ابتدا یک کلمه از آی سی به کامپیوتر بفرستی تا مطمئن بشی که ارتباط دهی درست انجام میشه و بعد از برنامه ای که میزارم برای خوندن اطلاعات ارسالی از هرنمونه کنترلی که داری میتونی استفاده کنی .فقط تورو خدا این ماکسو ببند که خیلی لازمه . نقشش خیلی ساده است .فقط 4 خازن میخواد و همین .بعد پایه 3 اتمگا رو وصل میکنی به پایه 11 ماکس و از پایه 14 ماکس وصل میکنی به پایه 2 سوکت 232 و گراند مدارتم به پایه شماره 5 سوکت 232 و بهمین راحتی ...
                    اینم نقشش:
                    http://www.botskool.com/images/forum...32_circuit.jpg
                    اینم برنامه .فقط خروجی چشمی رو به پایه 14 مگا 8 وصل کن و یاعلی مدد.

                    $regfile = "m8def.dat" : $crystal = 1000000 : Baud = 1200

                    Dim B As Byte , W(36) As Word

                    Do

                    Waitms 100 : Print "ANT"
                    B = 1

                    Bitwait Pinb.0 , Reset

                    Do
                    Do
                    Incr W(b) : Waitus 95
                    Loop Until Pinb.0 = 1
                    Incr B
                    Do
                    Incr W(b) : Waitus 95
                    Loop Until Pinb.0 = 0
                    Incr B
                    Loop Until B > 36

                    For B = 1 To 36
                    Print B ; "= " ; W(b)
                    W(b) = 0
                    Next

                    Waitms 200

                    Loop
                    وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
                    نرمن وينسنت پيل

                    دیدگاه


                      #55
                      پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                      1- آیسی خریداری شده من HIN 232 هست و مال خود ماکسیم نیست. آخه MAX رو تموم کرده بود ولی 232 هست. روز پنج شنبه بود و بازار تق و لق. مشکلی که نداره؟

                      ابتدا یک کلمه از آی سی به کامپیوتر بفرستی تا مطمئن بشی که ارتباط دهی درست انجام میشه
                      2- با پوزش من اولین بارم هست که اینترفیس رو تجربه میکنم اینه که توی امورات حتی اولیه هم ابهام دارم.
                      این، مثلا یک کلمه تست رو چجوری ایجاد کنم؟ چه عملی انجام بدم که به کامپیوتر فرستاده بشه؟
                      مهم تر از همه، توی کامپیوتر ، کدوم نرمافزار و تو کدوم قسمتش این اطلاعات نشون داده میشه؟

                      پایه 14 ماکس وصل میکنی به پایه 3 سوکت 232
                      3- جسارت نباشه، ولی انگار اینجا اشتباه شده. آخه تو نقشه پایه 14 به شماره 2 سوکت وصل شده!!!

                      اینم نقشش
                      4- توی نقشه شما از خازن 100 نانو استفاده شده و توی دیتاشیت از 1 میکرو . وتوی نقشه پست 49 خازنها 10 میکرو هستند. یعنی مقدار دقیق این خازنها زیاد بحرانی نیست؟


                      به پاسخ سوال شماره 2 خیلی نیاز فوری دارم!
                      با سپاس

                      دیدگاه


                        #56
                        پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                        حق با شماست در پست قبلی اشتباهی (پایه 3 سوکت )نوشتم که پایه 2 صحیح است .
                        ببین دوست من اگه یکم به آی سی ماکس دقت کنی میبینی که قابلیت ارسال ودریافت اطلاعات رو بصورت 2 کانال مجزا داره .
                        ببین اطلاعات از میکرو روی پایه RXD=2 دریافت میشه و روی , 3=TXD ارسال میشه پایه های شماره 2 و3 اتمگا 8 .
                        همچنین اطلاعات از کامپیوتر روی پایه های 3=TXD و 2=RXD پرت سریال یا همون COM1 نیز ارسال و دریافت میشه .
                        حالا نگاه کن ببین که ما فقط میخواهیم اطلاعات رو از میکرو به کامپیوتر بفرستیم .پس به یک پایه 3=TXD از میکرو نیاز داریم و به یک پایه 2=RXD از پورت سریال . برای اینکار اومدیم و از یک کانال ماکس 232 استفاده کردیم و پایه 3 میکرو رو به پایه 11 ماکس که ورودی کانال 1 هست وصل کردیم و از پایه شماره 14 ماکس که خروجی کانال 1 هست به پایه شماره 2 ورودی پرت کامپیوتر وصل میکنیم که همون 2=RXD است .
                        برای خازنها من خودم 10 میکرو 16 ولتی گذاشتم وداره جواب میده .
                        ضمنا برای ارسال یک کلمه میتونی از دستور زیر استفاده کنی .
                        $regfile = "m8def.dat" : $crystal = 1000000 : $baud = 1200

                        Do
                        Print "HELLO FREDI"
                        Waitms 500
                        Loop
                        ضمنا باید فرکانست روی 1 مگ کریستال داخلی باشه (بصورت پیش فرض هست اگه تغییرش نداده باشی)
                        بعداز بستن مدار وپروگرام کردن آی سی فقط مدارو به پرت کام وصلش کن وتغذیه هم داشته باشه و برنامه ترمینال امولاتور رو باز کن باید شروع به نوشتن "HELLO FREDI" بکنه.
                        بهمین راحتی...
                        وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
                        نرمن وينسنت پيل

                        دیدگاه


                          #57
                          پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                          آقای javad1354
                          طبق راهنمایی شما عمل کردم و مدار max232 رو بستم ، و توی همون تست اول ، جواب داد.
                          با برنامه شما هم یه کلمه تستی پروگرام کردم و توی صفحه ترمینال امولاتور اون کلمه نوشته شد.



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

                          دیدگاه


                            #58
                            پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                            دوستان نمیخوام نا امیدتون کنم
                            ولی.....

                            دستور getrc5 همون طور که از اسمش هم هویداست فقط از پروتکل rc5 پیروی میکنه
                            مقلا اگر ریموت lLG بگیری جلوش احتمال زیاد جوابی نداره خدمتتون بده(یه تست بزن لطفا)

                            واسه همین باید این کار رو با تایمر بکنید
                            من یه برنامه دارم (خودم خیلی وفت نشد روش کار کنم نصفه ولش کردم)
                            که کد رو بهتون نشون میده و با هر نوه کنترلی که بگین تست کردم و مال همه رو میخونه
                            lg starsat حتی این fm modulator های 5000 تومنی تو بازار رو هم میخونه

                            شما ادامه بدین

                            تو اینم برنامه کد رو دقیق نشون میده که هر کد چند میکروثانیه 0 یا یک هست
                            حالا شما باید با یه میکرو دیگه یه برنامه بنویسین که دقیقا همین کد رو ارسال کنه :eek:
                            کد:
                            $regfile = "m8def.dat"
                            $crystal = 16000000                     'EX CRYSTAL 10MHZ
                            $baud = 9600
                            
                            
                            
                            Config Portb.3 = Output : Portb.3 = 0
                            Config Portb.0 = Output : Reset Portb.0
                            Config Portd.2 = Input : Portd = 255
                            Config Pinb.2 = Input : Set Portb.2
                            
                            
                            'Config Timer2 = Pwm , Pwm = On , Prescale = 1 , Compare Pwm = Clear Up , Clear Timer = 1
                            
                            
                            'Config Timer1 = Timer , Prescale = 8
                            'On Timer1 Timer1_int
                            Config Timer2 = Timer , Prescale = 128           '256
                            On Ovf2 Timer1_int
                            
                            Config Int0 = Change
                            On Int0 Int0_int
                            Disable Int0
                            
                            Enable Interrupts
                            Stop Timer2
                            Timer2 = 0
                            
                              $sim
                            Dim Data_remote(200) As Byte , Data_counter As Long , L As Long , Data_remote_time(200) As Word
                            Dim I As Integer , Ir_bit_time As Single
                            Data_counter = 1
                            Print "      in the name of oo"
                            
                            
                            Enable Int0
                            Enable Timer2
                            Start Timer2
                            
                            Do
                            If Pinb.2 = 0 Then
                            
                                Print "    Data_counter is " ; Data_counter
                              For L = 1 To Data_counter
                              Ir_bit_time = Data_remote_time(l) * 0.0625
                              Print " " ; Fusing(ir_bit_time , "##.#") ; "  ";
                              I = L Mod 4
                              If I = 0 Then Print "  " ; L ; ""
                             Next L
                             Print ""
                             Print "finish data"
                             Print "***********************************************"
                            
                            
                            
                            
                             For L = 1 To 200
                             Data_remote(l) = 0
                             Next
                             For L = 1 To 200
                             Data_remote_time(l) = 0
                             Next
                             Data_counter = 1
                            End If
                            
                            Loop
                            
                            
                            
                            Int0_int:
                            'Incr Data_counter
                            'Data_remote(data_counter) = Pind.2
                            'Data_remote_time(data_counter) = Timer1
                            
                            Data_remote_time(data_counter) = Timer2
                            Timer2 = 0
                            Incr Data_counter
                            'Print "ok"
                            Return
                            
                            
                            
                            Timer1_int:
                            If Data_counter <> 1 Then
                            Toggle Portb.0
                            Print Data_counter
                            End If
                            Return
                            علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                            دیدگاه


                              #59
                              پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                              حالا شما باید با یه میکرو دیگه یه برنامه بنویسین که دقیقا همین کد رو ارسال کنه
                              همین کدها رو دوباره بسازیم که چیکار کنیم؟
                              آقا امید ، هدف اینه ، میخوایم با حالت learn کد یه دگمه خاص رو بدیم به eeprom و توی حالت عادی هر وقت اون کلید فشار داده شد ، یه خروجی تغییر حالت بده.
                              شکل صفحه اول گویاست چی میخوایم.
                              منتها با آیسی موجود تو بازار و قبول کد از کلیه کنترلها.
                              tiny22 تو بازار ما نیست.
                              میتونید تو نوشتن برنامش کمکمون کنید؟

                              دیدگاه


                                #60
                                پاسخ : ریموت کنترل IR یک کاناله - قابل برنامه ریزی با هر نوع کنترل خانگی

                                امید جان اگه مطب بالای صفحه 6 رو میخوندی متوجه میشدی که ما هم میدونیم که کنترل های جدید عموما از پرتکل RC6 استفاده میکنند و بهمین خاطر با برنامه ای که نوشتم منم سعی کردم زمان صفر و یک هر پالس رو ببینم چقدره با این تفاوت که شما اومدی و از تایمر استفاده کردی ولی من از waitus . جواب هم گرفتم تا حدودی .ولی برنامه شمارو استفاده کردم جز 2 تا صفر چیز دیگه ای نشون نمیده . ولی اگه لطف کنی و تجربیاتت رو با ما به اشتراک بگذاری ممنون میشیم .
                                وقتي همه نيروهاي جسمي و ذهني متمرکز شوند توانايي فرد براي حل مشکلات به طور حيرت انگيزي چند برابر مي شود .
                                نرمن وينسنت پيل

                                دیدگاه

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