قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

merzouk_rdz
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2014
الدولة: Algeria
المشاركات: 56
نشاط [ merzouk_rdz ]
قوة السمعة:0
قديم 06-09-2015, 08:47 AM المشاركة 1   
افتراضي استفسار عن protocol IR SONY Twitter FaceBook Google+



السلام على الجميع
صادفتني مشكلة حاولت الفهم عدة أيام لم افلح
استعمات برنامج protocol analyzer تحصلت على الشكل التالي:


حسب رأيي الإشارة ليست مقلوبة، ومن الفروض تكون كذلك
رغم ذلك جربت جهاز التحكم سوني sony باستعمال كود المستقبل التالي:

كود:
sbit ir_in at RA0_bit;                      // Infrared receiver input
sbit ir_in_direction at TRISA0_bit;         // Infrared receiver input
unsigned int retint;                        // general purpose integer
unsigned char ir_byte,COUNT,bouton;
unsigned char ir_result[3];
void interrupt()
{
     count++;
     intcon=0b00100000;
     TMR0=0;
}
unsigned int get_mark(){
      TMR0= 0; count=0;
      for(;!ir_in;){}
      retint=2*(TMR0+(count*256));
      return retint;
}

unsigned int get_space(){
      TMR0= 0; count=0;
      for(;ir_in;){}
      retint=2*(TMR0+(count*256));
      return retint;
}
unsigned char get_sony_byte(char nbits){
char n;
unsigned char ir_byte;
unsigned int temp_ir;

    ir_byte = 0;                                  // initialise
    for(n=0 ; n<nbits ; n++){
        temp_ir = get_space();                    // expect ~510uS
        temp_ir = get_mark();
          ir_byte >>= 1;                   // 650uS = 0, 1.2uS = 1
        if ((temp_ir > 1000)&&(temp_ir < 1300)) {
            ir_byte += 0x80;
        }
    }
    ir_byte >>= 8-nbits;
    return ir_byte;
}
void sony_read(){
unsigned int temp_ir;

    ir_result[0] = 0;                            // return 0, 0 if glitch
    ir_result[1] = 0;                            // return 0, 0 if glitch
    while(ir_in);                                // wait for IR to go low
    temp_ir = get_mark();
    if((temp_ir>2000)&&(temp_ir<3000)) {     // expect 2.4mS mark
        ir_result[0] = get_sony_byte(7);          // 7 bit command
        ir_result[1] = get_sony_byte(5);         // 5 bit address
        Delay_ms(10);                           // wait for repeat messages to clear

    }
}
void main() {
    TRISA=0x0F;
    TRISB=0;
    PORTB=0;
    PORTA=0;
    option_reg=0b10000000;
    intcon=0b10100000;
    TMR0 = 0;
    while(1){
        sony_read();
        if(ir_result[1]==1){                 // Sony address 01 is TV
            bouton = ir_result[0];
            bouton=PORTB;
            }
        }

    while(1);              // loop forever
لاحظت ان هناك تجاوب جيد بين المستقبل و المرسل
المشكلة:
-عند غياب الاشارة، المستقبل يعطي 5فولط
-حسب الشرح الذي قدمه الأخ: funky112233 كان المستقبل يعطي اشارة مقلوبة.
- بما أن الاشارة التي تحصلت عليها غير مقلوبة، اذن ماهو دور الأمر:
كود:
while(ir_in);
- كذلك ماهو دور الأمر: PORTA=0; بما أن المستقبل يخرج 5فولط عند غياب الاشارة
وشكرا جزيلا للجميع

اعلانات

الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:80
قديم 06-09-2015, 05:02 PM المشاركة 2   
افتراضي



1- أين شكل الاشارة المتحصل عليها؟؟
2- أعتقد أن البرنامج IR Protocol Analyzer يقوم بعكس الاشارة عند رسمها. يعني أن عملية العكس تتم مرتين: في البداية بواسطة المستقبل و في النهاية بواسطة البرنامج و بالتالي تظهر لنا الاشارة غير معكوسة.
3- كما قال صاحب الموضوع فعلا الاشارة الخارجة من مستقبل IR هي معكوسة . أي أن الخرج يساوي 5 فو عند غياب الاشارة.

للمزيد من المعلومات حول بروتوكولات IR اليكم هذه الصفحة الراااائعة:

http://www.sbprojects.com/projects/ircontrol/index.php

أتمنى لكم الاستفادة.



لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
--------------------------------------------------------------------------------------
مـــــواضـــيعــي: (أنقـــر على العنوان لتصفح الموضوع)


- حصـــــري :هيا نصنع سكانر سيارة OBD-II .

- حصري: هيا نصنع دارة تحكم في الدش بواسطة الريسيفر باستعمال أوامر الدايزك DiSEqC.

- أصنع محلل اشارات رقميةLOGIC ANALYZER .

- مبرمجة بسيطة جدا لعائلة AVR على البورت COM أو USB .


-حصـــري : هل تعــــرف الـبوت-كيكر BUTTKICKER ؟؟

- هل تعرف التسخين بالتحريض المغنطيسي induction heating ؟

- مبرمجة البيك داخل الدارة PIC ICSP Programmer

- دارة تحكم استطاعة بـ 5 ريليات أو أكثر لمشاريعك


- كيفية استعمال تحويل فورييه السريع FFT لايجاد طيف اشارة.

-هيا نصنع دارة محول صوت مونو الى "شبه ستيريو"Mono to Pseudo STEREO.

- كيف تستعمل شاشة تلفون نوكيا 3310 أو 3410؟

- ما رأيكم في مشروع يناء حاسوب موافق للـ IBM PC 5150 ؟؟

- مبرمجة الـــ PIC داخل الدارة In Circuit.

- وصل بطاقة SD أو MMC بالـــ ATMEGA8.

- مبرمجة لعائلة الــ AVR سهلة جدا جدا جدا !!!

- دارة بسيطة جدا لعرض نص على شاشة التلفزيون.

- مبرمجات PIC بسيطة جدا.

- أشعل شمعة الكترونية، استرخي تحت وقع زخات المطرثم نم نوما هادئا!!!

- مبرمجـــة الــ ATMEL AVRs عن طريق الــ USB .

- أضف شاشة عرض LCD الى مشاريعك.

- ما رأيكم في مشروع دايزك DISEQC ؟؟

- هل تعرف LTSPICE IV ؟ برنامج محاكاة احترافي قوي و مجاني.

- تعالوا نتعرف على الصوت المحيطي SURROUND SOUND .

- مجموعة من الحيل "العفسات" للمحترفين و الهواة.

- مدخل لاستخدام البورت USB. أستعد لنهاية البورتات LPT و RS232.

- كيف تصنع جهاز استقبال راديو بترانزستور واحد؟؟


التعديل الأخير تم بواسطة : DELTA67 بتاريخ 06-09-2015 الساعة 05:09 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

merzouk_rdz
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2014
الدولة: Algeria
المشاركات: 56
نشاط [ merzouk_rdz ]
قوة السمعة:0
قديم 06-09-2015, 11:21 PM المشاركة 3   
افتراضي



1- أين شكل الاشارة المتحصل عليها؟؟
2- أعتقد أن البرنامج IR Protocol Analyzer يقوم بعكس الاشارة عند رسمها. يعني أن عملية العكس تتم مرتين: في البداية بواسطة المستقبل و في النهاية بواسطة البرنامج و بالتالي تظهر لنا الاشارة غير معكوسة.
3- كما قال صاحب الموضوع فعلا الاشارة الخارجة من مستقبل IR هي معكوسة . أي أن الخرج يساوي 5 فو عند غياب الاشارة.

للمزيد من المعلومات حول بروتوكولات IR اليكم هذه الصفحة الراااائعة:

http://www.sbprojects.com/projects/ircontrol/index.php

أتمنى لكم الاستفادة.



لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
--------------------------------------------------------------------------------------
مـــــواضـــيعــي: (أنقـــر على العنوان لتصفح الموضوع)


- حصـــــري :هيا نصنع سكانر سيارة OBD-II .

- حصري: هيا نصنع دارة تحكم في الدش بواسطة الريسيفر باستعمال أوامر الدايزك DiSEqC.

- أصنع محلل اشارات رقميةLOGIC ANALYZER .

- مبرمجة بسيطة جدا لعائلة AVR على البورت COM أو USB .


-حصـــري : هل تعــــرف الـبوت-كيكر BUTTKICKER ؟؟

- هل تعرف التسخين بالتحريض المغنطيسي induction heating ؟

- مبرمجة البيك داخل الدارة PIC ICSP Programmer

- دارة تحكم استطاعة بـ 5 ريليات أو أكثر لمشاريعك


- كيفية استعمال تحويل فورييه السريع FFT لايجاد طيف اشارة.

-هيا نصنع دارة محول صوت مونو الى "شبه ستيريو"Mono to Pseudo STEREO.

- كيف تستعمل شاشة تلفون نوكيا 3310 أو 3410؟

- ما رأيكم في مشروع يناء حاسوب موافق للـ IBM PC 5150 ؟؟

- مبرمجة الـــ PIC داخل الدارة In Circuit.

- وصل بطاقة SD أو MMC بالـــ ATMEGA8.

- مبرمجة لعائلة الــ AVR سهلة جدا جدا جدا !!!

- دارة بسيطة جدا لعرض نص على شاشة التلفزيون.

- مبرمجات PIC بسيطة جدا.

- أشعل شمعة الكترونية، استرخي تحت وقع زخات المطرثم نم نوما هادئا!!!

- مبرمجـــة الــ ATMEL AVRs عن طريق الــ USB .

- أضف شاشة عرض LCD الى مشاريعك.

- ما رأيكم في مشروع دايزك DISEQC ؟؟

- هل تعرف LTSPICE IV ؟ برنامج محاكاة احترافي قوي و مجاني.

- تعالوا نتعرف على الصوت المحيطي SURROUND SOUND .

- مجموعة من الحيل "العفسات" للمحترفين و الهواة.

- مدخل لاستخدام البورت USB. أستعد لنهاية البورتات LPT و RS232.

- كيف تصنع جهاز استقبال راديو بترانزستور واحد؟؟
شكرا لك الأخ DELTA67 على اجابتك


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:93
قديم 09-09-2015, 07:30 AM المشاركة 4   
افتراضي


بشمهندس merzouk_rdz

اولا عند غياب الاشارة يخرج المستقبل 5 فولت
ومعنى غياب الاشارة اى توقف الاشارة تماما او ان هناك ارسال وهو الفاصل بين الاشارات
لان الاشارة كما تعلم هى عبارة عن Plus لوقت معين
ثم فاصل لمدة معينة ايضا والفاصل هنا يعنى توقف الاشارة ايضا
ويترجم المستقبل هذه الاشارت بالمقلوب اى ان اذا كان الريموت يخرج Plus اى اشارة
سيخرج المستقبل على طرفة 0 فولت
واذا توقف الريموت عن الارسال سواء كان فاصل فقط بين الاشارات او ان الاشارة انتهت فسيخرج المستقبل 5 فولت على طرفة

لذلك اذا كانت تحدث معك اى مشاكل فى الاستقبال فراجع عدد ال Bits المستقبلة من الريموت جيدا

وانا لا افهم ماذا تقصد باشارة مقلوبة او غيرة

اما عن الامر

كود:
while(ir_in);
فهو يعنى انة طلاما ان الاشارة True اى 5 فولت لا تتحرك من هنا وهى مساوية للامر

كود:
while(ir_in == 1);
وهو ما يعنى توقف الميكرو عن تنفيذ اى شئ حتى تاتى اشارة اى تغير الفولتية الى 0 فولت على طرف المستقبل وهو ما يعنى وجود اشارة ويبدء الميكرو بعدها بتنفيذ الاوامر

اما عن دور الامر

كود:
PORTA=0;
فهو يقوم بتثبيت حالة البورت A الى 0 حتى لا يكون خرجة بشكل عشوائى
وهو لا علاقة لة بالمستقبل تماما
لان الطرف الخاص بالمستقبل فى الكود وهو RA0_bit تم جعلة يعمل كا دخل لذلك لان يتاثر بهذا الامر من الاساس

بالتوفيق ان شاء الله واى استفسار تفضل بطرحة


merzouk_rdz
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2014
الدولة: Algeria
المشاركات: 56
نشاط [ merzouk_rdz ]
قوة السمعة:0
قديم 09-09-2015, 04:15 PM المشاركة 5   
افتراضي مشكلتي مع IR protocol analyzer


بشمهندس merzouk_rdz

اولا عند غياب الاشارة يخرج المستقبل 5 فولت
ومعنى غياب الاشارة اى توقف الاشارة تماما او ان هناك ارسال وهو الفاصل بين الاشارات
لان الاشارة كما تعلم هى عبارة عن Plus لوقت معين
ثم فاصل لمدة معينة ايضا والفاصل هنا يعنى توقف الاشارة ايضا
ويترجم المستقبل هذه الاشارت بالمقلوب اى ان اذا كان الريموت يخرج Plus اى اشارة
سيخرج المستقبل على طرفة 0 فولت
واذا توقف الريموت عن الارسال سواء كان فاصل فقط بين الاشارات او ان الاشارة انتهت فسيخرج المستقبل 5 فولت على طرفة

لذلك اذا كانت تحدث معك اى مشاكل فى الاستقبال فراجع عدد ال Bits المستقبلة من الريموت جيدا

شكرا لك الأخ funky غلى اجابتك
ولكن مشكلتي مع الرنامج IR protocol analyzer ، الاشارة التي يرسمها ليست
معكوسة، كما هي ممثلة في الصورة التالية:



وانا لا افهم ماذا تقصد باشارة مقلوبة او غيرة

اما عن الامر

كود:
while(ir_in);
فهو يعنى انة طلاما ان الاشارة True اى 5 فولت لا تتحرك من هنا وهى مساوية للامر

كود:
while(ir_in == 1);
وهو ما يعنى توقف الميكرو عن تنفيذ اى شئ حتى تاتى اشارة اى تغير الفولتية الى 0 فولت على طرف المستقبل وهو ما يعنى وجود اشارة ويبدء الميكرو بعدها بتنفيذ الاوامر

اما عن دور الامر

كود:
PORTA=0;
فهو يقوم بتثبيت حالة البورت A الى 0 حتى لا يكون خرجة بشكل عشوائى
وهو لا علاقة لة بالمستقبل تماما
لان الطرف الخاص بالمستقبل فى الكود وهو RA0_bit تم جعلة يعمل كا دخل لذلك لان يتاثر بهذا الامر من الاساس

بالتوفيق ان شاء الله واى استفسار تفضل بطرحة
شكرا لك الأخ funky على اجابتك
ولكن مشكلتي مع IR protocol analyzer، بحيث أن الاشارة الخارجة من المستقبل مرسومة و هي غير معكوسة، كما هي ممثلة في الصورة التالية:

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:32 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025