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

   

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 636
نشاط [ المظلوم ]
قوة السمعة:
قديم 03-08-2012, 02:47 AM المشاركة 9   
افتراضي



السلام عليكم ،،

شفرات ريموت تلفزيون سامسونج " Samsung TV "

1- صورة المنتج :

http://www.remote-control-shop.eu/en...f971dc2ce5.jpg

2- هذا الريموت يستخدم للتحكم في تلفزيون من نوع samsung ، وهو تلفزيون LCD حجمه 42 بوصة ! كما يتحكم في أكثر انواع التلفزيونات السامسونج

3- بلد المنشأ : كوريا

4- عدد أزراره : 47 زر

5- نوع البروتوكول : samsung protcol

6-
أ- يتم التعبير عن Bit 0 بنبضة عرضها 0.56 ملي ثانية ومساحة مساوية للنبضة أيضا بــ 0.56 ملي ثانية .

ب- يتم التعبير عن Bit 1 بنبضة عرضها 0.56 ملي ثانية ولكن المساحة تساوي حوالي 1.7 ملي ثانية


7- نبضة البداية تساوي 4.5 ملي ثانية يتم بعدها مساحة بنفس الطول و هي 4.5 ملي ثانية

8- هذا البروتوكول مكون من 33 بت ، مقسة إلى بت واحد ، ومن ثم 4 اجزاء كل جزء على 8 بت كالتالي :

أ- اول بت لنبضة البداية ، وهي كما ذكرنا تفاصيلها في النقطة السابقة .

ب- البايت الأول ( 8 بت ) هي للعنوان address الخاص بالجهاز وفي هذه الحالة يكون العنوان يساوي 11100000 .

ج- البايت الثاني وهو مكرر للعنوان أي نفسه 11100000.

د- البايت الثالث يبدأ الكوماند command حيث كمثال على زر من الأزرار وهو زر OK يكون الكوماند يساوي = 00010110

هـ - البايت الأخير يكون دائما معكوس الكوماند أي انه في المثال السابق الخاص بزر OK يكون البايت الأخير = 11101001 وهو عكس الكوماند في البايت الثالث 00010110.


9 - طبعا البرتوكول كما ذكرنا يقوم بإرسال الموجة الخاصة بالزر على شكل 33 بت ، بت للبداية و32 بت مقسمة كما ذكرنا ــ

كمثال للزر OK يتم ا
رسال هذا الــ sequence

111000-111000-00010110-11101001

وتكون من اليسار إلى اليمين ، عنوان الجهاز " وهو ثابت بما انه جهاز واحد وهو التلفاز ن ثم تكرار للعنوان ، ثم كوماند الزر - ثم معكوس الكوماند .


طبعا الأزار تجدونها في الصورة التالية ، بالهيكس وكل ما عليكم هو تحويله الى binary او الى decimal حسب الحاجة ، " وطبعا في الكود نحن نحوله إلى decimal

http://www7.0zz0.com/2012/08/02/23/425672309.png


طبعا كل ما عليك إلا ان تفتح برنامج mikrocpro وستجد فيه في الأسفل Quick converter كل ما عليك هو إن تضع الرقم المقابل للزر في خانة الــ hexadecimal ،، ومن ثم سترى الرقم قد تحول إلى باينري او عشري " decimal " ولكن تذكر ان عليك ان تقلب الرقم ،، وسأعطيك مثال حتى تتمكن من فهم الموضوع تماما :


الآن زر OK او زر Enter مثلا ،، لو فتحنا الصورة الخاصة بالأزرار " التي رابطها في الأعلى " ،، سنجد ان الرقم المقابل له هو الرقم 0x16E9 وطبعا Ox هي للدلالة على ان الرقم هيكس ومن ثم الاربع خانات التالية عي الرقم وهي 16E9 ، حسنا هنا علينا ان نأخذ اول خانتين على اليسار فقط ( لان الخانتين الثالثة والرابعة ما هي إلا معكوس الرقم الأول ) ،، اذا علينا ان نأخذ 16 فقط ، ونضعها في الآلة او برنامج Mikroc للتحويل ،، كالتالي :


http://www7.0zz0.com/2012/08/02/23/544979623.png

طبعا الرقم داخل الدائرة السوداء هو الرقم الذي نكتبه ،، واوتوماتيكيا سيتحول إلى باينري " وهو الرقم داخل الدائرة الحمراء " ،، حسنا الآن أصبح لدينا الرقم 00010110 وكل ما علينا هو ان نقلب الرقم وكأننا نقرأه بالعكس ،،،، بمعنى ان الرقم 00010110 سيتحول إلى 01101000 بمعنى ان نقوم بكتابته من اليمين إلى اليسار ،،

إلى هنا جميل جدا ،،

الآن كل ما عليك الآن هو أن تعود إلى البرنامج MiKroc وتضع فيه هذا الرقم الجديد وهو 01101000 في خانة الــ Binary " الدائرة السوداء " ومن ثم تقوم بقراءة خانة الdecimal اي الرقم داخل الدائرة الحمراء في الصورة التالية :


http://www7.0zz0.com/2012/08/02/23/505318494.png


ليصبح لدينا الرقم 104 وهذا الرقم هو من يرمز إلى الزر Ok في الكود ،، بمعنى انه عليك ان تعمل هذه العملية لكل الأزرار حتى تتمكن من استخدام جميع الأزرار في الريموت الواحد ،، وما عليك إلى ان تضيف هذه الأزرار في الكود بتاعك ،، في الأسفل في cases !



الكود الذي تفضل به الأستاذ محمد ( funky_112233) ،ومجرد اضفت عليه بعض الأزرار وهي الأزرار 1،2،3 ! بالأضافة إلى الزر OK كما يلي :

كود:
switch(bouton){
                case 104: Portb.F0 = ~Portb.F0;delay_ms(150);break; //Button OK.
                case 4: Portb.F1 = ~Portb.F1;delay_ms(150);break; //Button 1.
                case 5: Portb.F2 = ~Portb.F2;delay_ms(150);break; //Button 2.
                case 6: Portb.F3 = ~Portb.F3;delay_ms(150);break; //Button 3.
                default: break;
الكود الكامل تجدونه في الرابط التالي :

http://www.m5zn.com/d/?0fe3e2d5664b1cd




أتمنى أن يكون الشرح واضحا ،، وهنا فيديو لعمل الكود بالشكل الصحيح والسليم للأزرار المذكورة :

http://www.youtube.com/watch?v=siIzC...ature=youtu.be



تمنياتي

اعلانات

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 03-08-2012, 03:17 AM المشاركة 10   
افتراضي


بسم الله الرحمن الرحيم

اخى الكريم المظلوم
انت شرحت احسن منى بكثير ههههههههههه
انت طلعت محترف مشاء الله عليك

وجازاك الله كل خير على فكك لازرار الريموت لنا جميعا
وان شاء الله فى ميزان حسناتك

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

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 636
نشاط [ المظلوم ]
قوة السمعة:
قديم 03-08-2012, 03:41 AM المشاركة 11   
افتراضي


بسم الله الرحمن الرحيم

اخى الكريم المظلوم
انت شرحت احسن منى بكثير ههههههههههه
انت طلعت محترف مشاء الله عليك

وجازاك الله كل خير على فكك لازرار الريموت لنا جميعا
وان شاء الله فى ميزان حسناتك

وبالتوفيق مع مشاريع جديدة باذن الله
تقبل الله صيامك وقيامك
أخي ، ، ما عملنا إلا الواجب ،، ومن الأنانية ان استفيد من شيء وأبخل به على أخواني الذين ساعدوني ويساعدونني كثيرا في مشاريع متعددة ،، وبالنسبة للشرح ،، اقول لك لا تنسى ان شرحك هو اللي علمنا طريقة الحصول على كل هذه المعلومات ،، فالشكر لله ولك عزيزي


تقبل الله منا ومنكم صالح الأعمال ،،

تمنياتي


الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 636
نشاط [ المظلوم ]
قوة السمعة:
قديم 04-08-2012, 11:17 AM المشاركة 12   
افتراضي


السلام عليكم ،،

شفرات ريموت تلفزيون سامسونج " Samsung TV "

1- صورة المنتج :

http://www.remote-control-shop.eu/en...f971dc2ce5.jpg

2- هذا الريموت يستخدم للتحكم في تلفزيون من نوع samsung ، وهو تلفزيون LCD حجمه 42 بوصة ! كما يتحكم في أكثر انواع التلفزيونات السامسونج

3- بلد المنشأ : كوريا

4- عدد أزراره : 47 زر

5- نوع البروتوكول : samsung protcol

6-
أ- يتم التعبير عن Bit 0 بنبضة عرضها 0.56 ملي ثانية ومساحة مساوية للنبضة أيضا بــ 0.56 ملي ثانية .

ب- يتم التعبير عن Bit 1 بنبضة عرضها 0.56 ملي ثانية ولكن المساحة تساوي حوالي 1.7 ملي ثانية


7- نبضة البداية تساوي 4.5 ملي ثانية يتم بعدها مساحة بنفس الطول و هي 4.5 ملي ثانية

8- هذا البروتوكول مكون من 33 بت ، مقسة إلى بت واحد ، ومن ثم 4 اجزاء كل جزء على 8 بت كالتالي :

أ- اول بت لنبضة البداية ، وهي كما ذكرنا تفاصيلها في النقطة السابقة .

ب- البايت الأول ( 8 بت ) هي للعنوان address الخاص بالجهاز وفي هذه الحالة يكون العنوان يساوي 11100000 .

ج- البايت الثاني وهو مكرر للعنوان أي نفسه 11100000.

د- البايت الثالث يبدأ الكوماند command حيث كمثال على زر من الأزرار وهو زر OK يكون الكوماند يساوي = 00010110

هـ - البايت الأخير يكون دائما معكوس الكوماند أي انه في المثال السابق الخاص بزر OK يكون البايت الأخير = 11101001 وهو عكس الكوماند في البايت الثالث 00010110.


9 - طبعا البرتوكول كما ذكرنا يقوم بإرسال الموجة الخاصة بالزر على شكل 33 بت ، بت للبداية و32 بت مقسمة كما ذكرنا ــ

كمثال للزر OK يتم ا
رسال هذا الــ sequence

111000-111000-00010110-11101001

وتكون من اليسار إلى اليمين ، عنوان الجهاز " وهو ثابت بما انه جهاز واحد وهو التلفاز ن ثم تكرار للعنوان ، ثم كوماند الزر - ثم معكوس الكوماند .


طبعا الأزار تجدونها في الصورة التالية ، بالهيكس وكل ما عليكم هو تحويله الى binary او الى decimal حسب الحاجة ، " وطبعا في الكود نحن نحوله إلى decimal

http://www7.0zz0.com/2012/08/02/23/425672309.png


طبعا كل ما عليك إلا ان تفتح برنامج mikrocpro وستجد فيه في الأسفل Quick converter كل ما عليك هو إن تضع الرقم المقابل للزر في خانة الــ hexadecimal ،، ومن ثم سترى الرقم قد تحول إلى باينري او عشري " decimal " ولكن تذكر ان عليك ان تقلب الرقم ،، وسأعطيك مثال حتى تتمكن من فهم الموضوع تماما :


الآن زر OK او زر Enter مثلا ،، لو فتحنا الصورة الخاصة بالأزرار " التي رابطها في الأعلى " ،، سنجد ان الرقم المقابل له هو الرقم 0x16E9 وطبعا Ox هي للدلالة على ان الرقم هيكس ومن ثم الاربع خانات التالية عي الرقم وهي 16E9 ، حسنا هنا علينا ان نأخذ اول خانتين على اليسار فقط ( لان الخانتين الثالثة والرابعة ما هي إلا معكوس الرقم الأول ) ،، اذا علينا ان نأخذ 16 فقط ، ونضعها في الآلة او برنامج Mikroc للتحويل ،، كالتالي :


http://www7.0zz0.com/2012/08/02/23/544979623.png

طبعا الرقم داخل الدائرة السوداء هو الرقم الذي نكتبه ،، واوتوماتيكيا سيتحول إلى باينري " وهو الرقم داخل الدائرة الحمراء " ،، حسنا الآن أصبح لدينا الرقم 00010110 وكل ما علينا هو ان نقلب الرقم وكأننا نقرأه بالعكس ،،،، بمعنى ان الرقم 00010110 سيتحول إلى 01101000 بمعنى ان نقوم بكتابته من اليمين إلى اليسار ،،

إلى هنا جميل جدا ،،

الآن كل ما عليك الآن هو أن تعود إلى البرنامج MiKroc وتضع فيه هذا الرقم الجديد وهو 01101000 في خانة الــ Binary " الدائرة السوداء " ومن ثم تقوم بقراءة خانة الdecimal اي الرقم داخل الدائرة الحمراء في الصورة التالية :


http://www7.0zz0.com/2012/08/02/23/505318494.png


ليصبح لدينا الرقم 104 وهذا الرقم هو من يرمز إلى الزر Ok في الكود ،، بمعنى انه عليك ان تعمل هذه العملية لكل الأزرار حتى تتمكن من استخدام جميع الأزرار في الريموت الواحد ،، وما عليك إلى ان تضيف هذه الأزرار في الكود بتاعك ،، في الأسفل في cases !



الكود الذي تفضل به الأستاذ محمد ( funky_112233) ،ومجرد اضفت عليه بعض الأزرار وهي الأزرار 1،2،3 ! بالأضافة إلى الزر OK كما يلي :

كود:
switch(bouton){
                case 104: Portb.F0 = ~Portb.F0;delay_ms(150);break; //Button OK.
                case 4: Portb.F1 = ~Portb.F1;delay_ms(150);break; //Button 1.
                case 5: Portb.F2 = ~Portb.F2;delay_ms(150);break; //Button 2.
                case 6: Portb.F3 = ~Portb.F3;delay_ms(150);break; //Button 3.
                default: break;
الكود الكامل تجدونه في الرابط التالي :

http://www.m5zn.com/d/?0fe3e2d5664b1cd




أتمنى أن يكون الشرح واضحا ،، وهنا فيديو لعمل الكود بالشكل الصحيح والسليم للأزرار المذكورة :

http://www.youtube.com/watch?v=siIzC...ature=youtu.be



تمنياتي
نسنا امر واحد فقط ، والفضل لله ثم للأخ winsock الذي اكتشف النقص ،!

البروتوكول يرسل 34 بت وليس 33 ، وشرحها كما سبق ،، ولكن علينا اضافة بت اخير في النهاية هو الـstop bit وهو بت موجته طولها 560 ملي ثانية ، وثم مساحة بنفس الطول اي 560 ملي ثانية ايضا وكل ما عليك هو ان تضيف هذا البت الأخير لكل زر ! وحقيقة سيقوم البرتوكول بالعمل بدون هذ البت ، لكن اذا كنت تتعامل مع الجهاز الحقيقي الذي صنع الريموت ،، بمعنى انك لديك مرسل وحالت ان تستخدمه كريموت لتلفزيون او اي جهاز اخر ، فلن يعمل معك الا باضافة هذا البت الأخير ،،

ونكرر عدد الbits. في هذا البروتوكول يساوي 34 وليس 33 واعذروني على هذا الخطأ ، الغير مقد


الصورة الرمزية mohamedalikahli
mohamedalikahli
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2010
الدولة: مصر -- الاسكندرية
المشاركات: 153
نشاط [ mohamedalikahli ]
قوة السمعة:
قديم 08-08-2012, 10:40 PM المشاركة 13   
افتراضي


السلام عليكم و رحمة الله و بركاته ........
هذا ريموت تليفزيون توشيبا ....
Toshiba CT-90380 :الموديل
Nec protocolالبرونوكول المستخدم :
عدد الزرار : 42
هذا البروتوكول المستخدم 32 بت غير نبضة البداية ..
يتم ارسال نبضة بداية عرضها 9 ميللي ثانية ثم فاصل زمنه 4.5 ميللي ثانية .
ثم يتم ارسال الادريس بت و هو 16 بت اول 8 بت هم 00000010 و ال 8 بت الاخرين هو معكوسهم 11111101 .
و ال 16 بت المتبقية هم الكومند و يكون اول 8 بت من الكومند هم اللي بيعبروا عن الزرار المحدد و ال 8 بت الباقين يكون معكوس اول 8 بت للكومند ...
مثال : لوكان مثلا اول 8 بت للكومند هو 10000000 يكون ال8 بت الاخرين معكوسهم 01111111 فيكون كود الارسال كامل
00000010/11111101//10000000/01111111 .
بتم التعبير عن البت الواحد و الصفر عن طريق الفواصل......
بمعني ///...........
(1) .. يتم التعبير عن الواحد 1 بارسال نبضة عرضها 550 ميكرو ثانية ثم فاصل 1.650 ميكرو ثانية .
(2)... يتم التعبير عن الصفر 0 بارسال نبضة عرضها 550 ميكرو ثانية ثم فاصل 550 ميكروثانية .
الان اظن انكم فهمتوا الجملة اللي فاتت "بتم التعبير عن البت الواحد و الصفر عن طريق الفواصل" اي الذي يختلف عن ارسال ال 0 و ال 1 هي زمن الفواصل بين النبضات ..
و في نهاية كل بايت ارسال في نهاية الكود خالص يوجد نبضة نهاية زمنها 550 ميكرو ثانية .
__________________________________________________ ___________
كود الارسال: http://www.mediafire.com/?ds55b4u5dz4boh8
__________________________________________________ ____________
كود الاستقبال : http://www.mediafire.com/?n0crpjjex98q540
__________________________________________________ ____________
اكواد الريموت : http://www.mediafire.com/?hji2k3izfjyjuxx
__________________________________________________ _____________

صورة الريموت :http://www.mediafire.com/view/?mtje9m6ivopdza9#
__________________________________________________ _____________
و السلام عليكم و رحمة الله و بركاته.


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 09-08-2012, 01:55 AM المشاركة 14   
افتراضي


بسم الله الرحمن الرحيم

اخى mohamedalikahli

شكرا جزيلا لك على تعبك ومجهودك
وانا واخى المظلوم عارفين اد اية هو كبير
لاننا جربنا ههههههههه
جزاك الله كل خير

والله شىء رائع جدا انك تلاقى حد بيتعاون معاك
شكرا جزيلا لكم
وان شاء الله من نجاح لنجاح

تقبل الله صيامكم وقيامكم


الصورة الرمزية mohamedalikahli
mohamedalikahli
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2010
الدولة: مصر -- الاسكندرية
المشاركات: 153
نشاط [ mohamedalikahli ]
قوة السمعة:
قديم 09-08-2012, 01:13 PM المشاركة 15   
افتراضي


بسم الله الرحمن الرحيم

اخى mohamedalikahli

شكرا جزيلا لك على تعبك ومجهودك
وانا واخى المظلوم عارفين اد اية هو كبير
لاننا جربنا ههههههههه
جزاك الله كل خير

والله شىء رائع جدا انك تلاقى حد بيتعاون معاك
شكرا جزيلا لكم
وان شاء الله من نجاح لنجاح

تقبل الله صيامكم وقيامكم
تقبل منا و منكم ان شاء الله ......
و شكرا جزيلا اخي محمد علي المجهود الرائع ...و جزاك الله خيرا ... و في النهاية كلنا اخوة ....
و دا فيديو التجربة الخاصة بي مع الريموت ..
http://www.youtube.com/watch?v=-EFtq...ature=youtu.be
و السلام عليكم و رحمة الله و بركاته...


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 09-08-2012, 07:08 PM المشاركة 16   
افتراضي


بسم الله الرحمن الرحيم

اها هكذا اكتمل مشروعك الحمد لله
شكرا جزيلا لك
تقبل الله صيامك وقيامك



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