اطلاعیه

Collapse
No announcement yet.

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

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

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

    من برنامه رو تست کردم مشکلی نداشت !!! فکر کنم شما کلید رو چندبار پشت سر هم و با سرعت میزنید و یا کلید رو زیاد نگه میدارین . هر دو حالت باعث میشه که این برنامه درست کار نکنه . دلیلش هم اینه که وقتی شما یه کلید رو نگه میدارین ، ریموت دستور ارسالی رو تکرار میکنه که من برای جلوگیری از تغییر ناگهانی خروجی یه Delay چند میلی ثانیه ای گذاشتم ( 200mS ) .
    حالا شما دقیقا مشخص کن که میخوای چیکار کنی تا من برات برنامه رو هماهنگش کنم .
    فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

    دیدگاه


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

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

      برنامه دوم شما ، نه اینکه کار نمیکنه ، بلکه کار میکنه ولی یه ریزه مشکلاتی توش هست.
      مجددا تست کردم.
      عکس العمل برنامه جدید شما ، دقیقا همون هست که در پست قبلی با دقت نوشتم.
      پس چطور برنامه اول شما ، عالی کار میکنه؟؟؟ اگه تو تستهام مشکل داشتم ، از برنامه شماره 1 شما هم نمیتونستم نتیجه بگیرم ، در حالیکه اینطور نیست.
      با پوزش ، انگار پست قبلی منو با دقت نخوندید!
      راجع به اون 5 تا کد دقیق راهنمایی کرده ام.
      تمنا میکنم ، پست قبلی من (پست شماره 133) رو دوباره با دقت بخونید!
      باز پوزش میخوام ، فقط قصدم راهنمایی هست ، برای پیدا کردن مشکل!

      دیدگاه


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

        نوشته اصلی توسط n340
        دوستان این سخت افزار چی میخواد
        تا من ادامشو با سی بنویسم
        یک شماتیک به من بدید برنامه کامل تحویل بگیرید
        توی صفحه اول تاپیک کامل نوشتم که هدف چیه ، ولی باز خلاصه برای شما عرض میکنم.
        میخوایم یه گیرنده یک کانال IR درست کنیم ، که حالت learn هم داشته باشه. پس به این ترتیب با همه نوع کنترل موجود توی خونه قابل برنامه ریزی خواهد بود.
        یه دگمه از کنترل رو با حالت learn وارد eeprom میکنیم ، بعد از اون با هربار فشار اون کلید خاص خروجی به حالت flip-flop روشن و خاموش بشه تا بکمک اون مثلا لامپ اتاقمون رو روشن و خاموش کنیم.

        حالا دوستمون AlirezaT اول یه برنامه تستی دادند که البته اطلاعات اون کلید وارد eeprom نمیشد و تو حافظه flash میموند که با قطع تغذیه پاک میشه ، ولی بصورت عالی کار میکنه و اصلا خطا نداره.
        خروجی برنامه ایشون ، با دریافت مجدد اون کد فقط دوبار روشن و خاموش میشه و بصورت flip-flop نیست!

        خوب من eeprom رو فعلا بیخیال شدم و ازشون خواهش کردم فقط خروجی رو بجای دوبار روشن و خاموش شدن، بصورت flip-flop در بیارند ، گه ایشون هم لطف کردند و برنامه دوم رو نوشتند ، ولی همون طور که توی پست 133 نوشتم برنامه دوم به خوبی برنامه اول کار نمیکنه!
        البته توی برنامه دوم بجز خواهش من تغییرات زیاد دیگه هم دادند ، که متاسفانه من از اونها سر در نمیارم!!

        حالا با کمک این توضیحات و مطالب صفصه اول تاپیک باز اگه سوال داشتید، بفرمایید تا باز هم توضیح بدم. :smile:

        دیدگاه


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

          اره من تا اینجارو میدونم
          شماتیک و نوع قطعات استفاده کرده رو می خواستم
          البته برنامه رو من دیدم از لحاظ فنی درسته
          و از اول هم باید رو همچنی برنامه باید کار می شد
          یک شماتیک و نوع فرستنده گیرنده که استفاده می کنید رو بگید تا من یک تست بگیرم
          هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
          بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
          میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

          تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

          دیدگاه


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

            نوشته اصلی توسط n340
            یک شماتیک و نوع فرستنده گیرنده که استفاده می کنید رو بگید تا من یک تست بگیرم
            میبینید! دقت نمیکنید دیگه!!!!!
            آخه چقدر بگم! فرستنده خاصی نداریم که من اونو به شما بدم!!!
            فرستنده هر گونه کنترل موجود توی خونه است!
            شماتیک و کد هگز توی پست 118 صفحه 8 مربوط به آقای alirezaT موجود است.
            http://www.eca.ir/forum2/index.php?topic=48135.msg262159#msg262159

            متن برنامه هم به زبان C توی پست 124 صفحه 9 موجود است.
            http://www.eca.ir/forum2/index.php?topic=48135.msg262206#msg262206

            دیدگاه


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

              سلام جواد جان من برنامه که فرستاده بودی برسی کردم
              1- اول اینکه اصول کار ش اشتباه است چون برای دیکد پالسها لازم نیست انهارا تو ارایه ذخیره کنی
              2- برنامه رو طوری باید بنویسی که نیاز به رم نداشته باشی
              3-کد استاندارد ریموت بدست بیاری

              من روش خودم که نوشتم البته برای pic با زبان سی توضیح میدم بعد اون برای اتمگا با زبان بیسیکح باز نویسی مکنم سعی کن خودت دستورات تبدیل کنی هم یکم سی یاد میگیری هم به هدفت میرسی
              پس شروع میکنم

              int16 headp,rise,heads,fall;
              تعریف متغیر که خودت وارد تری دستور بیسیک اون

              Dim headp As Word و Dim headp As Word بقیه متغیر ها رو هم تعریف کن

              مرحله اول چند تا شرط ساده است اول پالس اولیه کد شناسایی میکنیم


              if ((headp>8800)&&(headp<9090)&&amp ;(heads>4200)&&(heads<4570)){protoco l=2;} // NEC

              else if ((headp>2340)&&(headp<2480)&&amp ;(heads>470)&&(heads<575)){protocol= 4;} // SIRCS

              else if ((headp>680)&&(headp<970)&&( heads>680)&&(heads<885)){protocol=5; } // RC5

              else if ((headp>3300)&&(headp<3590)&&amp ;(heads>1500)&&(heads<1695)){protoco l=7;} // JAPAN

              else if ((headp>4305)&&(headp<4695)&&amp ;(heads>4200)&&(heads<4550)){protoco l=8;} // SAMSUNG


              headp و heads متغیر که باید تعریف کنیش

              یادت باشه اصول میگم بعد دستورات به بیسیک تبدیل میکنیم

              دستورات شرطی رو هم که بلدی

              If (headp>8800)&&(headp<9090)&& (heads>4200)&&(heads<4570)){protocol =2 Then
              protocol=2
              else
              if ((headp>2340)&&(headp<2480)&&amp ;(heads>470)&&(heads<575))
              End If

              تمام شرطها را تبدیل کن به زبان بیسیک

              مرحله دوم

              این ساب یا زیر روال صبر میکنه که پایه مورد نظر که به چشم متصل یک بشه

              void ir_get_rise(void){

              setup_counters(RTCC_INTERNAL,RTCC_DIV_1); // get high
              setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
              set_timer1(0);
              while(!input(pin_b0)); // wait for signal to go high // RC2, CCP1, pin 17
              rise = get_timer1();

              }
              به این صورت که تایمر یک تنظیم میکنی
              مقدار تایمر صفز میکنی
              تا زمانی که پایه مورد نظر صفر مقدار تایمر میخونی تو متغیر rise میریزی دقت کن این اعدادی که بدست میاد بستگی به مقدار دهی تایمر داره (توضیح بعد میدم)
              زمانی که پایه مورد نظر یک شد چرخه تمام میشه و مقدار متغر rise بدست میاد
              یعنی زمانی که پالس صفز است |____

              مرحله سوم
              بدست اوردن زمانی که پالس یک میشود
              مثل قبلی با این تفاوت کا پایه از نظر صفر شدن چک میشود
              void ir_get_fall(void){

              setup_counters(RTCC_INTERNAL,RTCC_DIV_1); // get low
              setup_timer_1(T1_INTERNAL| T1_DIV_BY_1 );
              set_timer1(0);
              while(input(pin_b0)); // wait for signal to go low
              fall = get_timer1();

              }
              متغیر fall از اینجا بدست میاد

              امیدوارم تا اینجا گیج نشده باشی دستورات بیسیک
              اول مقدار دهی تایمر
              Config Timer0 = Timer , Prescale = 256 'config timer0 for data trap timer
              Stop Timer0 'stop timer0 first for other process

              بع تعریف پین ورودی

              Config pin_b0 = Input 'configure the int pin , i used int1 pin
              Set pin_b0 'set the pull up resistor
              Pin_ir Alias pin_b0 'alias for easy naming

              حالا ساب اول مینویسم البته چند سال بیسیک کار نکردم اونم با بسکام
              دستورات اگه اشتباه اصلاح کنید

              Timer0 = 0 'start timer0 to count
              Start Timer0
              Bitwait Pin_ir , Set 'wait the pin_ir to high again
              Stop Timer0 'stop timer0


              اگه کریستال شما 11,0592MHz باشه پری اسکیلر 256 باشه پروتکل سونی باشه مقدار تایمر بین 111 تا 114 میشه اعدادی که در بالا برای پرتکلها من بدست اوردم با میکرو پی ای سی و کریستال 4 مگا بوده پس باید تمام اونها اصلاح بشه منظور متغیر headp و heads است

              ساب بعدی رو شما تبدیل کنید


              حالا مرحله چهارم یا اصلی ساخت هدر پالس است

              while(input(pin_b0)); // wait for minimal pre which stays low

              ir_get_rise(); // get headp & heads to see what protocol it is
              headp=rise;
              ir_get_fall();
              heads=fall;


              دستور اول یعنی منتظر میشیم که پایه چشم صفر بشه

              Bitwait Pin_ir ,reSet 'wait the pin_ir to high again

              زیر برنامه ir_get_rise اجرا شده مقدار headp=rise بدست میاد

              زیر برنامه ir_get_fall(); اجرا شده و مقدار متقیر heads=fall بدست میاد

              بعد سر طهای بال اجرا شده ونوع پروتکل ریموت بدست میاد

              مرحله پنجم کد گشای است

              if (protocol==8){ // if SAMSUNG protocol


              for (bitcount=0;bitcount!=32;bitcount++){

              ir_get_rise();
              ir_get_fall();
              if ((rise>380)&&(rise<670)&&(fa ll>1250)&&(fall<1750)){ir_tempbyte_h i|=1;} // bit=1
              else if ((rise>380)&&(rise<670)&&(fa ll>300)&&(fall<650)){;} // bit=0
              else return; // error detection

              if (bitcount<31){ir_tempbyte_hi<<=1;} // don't shift last bit
              }

              if (bitcount==32)rx_status=3; // reception is valid

              }

              این قسمت مربوط به کنترل سامسونگه در اینجا 32 بیت برابر 4 بایت چک میشه بقیه رو بعدا توضیح میدم مطمعا تا حالا گیج شدین من 5 مدل کد خوندم که شامل بیش از 30 کنترل مختلف است

              اقا جواد با من تماس بگیر تا توضیحات کامل بدم تا بحث ساده تر کنی

              دیدگاه


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

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

                من برنامه خودم به طور کامل تو چند بست بعدی تو ضیح میدم سما شروع بع تبدیل دستورا کن اونها رو تو تاپیک بزار من اصلاح میکنم
                این یک برنامه کمکی $regfile = "m16def.dat" 'the chip type, subtitutes with the one you like
                $crystal = 11059200 'the crystal speed i used

                Config Timer0 = Timer , Prescale = 256 'config timer0 for data trap timer
                Stop Timer0 'stop timer0 first for other process

                Config Pind.3 = Input 'configure the int pin , i used int1 pin
                Set Portd.3 'set the pull up resistor
                Pin_ir Alias Pind.3 'alias for easy naming

                Config Int1 = Falling 'configure int1 on falling edge
                On Int1 Isr_int1 'the isr label

                Dim Data_ir As Word 'the variabel need for the purpose
                Dim Cnt_ir As Byte
                Dim Flag_ir_start As Bit
                Dim Flag_ir_ok As Bit

                Print "SONY REMOTE DECODER" 'print some output to rx

                Enable Interrupts 'enable global interrupt
                Enable Int1 'enable int1 interrupt
                Reset Pind.3

                Do 'main program start here
                If Flag_ir_ok = 1 Then 'wait flag_ir_ok=1
                Reset Flag_ir_ok 'reset the flag
                Disable Int1 'disable the int1, so ignore all ir data from here

                Print Data_ir 'print the data
                Reset Flag_ir_ok 'reset the flag

                Enable Int1 'enable the int1 interrupt to receive ir sony again
                End If
                Wait 1 'wait for sometime
                Loop

                'isr for infrared sensor
                Isr_int1:

                Timer0 = 0 'start timer0 to count
                Start Timer0
                Bitwait Pin_ir , Set 'wait the pin_ir to high again
                Stop Timer0 'stop timer0

                If Cnt_ir = 0 Then 'if this is the 1st data
                If Timer0 > 111 And Timer0 < 114 Then 'check for a start bit, with prescale=256 and
                Set Flag_ir_start 'crystal 11,0592MHz, got timer0 value between 111 and 114
                Incr Cnt_ir 'as the correct ir start bit. Measure all the neccessary bit first
                End If ' if you want to change it
                End If

                If Flag_ir_start = 1 And Cnt_ir > 0 Then 'a start bit found -> start sampling for next 12 bit

                Decr Cnt_ir
                If Timer0 < 32 Then 'timer0<32 then it is a zero(0), else it is a one (1)
                Data_ir.cnt_ir = 0 'assign it to a word value for easy recording
                Else
                Data_ir.cnt_ir = 1
                End If

                Cnt_ir = Cnt_ir + 2
                If Cnt_ir > 11 Then 'got all 12 bit
                Shift Data_ir , Right , 1 'get rid of the start bit
                Reset Flag_ir_start 'reset the start bit flag
                Set Flag_ir_ok 'the data is ready to be read
                Cnt_ir = 0 'reset the counter
                End If

                End If

                Return

                دیدگاه


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

                  من پست شما رو بیش از 4 بار خوندم ولی مشکلاتی که شما فرمودین رو پیدا نکردم :

                  نوشته اصلی توسط feredi
                  درسته که خروجی بصورت Flip-flop شده ، ولی دستورات بشدت نا منظم اجرا میشه.
                  مثلا Toggle شدن خروجی بصورت منظم و قطعی انجام نمیشه!!!
                  من منظورتون رو از "قطعی" نمیفهمم !!! :sad:

                  نوشته اصلی توسط feredi
                  کلید مربوطه رو که فشار میدم ، یه وقت میبینید مثلا 3 بار خروجی رو Toggle کرد ولی بار چهارم یا پنجم رو بیخیال میشه و عکس العملی نشون نمیده!!! و این خیلی بده!
                  یعنی شما کلید رو به صورت ممتد فشار میدین و خروجی Toggle میشه ؟ خوب با تست من اگه این کار رو انجام بدین خروجی چشمک میزنه .

                  نوشته اصلی توسط feredi
                  بعد از کلید های دیگه که باز سراغ اون کلید مربوطه میام ، فقط چند تا شو انجام میده و بقیه رو رد میکنه!!!
                  احساس میکنم به دامنه سیگنال ورودی هم شدیدا حساس شده!!! گرچه این حرف منطقی به نظر نمیاد.
                  من تو تستم همچین مشکلی رو ندیدم . بازم میگم , شاید شما با سرعت و پشت سر هم کلید رو میزنید ؟
                  دامنه سیگنال رو هم که خداییش یه چیزی پروندی خودتم جمش کردیا !!!!!!! مگه شما از گیرنده های سه پایه استفاده نمیکنید ؟ اینا خروجیشون یا 0 هست یا 1 .
                  نوشته اصلی توسط feredi
                  لطفا، فقط ، خروجی همون برنامه رو بصورت Toggle در بیارید ، و تغییرات دیگه ای اعمال نکنید.
                  فعلا ذخیره کد مربوطه رو توی eeprom رو هم در نظر نگیرید. همونطور که توی برنامه اول هست!
                  منم دقیقا همین کار رو کردم ربطی هم به EEPROM نداره .


                  یه چک دیگه بکن و خبرش رو به من بده ( فرکانس میکرو - خود میکرو - با یه ریموت دیگه - ... )
                  فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                  دیدگاه


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

                    نوشته اصلی توسط AlirezaT
                    مثلا Toggle شدن خروجی بصورت منظم و قطعی انجام نمیشه!!!

                    من منظورتون رو از "قطعی" نمیفهمم !!! :sad:
                    منظورم اینه ، بعد از اینکه کد وارد حافظه شد ، با فشار دادن اون کلید، به طور قطع باید خروجی روشن بشه و با فشار مجدد ، به طور قطع ، خروجی باید خاموش بشه. که در عمل اینجوری بصورت منظم دستور ها اجرا نمیشه و بنا به دلایل نامعلوم ، بعضی از دستورها جا انداخته میشوند و اجرا نمیشوند اینه که هنگام تست نمیشه به طور قطع گفت که اینبار با فشار دگمه خروجی حتما تغییر خواهد کرد یا نه؟
                    منظورم از کلمه "قطعی" این بود.

                    کلید مربوطه رو که فشار میدم ، یه وقت میبینید مثلا 3 بار خروجی رو Toggle کرد ولی بار چهارم یا پنجم رو بیخیال میشه و عکس العملی نشون نمیده!!! و این خیلی بده!

                    یعنی شما کلید رو به صورت ممتد فشار میدین و خروجی Toggle میشه ؟ خوب با تست من اگه این کار رو انجام بدین خروجی چشمک میزنه .
                    قبلا هم گفتم ، تو این موارد وارد هستم و تستهام بصورت دقیق و در شرایط آزمایشگاهی انجام میشه! :smile:

                    احساس میکنم به دامنه سیگنال ورودی هم شدیدا حساس شده!!! گرچه این حرف منطقی به نظر نمیاد.

                    دامنه سیگنال رو هم که خداییش یه چیزی پروندی خودتم جمش کردیا !!!!!!! مگه شما از گیرنده های سه پایه استفاده نمیکنید ؟ اینا خروجیشون یا 0 هست یا 1 .
                    ببین ، ما هممون آدمای فنی هستیم دیگه! من انتظار دارم با اشاره مختصر ،شما مطلب رو بگیری. با مسغره کردن که مشکل حل نمیشه!
                    از پستهای قبلیم باید میفهمیدید ، لااقل توی اجرای اینگونه طرحها تجربه دارم. از دامنه سیگنال هم ، لابد به موردی رسیده ام که نقل کردم وگرنه که . . .
                    موضوع رو باز میکنم ، تا مطمئن بشید از خودم نپروندم!!!!!!
                    برنامه اولتون عالی کار میکنه. از هفت متری هم ، همه دستورها رو انجام میده. حتی به نور رفلکت شده از دیوار هم پاسخ میده. ولی برنامه دوم با یه کم دور شدن کنترل از گیرنده ، درصد پاسخگویی اون کمتر میشه. یعنی تعداد خیلی بیشتری از فرمانها رو ندید میگیره و حتما هم باید فرستنده و گیرنده تو خط مستقیم باشند تا اون چند تا رو هم انجام بده! نور رفلکت شده از دیوار رو ، که اصلا حرفشو نزن!!!
                    به این مورد توی رشته ما میگویند ، "حساس بودن به دامنه سیگنال ورودی" و دنبالش هم گفتم هر چند منطقی به نظر نمیاد ، این مشکل رو داشته باشیم. با مسغره کردن مخاطبت ، رفتار اون مدار که اصلاح نمیشه!!!

                    لطفا، فقط ، خروجی همون برنامه رو بصورت Toggle در بیارید ، و تغییرات دیگه ای اعمال نکنید.


                    منم دقیقا همین کار رو کردم ربطی هم به EEPROM نداره
                    اگه فقط همین یه تغییر رو انجام دادید و کار دیگه ای نکردید ، پس چرا ذخیره شدن اون 5 تا کد توی برنامه اول نیست ولی در برنامه دومتون هست؟
                    از اینجا میگم ، بجز تغییر در حالت خروجی ، چیزهای دیگه هم اضافه شده گه مطلوب ما نیست و کارایی رو خیلی پایین آورده.
                    البته باز هم میگم، برنامه دوم احتمالا یه برنامه دیگه هست ، که برای کارهای خودتون نوشتین.

                    نتیجه اینکه ، من در عمل میبینم برنامه دوم شما همون برنامه اول ، با تغییر جزئی نیست!!!
                    اصلا ساختارش عوض شده!
                    برنامه اول شما عالیست.

                    دیدگاه


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

                      نوشته اصلی توسط hadipic
                      اینم یک برنامه که کد سونی رو دیکود میکنه میزارم تا از روی اون با تایمرها اشنا بشی
                      سلام آقا hadipic
                      از پستهاتون معلومه که توی برنامه نویسی خیلی خبره اید!
                      متاسفانه من توی این مبحث ، شرمنده اهل و عیالم!
                      سر فصل این پستتون برای من که کلی دستگاه سونی دارم خیلی جالبه!
                      ملاحظه بفرمایید!



                      اگه به نتیجه رسیدن این تاپیک خیلی طول بکشه ، از شما خواهش خواهم کرد تا لااقل یه برنامه یک کاناله اختصاصی سونی برام بنویسید.

                      دیدگاه


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

                        نوشته اصلی توسط feredi
                        ببین ، ما هممون آدمای فنی هستیم دیگه! من انتظار دارم با اشاره مختصر ،شما مطلب رو بگیری. با مسغره کردن که مشکل حل نمیشه!
                        از پستهای قبلیم باید میفهمیدید ، لااقل توی اجرای اینگونه طرحها تجربه دارم. از دامنه سیگنال هم ، لابد به موردی رسیده ام که نقل کردم وگرنه که . . .
                        موضوع رو باز میکنم ، تا مطمئن بشید از خودم نپروندم!!!!!!
                        دوست عزیز من اصلا قصد مسخره کردن کسی رو نداشتم ( اگر هم حرفی زدم از شما معذرت میخوام ). آخه حرفی که زدید منطقی نبود !!! حساسیت مدار که ربطی به برنامه نداره ! حساسیت بستگی به اون سنسوری داره که استفاده میکنید ، ریموت کنترل و باتری ریموت . همونطور که بهتون گفتم خروجی سنسور مثلا TSOP1138 شما پس از حذف Carrier و عبور از Amplifier و مقایسه کننده و ... به میکرو وصل میشه .

                        ساختار برنامه همونه که تو برنامه اول هم بود فقط این فرق رو کرده که یه نسخه از کد رفرنس رو توی EEProm ذخیره میکنه
                        فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                        دیدگاه


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

                          خوب اینم از برنامه جدید : :applause: :applause:
                          1- برای Toggle شدن خروجی حتما باید کلید رو قطع کرد و دوباره فشار داد ( یعنی اگه کلید رو نگه داری دیگه Toggle نمیشه )
                          2- به پین B.1 کلید Learn وصل شده که باید با یه 10K و 1uF به زمین وصل بشه ( هر وقت کلید یک بشه میره برای دریافت کلید )
                          - وقتی به مد دریافت کد میره ، شروع میکنه به چشمک زدن .
                          - اگه تا 10 ثانیه کلیدی فشار داده نشه کد قبلی باقی میمونه و با دوتا چشمک سریع از مد دریافت کد خارج میشه .
                          - اگه توی این 10 ثانیه که داره چشمک میزنه کلیدی فشرده بشه، به عنوان کلید رفرنس ذخیره میشه و با یک چشمک بلند تر ، از این مد خارج میشه .
                          3- کد دریافتی توی EEprom ذخیره میشه و با قطع پاور باقی میمونه .
                          4- تلورانس حساسیتش هم افزایش پیدا کرده .

                          خوب امیدوارم دیگه مشکلی نداشته باشه . من که تست کردم جواب داد . شما هم تست کن و جوابشو بهم بگو .

                          http://alirezat.webs.com/Programable...-%20V2.00).rar
                          فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                          دیدگاه


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

                            آقا AlirezaT
                            برنامه سوم بخوبی کار میکنه! :applause:
                            اضافه شدن کلید learn خیلی عالی شده و رفتارش دقیقا همونطور هست که پیشبینی کرده بودید! :applause:
                            resulotion نمونه گیری از سیگنال بالاست ، که در عمل خطا صفر درصد هست. :applause:

                            حیفه که با اینهمه امتیازات ، مجبورم نقاط ضعفش رو هم گزارش کنم :sad:
                            1- از کنترل های سونی کد قبول نمیکنه.
                            2- با کنترلهای مختلف دیگه که جمع آوری کردم ، تست کردم. در پایین عکسشون رو گذاشتم. فقط با دو تاشون کار کرد و از بقیه کد قبول نمیکنه!

                            محض اطلاعتون برنامه شماره یک شما ، با تمام این کنترلها کار میکرد.
                            الان باز اگه بگم ، اون الگوریتم رو توی برنامه سومتون حفظ نکردید ، باز عصبانی خواهید شد. :icon_razz:
                            و باز هم خواهید گفت این همون برنامه هست. شما برو باتریهای کنترلتون رو عوض کنید و . . .


                            با این کنترلها تست کردم.
                            فقط با شماره 1 و شماره 7 کار کرد.
                            به بقیه عکس العمل نشون نمیده.

                            دیدگاه


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

                              ایندفه رو شما راست میگین . من فقط با سامسونگ تست کرده بودم . حالا اینم ورِژن جدید V3.00

                              http://alirezat.webs.com/Programable...-%20V3.00).rar

                              کنترل هایی که باهاشون تست کردم . شما هم تست کنید و جوابشو بگین :



                              خیلی سختی کشیدم :cry: :cry: :cry: . هر کدومشون رو که روی اسکوپ میدیدم یه جور بودن .
                              فقط برای پروگرم کردن حواست باشه که کلید رو فقط یه بار بزنی ( نگه نداری ) .فقط به خاطر اون ریموت نقره ای یه میگم ، چون تست کردم جواب نمیداد
                              فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                              دیدگاه


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

                                آقا AlirezaT
                                این برنامه آخر شما به معنای واقعی بصورت ایده آل کار میکنه!
                                با تمام کنترل هایی که در منزل داشتم ، تست کردم. توی پست قبلیم عکسهاشون رو گذاشتم. با همشون کار میکنه! حتی با کنترل سونی هم کار میکنه!!! (مارک محبوب من)
                                دوتاییمون هم خوب میدونیم که برندهای غولی مثل سونی و پاناسونیک ، پروتکل مخصوص خودشون رو دارند و از پروتکلهای عمومی استفاده نمیکنند. ولی با این حال برنامه شما با همشون به طور مطلق کار میکنه.
                                و اگه قرار باشه بهش نمره بدم ، من بهش ، 100 از 100 میدم.
                                توجه کنید این نمره رو همین جوری برای خوشایند شما ، ندادم.
                                خیلی پارامترها رو در نظر گرفتم. مثل داشتن دگمه learn و اعلام وضعیتش با اون فلش زدنهای بامزه اش! ، نداشتن خطا و سادگی مدار با حداقل سخت افزار و . . .
                                میزان خطا در عمل ، صفر درصد
                                بعد از نمونه گیری و ذخیره کد ، تمام دگمه های دیگر رو امتحان کردم ، حتی 9 تا کنترل مختلف رو با حوصله تمام دگمه هاشون رو تست کردم. حتی به یک عددشون هم عکس العمل نشون نداد!!!
                                ولی وقتی به اون دگمه مربوطه برگشتم ، عین ماه ، خروجی رو برام toggle کرد. به هر تعداد که اون دگمه رو میزنم ، همه رو با نظم اجرا میکنه. اون هم به طور قطعععع. یادتون میاد سر برنامه قبلیتون چقد بهم سرکوفت زدید که "باتریهای کنترلت خالی نباشند! دگمه رو زیاد نگه ندار" . . .
                                ولی با این برنامه ، حالا میدونم وقتی اون کلید رو بزنم ، خروجی بطور قطعععع معکوس خواهد شد. (مفهوم قطعععع رو که یادتون هست!)
                                حتی با دوتا کنترلی که از یک پروتکل استفاده میکردند تست کردم. با اینکه پروتکل دوتاشون هم یکی بود ولی بخاطر متفاوت بودن کدشون ، دچار اشتباه نشد!!!
                                جالبه بگم این دوتا کنترل با دستگاههای خودشون که کار میکنند ، بعضی دگمه هاشون در هم تداخل پیدا میکنه و تو دستگاه دیگه یه کارهایی میکنه ولی همون دگمه ها تو برنامه شما از هم تمیز داده میشوند و دچار اشتباه نمیشه!!! و این یعنی برنامه شما یه شاهکاره!!!
                                و نکات دیگری که ، بخاطر حوصله دیگر دوستان دیگه ادامه نمیدم. وگرنه برای قلم فرسایی بیشتر ، جا داشت.

                                من خوره اینجور پروژه هام. و مخصوصا توی تست ، تقریبا هیچ نکته ای نادیده گرفته نمیشه!
                                پروژه از نظر من تمام هست. فقط دوتا نکته کوچولوی جانبی که در صورت تمایل خودتون مطرح خواهم کرد.
                                در این پست ، بخاطر ادای احترام به مهارت و سواد برنامه نویسی شما ، از هیچ شکلکی استفاده نکردم.
                                اگه به صفحه اول تاپیک مراجه کنید ، اونوقت میبینید این پروژه چقدر برام عزیزه و از چند سال پیش برام عقده شده بوده!!
                                در پایان به این تواضع و فداکاریتون درود میفرستم ، چرا که با علم به اینکه توی این پروژه نفع مادی برای کسی نیست ، ولی باز هم از وقت آزاد و استراحت خودتون مایه گذاشتید.

                                دیدگاه

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