اطلاعیه

Collapse
No announcement yet.

تشخیص سیگنال اعمالی به IRED توسط avr

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

    تشخیص سیگنال اعمالی به IRED توسط avr

    سلام خدمت تمامی دوستان
    می خوام دستگاهی درست کنم که توسط یک گیرنده ired بیاد و یک سیگنال مثلا سیگنال دکمه پاور روی کنترل تلوزیون را بگیره و ذخیره کنه.
    بعد تحت شرایطی اون سیگنال را توسط یک فرسنتده مادون قرمز به دستگاه مربوطه بفرسته.
    اولین اینه که فرکانس و شکل موج سیگنال های کنترل های وسایلی مثل تلوزیون و ... چطوری هست؟
    دوم اینکه به طور مثال ایا تفاوت سیگنال کلید "1" و کلید "2" در کنترل تلوزیون در فرکانس است یا چیزه دگ ای؟
    سوم این که برای تشخیص فرکانس در avr باید از وقفه خارجی استفاده کنم یا ورودی تایمرها؟ در صورتی که جواب ورودی تایمر هست اگه امکانش هست یک نمونه کد قرار بدید (خیلی سرچ کردم ولی چیزی پیدا نکردم)
    چهارم اینکه مدار اتصال ired به میکرو + طریقه بایاس کردنشون چطوری هست؟ (من با هر روشی تست کردم مودولاسیون تشکیل میده)
    ممنون میشم راهنمایی کنید.

    #2
    پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

    دوست عزیز من قبلا این مدار رو ساختم

    فرکانس حدود 38 کیلوهرتز هست اما اگه کمتر یا بیشتر بدی مشکلی پیش نمیاد
    من اون موقع ها امتحان که میکردم میدیدم حتی اگه 35 کیلو هرتز هم بدی مشکلی نداره ولی شما رو 38 کیلو هرتز حساب کن
    تفاوت سیگنال کلید 1 و 2 در مدت زمان 1 بودن یا 0 بودن بعضی از سطح های منطقی در رشته ارسالی هست
    برای تشخیص فرکانس باید از وقفه خارجی استفاده کنید یکی در حالت لبه بالارونده و یکی لبه پایین رونده
    من برنامه این پروژه رو که قبلا نوشتم دهنم سرویس شد
    البته برنامه ای که من نوشتم خیلی پیچیده بود ( برای خودم میگم ) و حدود 1055 خط کد شد . . .
    برای اتصال گیرنده مادون قرمز سه پایه که در هر گیرنده مادون قرمزی به کار رفته ( مثل ریسیورها و تلوزیون و . . . )
    یک پایه میره به زمین یه پایه به 5 ولت یه پایه هم خروجی هستش که در حالت عادی پول آپ هست
    خروجی گیرنده سه پایه رو باید مستقیم به وقفه های خارجی میکرو وصل کنی . . .
    این یه مدل گیرنده مادون قرمز سه پایه هستش که بهت گفتم
    خرید اینترنتی سنسور گیرنده مادون قرمز TSOP1138 به صورت خرده و عمده و قیمت انواع فرستنده و گیرنده مادون قرمز در فروشگاه آنلاین الکترونیک و رباتیک روبوایکیو

    البته کیفیت محصولات eca بهتر هستش


    موفق و موید باشید
    آرزوی سرافرازی برای ایران عزیز . . .


    دیدگاه


      #3
      پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

      نوشته اصلی توسط rezamajdi نمایش پست ها
      دوست عزیز من قبلا این مدار رو ساختم

      فرکانس حدود 38 کیلوهرتز هست اما اگه کمتر یا بیشتر بدی مشکلی پیش نمیاد
      من اون موقع ها امتحان که میکردم میدیدم حتی اگه 35 کیلو هرتز هم بدی مشکلی نداره ولی شما رو 38 کیلو هرتز حساب کن
      تفاوت سیگنال کلید 1 و 2 در مدت زمان 1 بودن یا 0 بودن بعضی از سطح های منطقی در رشته ارسالی هست
      برای تشخیص فرکانس باید از وقفه خارجی استفاده کنید یکی در حالت لبه بالارونده و یکی لبه پایین رونده
      من برنامه این پروژه رو که قبلا نوشتم دهنم سرویس شد
      البته برنامه ای که من نوشتم خیلی پیچیده بود ( برای خودم میگم ) و حدود 1055 خط کد شد . . .
      برای اتصال گیرنده مادون قرمز سه پایه که در هر گیرنده مادون قرمزی به کار رفته ( مثل ریسیورها و تلوزیون و . . . )
      یک پایه میره به زمین یه پایه به 5 ولت یه پایه هم خروجی هستش که در حالت عادی پول آپ هست
      خروجی گیرنده سه پایه رو باید مستقیم به وقفه های خارجی میکرو وصل کنی . . .
      این یه مدل گیرنده مادون قرمز سه پایه هستش که بهت گفتم
      خرید اینترنتی سنسور گیرنده مادون قرمز TSOP1138 به صورت خرده و عمده و قیمت انواع فرستنده و گیرنده مادون قرمز در فروشگاه آنلاین الکترونیک و رباتیک روبوایکیو

      البته کیفیت محصولات eca بهتر هستش


      موفق و موید باشید


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

      دیدگاه


        #4
        پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

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

        شروع :

        همین که امواج از فرستنده به گیرنده سه پایه رسید خروجیش 0 میشه
        بنابراین وقفه 1 اجرا میشه ( بعد از چند سیکل کلاک )
        تو این وقفه باید
        1_تایمر رو غیر فعال کنی
        2_ مقدار فعلی تایمر رو تو یه عنصر از آرایه بریزی
        3_مقدار اولیه تایمر رو 0 کنی
        4_تایمر رو فعال کنی
        بعد همین طور زمان میگزره تا این که سیگنال قطع میشه
        و خروجی فتو دیود 1 میشه
        بنابر این وقفه شماره 0 ( بعد از چند سیکل کلاک ) اجرا میشه
        حالا تو این وقفه
        1_تایمر رو غیر فعال کن
        مقدار تایمر نشون دهنده مدت زمان 1 بودن سیگنال هست
        توجه کنید این 1 بودن در مورد فرستنده هست
        2_حالا این مقدار تایمر رو میریزی تو یه عنصر از یه آرایه
        3_و بعد دوباره تایمر رو 0 میکنی
        4_و بعدش فعالش میکنی تا بشماره . . .

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

        برو به شروع

        دوباره روز از نو روزی از نو
        همون آش و کاسه و پاتیل و . . . قاشق چنگال و . . .
        جدیدترین ویرایش توسط rezamajdi; ۲۰:۵۳ ۱۳۹۵/۰۷/۱۹.
        آرزوی سرافرازی برای ایران عزیز . . .


        دیدگاه


          #5
          پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

          بازم ممنون!
          بازم یه سوال داشتم!
          میخوام با فلگ GIFR سریز وقفه را تشخص بدم!
          مثلا توی بحت تایمر ها برای تامیر صفر از کد while(!(TIFR&0X02)) استفاده میکنم.
          حالا برای وقفه خارجی صفر باید چی بنویسم؟
          نیاز به تنظیم GIMSK هست؟
          اگه محاسبه ای هم داره لطفا توضیح بدید

          دیدگاه


            #6
            پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

            شما از چه نرم افزاری برای کدنویسی استفاده میکنید ؟؟
            کد:
            [FONT=Yekan]interrupt [EXT_INT0] void ext_int0_isr(void)[/FONT]{
            TCCR1B=0x00;
            intarr[i++]=((TCNT1+3)/2);
            TCNT1=0x0000;
            TCCR1B=0x02;
            }
            
            
            interrupt [EXT_INT1] void ext_int1_isr(void)
            {
            TCCR1B=0x00;
            intarr[i++]=((TCNT1+3)/2);
            TCNT1=0x0000;
            TCCR1B=0x02;
            [FONT=Yekan]}[/FONT]
            در مورد تایمر هم باید یه وقفه براش تنظیم کنی ( مثل وقفه خارجی 0 و 1 ) نه این که بیای تو حلقه while مدام چک کنی که فلگ 1 هست یانه

            اگه میخواید من برنامه رو بهتون بدم همینطور pcb رو که مونتاژ کنید
            آرزوی سرافرازی برای ایران عزیز . . .


            دیدگاه


              #7
              پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

              نوشته اصلی توسط rezamajdi نمایش پست ها
              شما از چه نرم افزاری برای کدنویسی استفاده میکنید ؟؟
              کد:
              [FONT=Yekan]interrupt [EXT_INT0] void ext_int0_isr(void)[/FONT]{
              TCCR1B=0x00;
              intarr[i++]=((TCNT1+3)/2);
              TCNT1=0x0000;
              TCCR1B=0x02;
              }
              
              
              interrupt [EXT_INT1] void ext_int1_isr(void)
              {
              TCCR1B=0x00;
              intarr[i++]=((TCNT1+3)/2);
              TCNT1=0x0000;
              TCCR1B=0x02;
              [FONT=Yekan]}[/FONT]
              در مورد تایمر هم باید یه وقفه براش تنظیم کنی ( مثل وقفه خارجی 0 و 1 ) نه این که بیای تو حلقه while مدام چک کنی که فلگ 1 هست یانه

              اگه میخواید من برنامه رو بهتون بدم همینطور pcb رو که مونتاژ کنید
              ممنون از پاسختون.
              من از کدویژن استفاده میکنم.
              در مورد کدی که دادید چرا (TCNT1+3)/2 میشه؟ 2 و 3 از کجا میان؟ به محاسبات تایم وابسته هست یا این مقادیر استاتیک هستند.
              در مورد فلگ GIFR هم الزاما نمیخواستم توی این برنامه ازش استفاده کنم! در کل اگه یک بیت از یک فلگ یا ریجستر را بخواییم تشخیص بدیم که یک هست یا نه باید چیکار کنیم؟
              در مورد تایمر هم باید یه وقفه براش تنظیم کنی ( مثل وقفه خارجی 0 و 1 ) نه این که بیای تو حلقه while مدام چک کنی که فلگ 1 هست یانه : میدونم ولی بعضی موقع ها به فلگ نیاز دارم

              دیدگاه


                #8
                پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                سلام به شما

                اون 3 برای کیل کردن و تنظیم کردن هستش که میتونی نزاریش مشکلی پیش نمیاد
                اون 2 هم مربوط به کارای تایمر میشه که فکر کنم با تقسیم به 2 بر حسب میکروثانیه بدست میاد و بعد داخل آرایه ریخته میشه

                برای فلگ :
                مثلا میخوای بیت اول ( اندیس 0 ) از رجیستر GIFR رو بررسی کنی اگه 1 بود بعدش دیگه هر کاری بخوای میتونی انجام بدی
                در حلقه زیر اگه بیت اول 1 بود مدام تو حلقه میمونه
                کد:
                while ((GIFR & ([SIZE=2]1[/SIZE]<<INTF0))==[SIZE=4][COLOR=#ff0000]1[/COLOR][/SIZE]);
                جدیدترین ویرایش توسط rezamajdi; ۱۴:۲۶ ۱۳۹۵/۰۷/۲۰.
                آرزوی سرافرازی برای ایران عزیز . . .


                دیدگاه


                  #9
                  پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                  واقعا تشکر!
                  یادم رفت بگم اگه زحمتی نیست میشه فایل و pcb پروژه خودتون را قرار بدید

                  دلیل: ادغام دو پست برای جلوگیری از اسپم

                  نوشته اصلی توسط rezamajdi نمایش پست ها
                  سلام به شما

                  اون 3 برای کیل کردن و تنظیم کردن هستش که میتونی نزاریش مشکلی پیش نمیاد
                  اون 2 هم مربوط به کارای تایمر میشه که فکر کنم با تقسیم به 2 بر حسب میکروثانیه بدست میاد و بعد داخل آرایه ریخته میشه

                  برای فلگ :
                  مثلا میخوای بیت اول ( اندیس 0 ) از رجیستر GIFR رو بررسی کنی اگه 1 بود بعدش دیگه هر کاری بخوای میتونی انجام بدی
                  در حلقه زیر اگه بیت اول 1 بود مدام تو حلقه میمونه
                  کد:
                  while ((GIFR & ([SIZE=2]1[/SIZE]<<INTF0))==[SIZE=4][COLOR=#ff0000]1[/COLOR][/SIZE]);
                  کد while((GIFR&(1<<INTF0))==1) را تست کردم ولی وارد حلقه نمیشه ، فکر کنم مشکل از رجیستر ها باشه.
                  الان وقفه 0 و 1 روشنه
                  کد:
                  GICR=0xc0;
                  MCUCR=0x0B;//0B
                  GIMSK=0xc0;
                  GIFR=0xc0;

                  دیدگاه


                    #10
                    پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                    این فایل pcb :


                    این کد برنامه :

                    اینم چند تا عکس :

                    از میکرو مگا 8
                    آی سی 555
                    فوتودیود pc3388
                    استفاده شده






                    تو این عکس سه تا مقاومت smd پکیج 805 و یه ترانزیستور smd نوع npn هست
                    میتونی pcb رو تغییر بدی که برای ترانزیستورهای معمولی مناسب بشه
                    فرستنده ای که من گذاشتم از نوع توان بالا هستش فکر کنم ماکزیمم جریان پیوستش 100 میلی آمپر باشه برای همین من مقاومت 47 اهم باهاش سری کردم
                    اما اگه از فرستنده های معمولی خواستی استفاده کنی جریانش رو رعایت کن

                    جدیدترین ویرایش توسط rezamajdi; ۱۴:۰۷ ۱۳۹۵/۰۷/۲۱.
                    آرزوی سرافرازی برای ایران عزیز . . .


                    دیدگاه


                      #11
                      پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                      خیلی عالیه!
                      واتقعا ازتون ممنونم!
                      فقط این دقیقا همون کاری که من می خواستم را انجام میداد؟

                      دیدگاه


                        #12
                        پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                        دوست عزیز این مدار هر سیگنال مربع شکل رو که بهش بدی مدت زمان و شماره ی تمام سطح های منطقی 0 و 1 رو ثبت میکنه و نمایش میده رو lcd
                        و حتی میتونه دقیقا همون رو تولید کنه
                        تنظیماتش مفصل هست
                        واقعا مفصل هست
                        اگه بسازیش من یه آموزش خوب برای کار کردن با این دستگاه برات میزارم
                        آرزوی سرافرازی برای ایران عزیز . . .


                        دیدگاه


                          #13
                          پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                          نوشته اصلی توسط rezamajdi نمایش پست ها
                          دوست عزیز این مدار هر سیگنال مربع شکل رو که بهش بدی مدت زمان و شماره ی تمام سطح های منطقی 0 و 1 رو ثبت میکنه و نمایش میده رو lcd
                          و حتی میتونه دقیقا همون رو تولید کنه
                          تنظیماتش مفصل هست
                          واقعا مفصل هست
                          اگه بسازیش من یه آموزش خوب برای کار کردن با این دستگاه برات میزارم
                          اگه این جور که میگد باشه حتما میسازمش.
                          فقط pcb را با چه نرم افزاری طراحی کردید؟ التیوم که نیست! پروتیوس هم بازش نکرد

                          دیدگاه


                            #14
                            پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

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

                            نباید مشکلی پیش بیاد
                            یه بار دیگه بررسی کن نشد بهم بگو
                            جدیدترین ویرایش توسط rezamajdi; ۰۰:۳۱ ۱۳۹۵/۰۷/۲۲.
                            آرزوی سرافرازی برای ایران عزیز . . .


                            دیدگاه


                              #15
                              پاسخ : تشخیص سیگنال اعمالی به IRED توسط avr

                              نوشته اصلی توسط rezamajdi نمایش پست ها
                              من با پروتیوس 8.1 طراحیش کردم
                              فایل ها رو دان کردم و با پروتیوس اجرا کردم
                              هیچ مشکلی نداره

                              نباید مشکلی پیش بیاد
                              یه بار دیگه بررسی کن نشد بهم بگو
                              من از پروتیوس ورژن 7 استفاده میکردم.
                              درست شد الان!
                              ممنون

                              دیدگاه

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