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

   

حسين البغدادي
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2013
الدولة: Baghdad
المشاركات: 61
نشاط [ حسين البغدادي ]
قوة السمعة:
قديم 27-03-2014, 05:51 PM المشاركة 89   
افتراضي



بالنسبه لبعض الاشخاص المستخدمين هذا النوع من ال RF

http://rayshobby.net/wordpress/wp-co...pair_front.jpg


عندما نضع 5 فولت بالارسال فان الاستلام لايعطي 5 فولت وانما يعطي فولتيه مابين 1.5 الى 2.5 فولت
وهذه الفولتيه يعتبرها المايكروكنترول مجهوله فتكون قيمتها اما 1 او 0

لهذا السبب عند الضغط ع زر معين يضئ لد اخر (ليس المقابل للزر المضغوط )
او يضئ عده لدات

لحل هذه المشكله ممكن عمل درايفر للاوتبوت وذلك بربط ترانزستر وجعله يعطي 5 فولت و 0 فولت

http://www.circuitstoday.com/wp-cont...r-NOT-Gate.jpg

ولكن هنا سوف تنقلب الاشاره اي ال 1 يصبح 0 وال 0 يصبح 1

لكن تستطيع ان تسترجع الاشاره الاصليه نفسها وذلك بربط مرحله اخرى من هذا ال inverter

اعلانات

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 28-03-2014, 02:35 AM المشاركة 90   
افتراضي


بالنسبه لبعض الاشخاص المستخدمين هذا النوع من ال RF

http://rayshobby.net/wordpress/wp-co...pair_front.jpg


عندما نضع 5 فولت بالارسال فان الاستلام لايعطي 5 فولت وانما يعطي فولتيه مابين 1.5 الى 2.5 فولت
وهذه الفولتيه يعتبرها المايكروكنترول مجهوله فتكون قيمتها اما 1 او 0

لهذا السبب عند الضغط ع زر معين يضئ لد اخر (ليس المقابل للزر المضغوط )
او يضئ عده لدات

لحل هذه المشكله ممكن عمل درايفر للاوتبوت وذلك بربط ترانزستر وجعله يعطي 5 فولت و 0 فولت

http://www.circuitstoday.com/wp-cont...r-NOT-Gate.jpg

ولكن هنا سوف تنقلب الاشاره اي ال 1 يصبح 0 وال 0 يصبح 1

لكن تستطيع ان تسترجع الاشاره الاصليه نفسها وذلك بربط مرحله اخرى من هذا ال inverter
ماشاء الله عمل طيب جزاء الله اجرا
يمكن ان يستعمل الترانستور واحد

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

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 30-08-2014, 11:34 AM المشاركة 91   
sun


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

السلام عليكم ورحمه الله وبركاته

كل سنة وانتم طييبين وجميع الامه الاسلامية

بمناسبة شهر رمضان الكريم اقدم هذا المجهود البسيط

اولا
ما هو ال RF Module ؟؟

هو دائرة مصنعه جاهزة يستخدم فيها انظمة مختلفة فى نقل البيانات
وتعمل من خلال موجات الراديو التى تخترق الحواجز
وهى تعمل على ارسال 0 او 1 اى ديجيتال
ويوجد منة انواع ترسل بقدرات مختلفة منها ما يرسل 20 كيلوا بت فى الثانية
ومنها ما يرسل 250 كيلوا بت فى الثانية واكثر من ذلك
ويصل مداه فى انواعه المنتشرة الى 1500 متر فى الهواء بدون حواجز
و 100 متر داخل الحواجز ((هذا بالطبع على حسب الحواجز))
وتوجد انواع اخر بقدرات اخرى .
__________________________________________________ __

ثانيا
ما هى انواع ال RF Module ؟؟
_________________________________________
ملحوظة:
كل الانواع تستخدم نفس المبادىء ما عدا شىء واحد
وهو كيفية نقل البيانات وباى نظام سوف تنقل ..
_________________________________________

يوجد اكثر من نظام للنقل ولكنى سوف اذكر 4 انظمة فقط وهى الاشهر استخداما

1 - OOK ..
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...BA%D9%84%D9%82

2 - ASK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B3%D8%B9%D8%A9

3 - PSK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B7%D9%88%D8%B1

4 - FSK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B1%D8%AF%D8%AF

__________________________________________________ _____________
ثالثا
سوف اتحدث عن مزايا وعيوب نظامين فقط باختصار

النظام الاول وهو
FSK -1
مميزاته هى
انه لا يتاثر بالضوضاء ولا تشتت موجاتة ولا تتعدد المسارات ولا التدخلات ..
_____
عيوبة
دوائرة معقدة شيأ ما فى تصنيعها.
________
هو الافضل فى الاستخدام مع المشاريع الهامة التى تتطلب دقة نسبة ما فى الارسال والاستقبال ويمكنة التعامل مع الميكرو من خلال uart او manchester code
او اى طريقة تريدها .
____________________________________
النظام الثانى هو
2- ASK
مميزاتة هى
انه اقل تعقيدا فى التصنيع .

_____
عيوبة
يتاثر جدا بالضوضاء و تشتت موجاتة ويتعدد مساراتها و يحدث له تدخلات ..
_____________
للاسف هو النوع المنتشر والذى جن بعضنا بسب انه لا يعمل
والذى سوف استخدمة لكى نسطيع كلنا العمل علية بدون قلق ولا مشاكل
ان شاء الله

وهذا الفديو يوضح مدى الضوضاء به ويثبت فعلا انه سىء

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

فى هذا الفديو اوضح ما اكتشفتة بة
وهو انة عند توصيل طرف المرسل بالارضى او ترك الطرف بدون توصيلة بشىء

وجدت ان المستقبل فى هذه الحالة دائما يخرج 0و1 بسرعه طوال الوقت بدون توقف

اما اذا وصلت على طرف المرسل 5 فولت فانه يثبت ولا يخرج اى شىء ويبقى طبيعى

ولهذا سوف تجد اننى عندما اوصل طرف المرسل ب5 فولت ان الليد ينطفاء
وعندما ازيل ال 5 فولت ينور الليد وهذا طبعا بسبب الضوضاء ورداءة هذا النوع

ولهذا هو لا يمكن ان يعمل على uart او manchester code
وله طريقة خاصة فى التعامل او اننا نزيل هذه الضوضاء من خلال مكثف
((كل محولاتى فشلت بوضع مكثف))
__________________________________________________ _____________
رابعا
ندخل فى التجربة على طول وازاى نقدر نتعامل معاه ونشرح كود الارسال والاستقبال ان شاء الله

هذا هو فديو التجربة على الواقع

RF Module Remote - YouTube
لم استخدم كريستالة ولا وصلت 5 فولت على الطرف mclr
لان هذا النوع من الميكرو به كريستال داخلى ويمكن الغاء هذا الطرف منة
_____________
وهذا هو رابط النوع الذى استخدمتة
http://ram-e-shop.com/oscmax/catalog...oducts_id=1133

وهذا هو رابط الدائرة والكود وكل شىء
http://www.4shared.com/rar/AME3vEVn/RF_Remote.html?

وهذه صورة الدائرة

__________________________________________________ __________

((((((((شرح المرسل))))))))

هذا هو كود المرسل

كود:
char x=0;
void main() {
CMCON=0x07;TRISa=255;trisb=0;portb=4;
while(1){
if (PORTA.f0==0){
for(x=0;x<5;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f1==0){
for(x=0;x<6;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f2==0){
for(x=0;x<7;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f3==0){
for(x=0;x<8;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

 }
}
__________________________________________________ ____________
ملحوظة
سوف استخدم الرجل B2 كا خرج لارسال البيانات.
_______________________________________
فى البداية عرفت متغير اسمة x
ويعد ذلك قمت بالتعريفات
اولا
غلق الكومبراتور ثم جعل البروت A دخل والبورت B خرج
وبعد ذلك جعلت الرجل رقم B2 اى الطرف رقم 8 فى الميكرو
تخرج 5 فولت وهذا للقضاء على الوضوضاء كما وضحت .

ثم الدخول فى حلقة تكرارية الى الابد

ثم عمل شفرة بسيطة جدا
وهى ببساطة عند الضغط على الزر
نقوم بعمل غلق و فتح للطرف B2 او الطرف رقم 8 فى الميكرو بعدد معين
فا الزر الاول يفعل ذلك 5 مرات
والزر الثانى 6 مرات
والزر الثالث 7 مرات
والزر الرابع 8 مرات

بكل بساطة هذا هو كود الارسال
_______

وكما وضحت يجب ان يكون خرج المرسل على 5 فولت فى الوضع الطبيعى لتجنب عيوب النظام
ولهذا فانا فى الاول اقوم بجعل الرجل بصفر وهذا يجعل المستقبل يخرج 5 فولت
وانتظر 600 ميكرو ثانية وبعد ذلك اقوم باخراج 5 فولت مرة اخرى على طرف المرسل
وهذا يجعل المستقبل يخرج 0 فولت
اى ان الامر معكوس

الصفر فى المرسل يعنى 5 فولت فى المستقبل
و5 فولت فى المرسل يعنى 0 فى المستقبل

وبعد ذلك انتظر 250 مللى ثانية حتى ترفع يدك من على الزر

انتهى ........
__________________________________________________ _____________
__________________________________________________ _____________
__________________________________________________ _____________

(((((((((شرح المستقبل)))))))))

هذا هو كود المستقبل

كود:
 void interrupt()
{
     intcon.f2=0;
     TMR0=0;
}
void main() {

    TRISA=255;TRISB=0;PORTB=0;PORTA=0;cmcon=7;

    option_reg=40;intcon=160;TMR0 = 0;

    while(1){
     while(TMR0==0){}
     delay_ms(20);
            switch (TMR0){
                case 8: Portb.F3 = ~Portb.F3;TMR0=0;break;
                case 7: Portb.F2 = ~Portb.F2;TMR0=0;break;
                case 6: Portb.F1 = ~Portb.F1;TMR0=0;break;
                case 5: Portb.F0 = ~Portb.F0;TMR0=0;break;
                default:TMR0=0;break;
        }
    }
    while(1);
}
قمت باستخدام الانتربت والتايمر 0 فى كود الاستقبال

سوف ابدء من الداله الرئيسية void main

فى البداية
جعلت البورت A دخل والبورت B خرج وقفلت الكومبرتور

ثم فعلت التايمر 0 وجعلتة يعمل كعداد للنبضات الخارجية وهى على الطرف A4
ويبدء العد عندما يتغير الجهد على طرفة من 0 الى 5فولت
وجعلت معامل القسمة 1:1 اى ان كل نبضة موجبة على الطرف A4 تعنى 1 فى التايمر 0 نبضة اخرى ويصبح 2 وهكذا
وهذا من خلال option_reg
وبعد ذلك فعلت المقاطعات حتى يعمل التايمر 0 من خلال intcon
وبعد ذلك جعلت قيمة التايمر زيرو تساوى 0 من خلال TMR0 = 0

وبعد ذلك قمت بعمل حلقة تكرارية الى الابد

ثم جعلت الميكرو لا يفعل شىء طلاما التايمر 0 يساوى صفر
وهذا يعنى انه طلاما لم يرسل المرسل اى شىء لا تفعل شىء وانتظر
حتى يرسل لك نبضات
وهذا من خلال
كود:
   while(TMR0==0){}
ولكن اذا اتت نبضة وهذا يعنى ان المرسل بدء بالارسال فسوف يعد التايمر 0
هذه النبضات اذا كانت 5 نبضات او 6 او 7 او 8 اى كما فى المرسل
وقيمة التايمر 0 تساوى نفس العدد الذى استقبلة

ولكن ترى هنا انى وضعت فترة انتظار 20 مللى ثانية يا ترى لماذا ؟؟؟

هذا الانتظار هو اهم ما فى الكود تقريبا
نحن نعلم ان التايمر 0 او الانتربت يعملان بدون التاثير على عمل الميكرو
اى انهم لا يرتبطان بالميكرو بل يعملان فى نفس الوقت الذى ينفذ فية الميكرو اوامر اخرى
ولكن ما المشكلة فى هذا الامر ؟؟؟؟

المشكلة ببساطة انه عند قدوم النبضة من المرسل سوف يعد التايمر 0
وفى نفس الوقت سوف يختبر الشروط الموضوعه وهكذا سوف يعمل
الشرط الاقل دائما وفى حالتنا هنا 5 لماذا لاننا لم ننتظر حتى تنتهى النبضات وينتهى التايمر0 من العد

ولهذا وضعت انتظار عند قدوم النبضات حتى يعد التايمر 0 النبضات كاملة وبعد ذلك يبدء فى اختبار اذا كانت القيمة تساوى كذا افعل كذا

ولكن هل هذا الانتظار قيمتة عشوائية ؟؟؟؟

بالطبع لا
فهو يجب ان يكون اكبر من قيمة الانتظار فى اعلى نبضات المرسل
بمعنى
اعلى قيمة فى كود المرسل هى التكرار 8 مرات
ولكن يوجد فترة انتظار 600 ميكرو ثانية مرتين اى 1200 ميكرو ثانية
واذا ضربت 8 * 1200 = 9600 ميكرو ثانية اى 9.6 مللى ثانية
فقمت بوضع 20 مللى ثانية زيادة فى الامان والحرص ههههههههههه

وبعد ذلك يختبر الميكرو الشروط وينفذ الاوامر
وفى اخر كل شرط قمت بوضع ان TMR0=0 التايمر 0 يساوى صفر
حتى يعد من جديد عند قدوم نبضة جديدة ولا يحدث اى خطا

وفى نهاية الاختبارات هذا الامر
كود:
default:TMR0=0;break;
اى اذا كانت قيمة التايمر 0 لا تساوى اى من هذه الشرط
اجعل قيمتة ب 0 وعد من اول البرنامج .....

انتهى .......

اما عن داله الانتربت التى فى الاعلى فوضعتها فقط مجرد منظر
اى انى استخدم المقاطعه يعنى
ولكن لا فائدة منها فى هذا الكود فقط
لماذا لان الميكرو لا يذهب اليها الا عندما يعد التايمر 256 عدة
وهذا لا يحدث فى هذا الكود فاخر العدات هى 8 فقط
ولهذا لا قيمة لها فى هذا الكود
__________________________________________________ _____________
ملحوظة اخيرة
انت تسطيع ان ترسل كلام وحروف وقيم وكل شىء بهذه الطؤيقة السهله
فاببساطة مثلا اذا اردنا ارسال الحرف A
وتم تشفيرة بانا سوف نكرر الفتح والغلق 5مرات
اذا تقول فى شروط الاستقبال اذا كانت النبضات 5 اجعل قيمة المتغير كذا تساوى A
وهكذا

انتهى ....................


السلام عليكم و رحمة الله
اخي funky انا من المتابعين الجيدين لمنشوراتك و مشاريعك و من المعجبين جدا بد و بفضل الله ثم فضلك قمت بتنفيذ عدة مشاريع في مواضيعك التي طرحت ..منها مشروع الاشعه تحت الحمراء ( المرسل و المستقبل ) و بمساعدة بعض الاخوه المعطائين في هذا المنتدى مثل الاخ حسن هادي جزاه الله خيرا
اخي بالنسبه لهذا الموضوع (ار اف)قمت بشراء وحدة ( ارسال و استقبال) و قمت بتنفيذ برنامجك عمليا كما طرحته حضرتك ..ولكن للاسف لم يعمل معي مثلما هو موجود بالفيديو اللي نزلته ..حيث ان الليدات في المستقبل تقوم بحركات غريبه مش قادر افهمها!!فمثلا مره تضيئ على التوالي و مره تضيئ فلاشر و مره احدى كبسات الارسال تستجيب على عدة ليدات في وقت واحد ...( و يمكن ان يكون هذا الشيئ سواء تم تشغيل المرسل او لا ( حتى عند اطفاء المرسل تبقى الليدات تقوم بهذه الحركات . و هذا يدل على ان المشكله انحصرت مبدئيا في المستقبل .. اخي حاولت بكل الطرق ..بوضع مكثف على مصدرالتغذيه او مقاومه او ..... بدون نتيجه ..ارجو اخي ان تعمل على متابعة هذا الموضوع و اصلاحه سواء هارد وير او سوفت وير ..لا اعلم المشكله .. و لكن انا طبقته مثل ما حضرتك عامل ...الرجاء المتابعه .. فأنا انتظر ردك على احر من الجمر .....الى اللقاء


محمد55555
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2013
المشاركات: 80
نشاط [ محمد55555 ]
قوة السمعة:
قديم 29-11-2014, 02:30 PM المشاركة 92   
افتراضي


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

السلام عليكم ورحمه الله وبركاته

كل سنة وانتم طييبين وجميع الامه الاسلامية

بمناسبة شهر رمضان الكريم اقدم هذا المجهود البسيط

اولا
ما هو ال RF Module ؟؟

هو دائرة مصنعه جاهزة يستخدم فيها انظمة مختلفة فى نقل البيانات
وتعمل من خلال موجات الراديو التى تخترق الحواجز
وهى تعمل على ارسال 0 او 1 اى ديجيتال
ويوجد منة انواع ترسل بقدرات مختلفة منها ما يرسل 20 كيلوا بت فى الثانية
ومنها ما يرسل 250 كيلوا بت فى الثانية واكثر من ذلك
ويصل مداه فى انواعه المنتشرة الى 1500 متر فى الهواء بدون حواجز
و 100 متر داخل الحواجز ((هذا بالطبع على حسب الحواجز))
وتوجد انواع اخر بقدرات اخرى .
__________________________________________________ __

ثانيا
ما هى انواع ال RF Module ؟؟
_________________________________________
ملحوظة:
كل الانواع تستخدم نفس المبادىء ما عدا شىء واحد
وهو كيفية نقل البيانات وباى نظام سوف تنقل ..
_________________________________________

يوجد اكثر من نظام للنقل ولكنى سوف اذكر 4 انظمة فقط وهى الاشهر استخداما

1 - OOK ..
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...BA%D9%84%D9%82

2 - ASK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B3%D8%B9%D8%A9

3 - PSK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B7%D9%88%D8%B1

4 - FSK
وهذا رابط لمن يريد التعرف علية
http://ar.wikipedia.org/wiki/%D8%AA%...B1%D8%AF%D8%AF

__________________________________________________ _____________
ثالثا
سوف اتحدث عن مزايا وعيوب نظامين فقط باختصار

النظام الاول وهو
FSK -1
مميزاته هى
انه لا يتاثر بالضوضاء ولا تشتت موجاتة ولا تتعدد المسارات ولا التدخلات ..
_____
عيوبة
دوائرة معقدة شيأ ما فى تصنيعها.
________
هو الافضل فى الاستخدام مع المشاريع الهامة التى تتطلب دقة نسبة ما فى الارسال والاستقبال ويمكنة التعامل مع الميكرو من خلال uart او manchester code
او اى طريقة تريدها .
____________________________________
النظام الثانى هو
2- ASK
مميزاتة هى
انه اقل تعقيدا فى التصنيع .

_____
عيوبة
يتاثر جدا بالضوضاء و تشتت موجاتة ويتعدد مساراتها و يحدث له تدخلات ..
_____________
للاسف هو النوع المنتشر والذى جن بعضنا بسب انه لا يعمل
والذى سوف استخدمة لكى نسطيع كلنا العمل علية بدون قلق ولا مشاكل
ان شاء الله

وهذا الفديو يوضح مدى الضوضاء به ويثبت فعلا انه سىء

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

فى هذا الفديو اوضح ما اكتشفتة بة
وهو انة عند توصيل طرف المرسل بالارضى او ترك الطرف بدون توصيلة بشىء

وجدت ان المستقبل فى هذه الحالة دائما يخرج 0و1 بسرعه طوال الوقت بدون توقف

اما اذا وصلت على طرف المرسل 5 فولت فانه يثبت ولا يخرج اى شىء ويبقى طبيعى

ولهذا سوف تجد اننى عندما اوصل طرف المرسل ب5 فولت ان الليد ينطفاء
وعندما ازيل ال 5 فولت ينور الليد وهذا طبعا بسبب الضوضاء ورداءة هذا النوع

ولهذا هو لا يمكن ان يعمل على uart او manchester code
وله طريقة خاصة فى التعامل او اننا نزيل هذه الضوضاء من خلال مكثف
((كل محولاتى فشلت بوضع مكثف))
__________________________________________________ _____________
رابعا
ندخل فى التجربة على طول وازاى نقدر نتعامل معاه ونشرح كود الارسال والاستقبال ان شاء الله

هذا هو فديو التجربة على الواقع

RF Module Remote - YouTube
لم استخدم كريستالة ولا وصلت 5 فولت على الطرف mclr
لان هذا النوع من الميكرو به كريستال داخلى ويمكن الغاء هذا الطرف منة
_____________
وهذا هو رابط النوع الذى استخدمتة
http://ram-e-shop.com/oscmax/catalog...oducts_id=1133

وهذا هو رابط الدائرة والكود وكل شىء
http://www.4shared.com/rar/AME3vEVn/RF_Remote.html?

وهذه صورة الدائرة

__________________________________________________ __________

((((((((شرح المرسل))))))))

هذا هو كود المرسل

كود:
char x=0;
void main() {
CMCON=0x07;TRISa=255;trisb=0;portb=4;
while(1){
if (PORTA.f0==0){
for(x=0;x<5;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f1==0){
for(x=0;x<6;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f2==0){
for(x=0;x<7;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

if (PORTA.f3==0){
for(x=0;x<8;x++){portb.f2=0;delay_us(600);portb.f2=1;delay_us(600);}
delay_ms(250);}

 }
}
__________________________________________________ ____________
ملحوظة
سوف استخدم الرجل B2 كا خرج لارسال البيانات.
_______________________________________
فى البداية عرفت متغير اسمة x
ويعد ذلك قمت بالتعريفات
اولا
غلق الكومبراتور ثم جعل البروت A دخل والبورت B خرج
وبعد ذلك جعلت الرجل رقم B2 اى الطرف رقم 8 فى الميكرو
تخرج 5 فولت وهذا للقضاء على الوضوضاء كما وضحت .

ثم الدخول فى حلقة تكرارية الى الابد

ثم عمل شفرة بسيطة جدا
وهى ببساطة عند الضغط على الزر
نقوم بعمل غلق و فتح للطرف B2 او الطرف رقم 8 فى الميكرو بعدد معين
فا الزر الاول يفعل ذلك 5 مرات
والزر الثانى 6 مرات
والزر الثالث 7 مرات
والزر الرابع 8 مرات

بكل بساطة هذا هو كود الارسال
_______

وكما وضحت يجب ان يكون خرج المرسل على 5 فولت فى الوضع الطبيعى لتجنب عيوب النظام
ولهذا فانا فى الاول اقوم بجعل الرجل بصفر وهذا يجعل المستقبل يخرج 5 فولت
وانتظر 600 ميكرو ثانية وبعد ذلك اقوم باخراج 5 فولت مرة اخرى على طرف المرسل
وهذا يجعل المستقبل يخرج 0 فولت
اى ان الامر معكوس

الصفر فى المرسل يعنى 5 فولت فى المستقبل
و5 فولت فى المرسل يعنى 0 فى المستقبل

وبعد ذلك انتظر 250 مللى ثانية حتى ترفع يدك من على الزر

انتهى ........
__________________________________________________ _____________
__________________________________________________ _____________
__________________________________________________ _____________

(((((((((شرح المستقبل)))))))))

هذا هو كود المستقبل

كود:
 void interrupt()
{
     intcon.f2=0;
     TMR0=0;
}
void main() {

    TRISA=255;TRISB=0;PORTB=0;PORTA=0;cmcon=7;

    option_reg=40;intcon=160;TMR0 = 0;

    while(1){
     while(TMR0==0){}
     delay_ms(20);
            switch (TMR0){
                case 8: Portb.F3 = ~Portb.F3;TMR0=0;break;
                case 7: Portb.F2 = ~Portb.F2;TMR0=0;break;
                case 6: Portb.F1 = ~Portb.F1;TMR0=0;break;
                case 5: Portb.F0 = ~Portb.F0;TMR0=0;break;
                default:TMR0=0;break;
        }
    }
    while(1);
}
قمت باستخدام الانتربت والتايمر 0 فى كود الاستقبال

سوف ابدء من الداله الرئيسية void main

فى البداية
جعلت البورت A دخل والبورت B خرج وقفلت الكومبرتور

ثم فعلت التايمر 0 وجعلتة يعمل كعداد للنبضات الخارجية وهى على الطرف A4
ويبدء العد عندما يتغير الجهد على طرفة من 0 الى 5فولت
وجعلت معامل القسمة 1:1 اى ان كل نبضة موجبة على الطرف A4 تعنى 1 فى التايمر 0 نبضة اخرى ويصبح 2 وهكذا
وهذا من خلال option_reg
وبعد ذلك فعلت المقاطعات حتى يعمل التايمر 0 من خلال intcon
وبعد ذلك جعلت قيمة التايمر زيرو تساوى 0 من خلال TMR0 = 0

وبعد ذلك قمت بعمل حلقة تكرارية الى الابد

ثم جعلت الميكرو لا يفعل شىء طلاما التايمر 0 يساوى صفر
وهذا يعنى انه طلاما لم يرسل المرسل اى شىء لا تفعل شىء وانتظر
حتى يرسل لك نبضات
وهذا من خلال
كود:
   while(TMR0==0){}
ولكن اذا اتت نبضة وهذا يعنى ان المرسل بدء بالارسال فسوف يعد التايمر 0
هذه النبضات اذا كانت 5 نبضات او 6 او 7 او 8 اى كما فى المرسل
وقيمة التايمر 0 تساوى نفس العدد الذى استقبلة

ولكن ترى هنا انى وضعت فترة انتظار 20 مللى ثانية يا ترى لماذا ؟؟؟

هذا الانتظار هو اهم ما فى الكود تقريبا
نحن نعلم ان التايمر 0 او الانتربت يعملان بدون التاثير على عمل الميكرو
اى انهم لا يرتبطان بالميكرو بل يعملان فى نفس الوقت الذى ينفذ فية الميكرو اوامر اخرى
ولكن ما المشكلة فى هذا الامر ؟؟؟؟

المشكلة ببساطة انه عند قدوم النبضة من المرسل سوف يعد التايمر 0
وفى نفس الوقت سوف يختبر الشروط الموضوعه وهكذا سوف يعمل
الشرط الاقل دائما وفى حالتنا هنا 5 لماذا لاننا لم ننتظر حتى تنتهى النبضات وينتهى التايمر0 من العد

ولهذا وضعت انتظار عند قدوم النبضات حتى يعد التايمر 0 النبضات كاملة وبعد ذلك يبدء فى اختبار اذا كانت القيمة تساوى كذا افعل كذا

ولكن هل هذا الانتظار قيمتة عشوائية ؟؟؟؟

بالطبع لا
فهو يجب ان يكون اكبر من قيمة الانتظار فى اعلى نبضات المرسل
بمعنى
اعلى قيمة فى كود المرسل هى التكرار 8 مرات
ولكن يوجد فترة انتظار 600 ميكرو ثانية مرتين اى 1200 ميكرو ثانية
واذا ضربت 8 * 1200 = 9600 ميكرو ثانية اى 9.6 مللى ثانية
فقمت بوضع 20 مللى ثانية زيادة فى الامان والحرص ههههههههههه

وبعد ذلك يختبر الميكرو الشروط وينفذ الاوامر
وفى اخر كل شرط قمت بوضع ان TMR0=0 التايمر 0 يساوى صفر
حتى يعد من جديد عند قدوم نبضة جديدة ولا يحدث اى خطا

وفى نهاية الاختبارات هذا الامر
كود:
default:TMR0=0;break;
اى اذا كانت قيمة التايمر 0 لا تساوى اى من هذه الشرط
اجعل قيمتة ب 0 وعد من اول البرنامج .....

انتهى .......

اما عن داله الانتربت التى فى الاعلى فوضعتها فقط مجرد منظر
اى انى استخدم المقاطعه يعنى
ولكن لا فائدة منها فى هذا الكود فقط
لماذا لان الميكرو لا يذهب اليها الا عندما يعد التايمر 256 عدة
وهذا لا يحدث فى هذا الكود فاخر العدات هى 8 فقط
ولهذا لا قيمة لها فى هذا الكود
__________________________________________________ _____________
ملحوظة اخيرة
انت تسطيع ان ترسل كلام وحروف وقيم وكل شىء بهذه الطؤيقة السهله
فاببساطة مثلا اذا اردنا ارسال الحرف A
وتم تشفيرة بانا سوف نكرر الفتح والغلق 5مرات
اذا تقول فى شروط الاستقبال اذا كانت النبضات 5 اجعل قيمة المتغير كذا تساوى A
وهكذا

انتهى ....................


اخي الكريم جزاك اللة خيرا ولكن الرابط لايعمل .فلوسمحت هل يمكن تحميل ملفات المشروع علي رابط اخر وشكرا


الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:
قديم 01-12-2014, 11:53 AM المشاركة 93   
افتراضي


السلام عليكم
اخي م. عبدالله
https://www.mediafire.com/?vxx0p12kwxjole9
اليك هذا البرنامج وفق ماطلبت (( البرنامج قابل للتعديل )) ببساطه عند ضغط على سويج رقم 1 يضيئ ليد رقم 1 وعند ضغط على نفس سويج مره اخرى سوف ينطفئ ليد رقم 1

برنامج كتب باستخدام مانشيستركود
اخ حسن ممكت شرح الكود و لكم اجمل تحية


shadiqrc
:: مهندس ::
تاريخ التسجيل: Mar 2016
المشاركات: 3
نشاط [ shadiqrc ]
قوة السمعة:
قديم 10-05-2016, 09:46 PM المشاركة 94   
ha rf 433mhz


ادامك الله بالصحة والعافية ممكن مساعدتي بخصوص ريسيفر والريموت



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