- المكونات مطلوبة
- البرمجيات المستخدمة
- 433 ميجا هرتز وحدة الإرسال والاستقبال RF
- مخطط الرسم البياني
- إنشاء مشروع Atmega 8 باستخدام CodeVision
- الكود والشرح
- قم بتحميل الكود إلى Atmega8
إن جعل مشاريعنا لاسلكية تجعلها تبدو رائعة دائمًا كما أنها توسع النطاق الذي يمكن التحكم فيه. بدءًا من استخدام IR LED العادي للتحكم اللاسلكي لمسافات قصيرة حتى ESP8266 للتحكم في HTTP في جميع أنحاء العالم ، هناك الكثير من الطرق للتحكم في شيء لاسلكيًا. في هذا المشروع نتعلم كيفية بناء مشاريع لاسلكية باستخدام وحدة RF 433 ميجا هرتز ومتحكم AVR.
في هذا المشروع نقوم بما يلي: -
- نستخدم Atmega8 لجهاز الإرسال اللاسلكي و Atmega8 لقسم مستقبل الترددات اللاسلكية.
- نقوم بتوصيل مصباح LED وزر ضغط مع ميكروكنترولر Atmega8.
- على جانب جهاز الإرسال ، نقوم بتوصيل زر الضغط مع Atmega وننقل البيانات. على جانب جهاز الاستقبال ، سوف نتلقى البيانات لاسلكيًا ونعرض الإخراج على LED.
- نحن نستخدم جهاز التشفير وفك التشفير IC لنقل بيانات 4 بت.
- تردد الاستقبال هو 433 ميجا هرتز باستخدام وحدة RF TX-RX الرخيصة المتوفرة في السوق.
المكونات مطلوبة
- متحكم Atmega8 AVR (2)
- مبرمج USBASP
- كابل FRC ذو 10 سنون
- لوح الخبز (2)
- المصابيح (2)
- زر ضغط (1)
- زوج HT12D و HT12E
- وحدة RX-TX RF
- المقاومات (10 ك ، 47 ك ، 1 م)
- أسلاك توصيل
- 5V امدادات الطاقة
البرمجيات المستخدمة
نحن نستخدم برنامج CodeVisionAVR لكتابة الكود الخاص بنا وبرنامج SinaProg لتحميل الكود الخاص بنا إلى Atmega8 باستخدام مبرمج USBASP.
يمكنك تنزيل هذه البرامج من الروابط المحددة:
CodeVisionAVR :
SinaProg:
قبل الخوض في المخططات والرموز ، دعنا نفهم عمل وحدة التردد اللاسلكي مع وحدات فك ترميز التشفير.
433 ميجا هرتز وحدة الإرسال والاستقبال RF
هذه هي وحدات الإرسال والاستقبال التي نستخدمها في المشروع. إنها أرخص وحدة متاحة لـ 433 ميجاهرتز. تقبل هذه الوحدات البيانات التسلسلية في قناة واحدة.
إذا نظرنا إلى مواصفات الوحدات، وتقييم الارسال ل 3.5-12V عملية كمدخل الجهد و المسافة الإرسال هو 20-200 متر. إنه يرسل في بروتوكول AM (تعديل الصوت) بتردد 433 ميجاهرتز. يمكننا نقل البيانات بسرعة 4 كيلوبايت / ثانية بقوة 10 ميجاوات.
في الصورة العلوية يمكننا أن نرى دبوس خارج وحدة الإرسال. من اليسار إلى اليمين ، تكون المسامير VCC و DATA و GND. يمكننا أيضًا إضافة الهوائي ولحامه على النقطة المشار إليها في الصورة أعلاه.
بالنسبة لمواصفات جهاز الاستقبال ، يتمتع جهاز الاستقبال بتصنيف 5V dc و 4MA Quiescent الحالي كمدخل. تردد الاستقبال هو 433.92 ميجا هرتز مع حساسية -105 ديسيبل.
في الصورة أعلاه ، يمكننا أن نرى دبوس خارج وحدة الاستقبال. الدبابيس الأربعة هي من اليسار إلى اليمين ، VCC ، DATA ، DATA و GND. هذان الطرفان الأوسطان متصلان داخليًا. يمكننا استخدام أي واحد أو كليهما. ولكن من الممارسات الجيدة استخدام كليهما لخفض اقتران الضوضاء.
أيضًا ، هناك شيء واحد غير مذكور في ورقة البيانات ، يتم استخدام المحرِّض المتغير أو POT في منتصف الوحدة لمعايرة التردد. إذا لم نتمكن من استقبال البيانات المرسلة ، فهناك احتمالات بعدم تطابق ترددات الإرسال والاستقبال. هذه دائرة RF ونحتاج إلى ضبط جهاز الإرسال عند نقطة التردد المثالية المرسلة. أيضًا ، مثل جهاز الإرسال ، تحتوي هذه الوحدة أيضًا على منفذ هوائي ؛ يمكننا لحام الأسلاك في شكل ملفوف لاستقبال أطول.
يعتمد نطاق الإرسال على الجهد المزود لجهاز الإرسال وطول الهوائيات في كلا الجانبين. بالنسبة لهذا المشروع المحدد ، لم نستخدم هوائيًا خارجيًا واستخدمنا 5 فولت في جانب المرسل. تحققنا من مسافة 5 أمتار وعملنا بشكل مثالي.
تعرف على المزيد حول زوج الترددات اللاسلكية في دائرة مرسل ومستقبل الترددات اللاسلكية. يمكنك فهم المزيد عن عمل الترددات اللاسلكية عن طريق التحقق من المشاريع التالية التي تستخدم زوج الترددات اللاسلكية:
- روبوت التحكم بالترددات اللاسلكية
- دائرة تحويل IR إلى RF
- RF المصابيح التي يتم التحكم فيها عن بعد باستخدام Raspberry Pi
- الأجهزة المنزلية التي تسيطر عليها الترددات اللاسلكية
مخطط الرسم البياني
مخطط الدائرة لجانب مرسل الترددات اللاسلكية
- دبوس D7 من atmega8 -> Pin13 HT12E
- دبوس D6 من atmega8 -> Pin12 HT12E
- دبوس D5 من atmega8 -> Pin11 HT12E
- دبوس D4 من atmega8 -> Pin10 HT12E
- زر الضغط لتثبيت B0 في Atmega.
- 1M-ohm المقاوم بين pin15 و 16 من HT12E.
- Pin17 من HT12E إلى دبوس البيانات لوحدة إرسال RF.
- دبوس 18 من HT12E إلى 5V.
- GND pin 1-9 و Pin 14 of HT12E و Pin 8 من Atmega.
مخطط الدائرة لجانب مستقبل الترددات اللاسلكية
- دبوس D7 من atmega8 -> Pin13 HT12D
- دبوس D6 من atmega8 -> Pin12 HT12D
- دبوس D5 من atmega8 -> Pin11 HT12D
- دبوس D4 من atmega8 -> Pin10 HT12d
- LED إلى Pin B0 من Atmega.
- Pin14 من HT12D إلى دبوس البيانات لوحدة مستقبل الترددات اللاسلكية.
- 47Kohm المقاوم بين pin15 و 16 من HT12D.
- GND pin 1-9 من HT12D و Pin 8 من Atmega.
- LED دبوس 17 من HT12D.
- 5V إلى دبوس 7 من Atmega و دبوس 18 من HT12D.
إنشاء مشروع Atmega 8 باستخدام CodeVision
بعد تثبيت هذه البرامج ، اتبع الخطوات التالية لإنشاء مشروع وكتابة كود:
الخطوة 1. افتح CodeVision انقر فوق ملف -> جديد -> مشروع . سيظهر مربع حوار التأكيد. انقر فوق نعم
الخطوة 2. سيفتح CodeWizard. انقر فوق الخيار الأول أي AT90 ، وانقر فوق موافق.
الخطوة الثالثة. اختر شريحة الميكروكونترولر الخاصة بك ، وهنا سنأخذ Atmega8 كما هو موضح.
الخطوة 4: - اضغط على Ports. في جزء جهاز الإرسال ، زر الضغط هو الإدخال لدينا ويتم إخراج 4 خطوط بيانات. لذلك ، يتعين علينا تهيئة 4 دبابيس من Atmega كإخراج. انقر فوق Port D. Make Bit 7 و 6 و 5 و 4 للخارج بالنقر فوقه.
الخطوة 5: - انقر فوق البرنامج -> إنشاء وحفظ وخروج . الآن ، اكتمل أكثر من نصف عملنا
الخطوة 6: - قم بإنشاء مجلد جديد على سطح المكتب ، بحيث تظل ملفاتنا في المجلد وإلا فسيتم تناثرها على نافذة سطح المكتب بالكامل. قم بتسمية المجلد الخاص بك كما تريد وأقترح استخدام نفس الاسم لحفظ ملفات البرنامج.
سيكون لدينا ثلاثة مربعات حوار واحدة تلو الأخرى لحفظ الملفات. افعل الشيء نفسه مع مربعي الحوار الآخرين اللذين سيظهران بعد حفظ الأول.
الآن ، مساحة العمل الخاصة بك تبدو هكذا.
اكتمل معظم عملنا بمساعدة المعالج. الآن ، علينا كتابة أسطر قليلة فقط من التعليمات البرمجية لجزء جهاز الإرسال والاستقبال وهذا كل شيء…
اتبع نفس الخطوات لإنشاء ملفات لجزء المستقبل. في جزء المتلقي ، فقط Led هو ناتجنا ، لذا اجعل المنفذ B0 خارجًا.
الكود والشرح
سنكتب رمزًا لتبديل LED لاسلكيًا باستخدام التردد اللاسلكي. يتم توفير رمز كامل لكل من Atmega في جانبي المرسل وجهاز الاستقبال في نهاية هذه المقالة.
كود Atmega8 لجهاز الإرسال اللاسلكي:
قم أولاً بتضمين ملف رأس delay.h لاستخدام التأخير في الكود الخاص بنا.
#تضمن
الآن ، تعال إلى السطور الأخيرة من التعليمات البرمجية حيث ستجد حلقة while . سيكون رمزنا الرئيسي في هذه الحلقة.
في حين حلقة، وسوف نرسل 0x10 بايت إلى PORTD عند الضغط على زر وسوف ترسل 0x20 عندما لا يتم الضغط على زر. يمكنك استخدام أي قيمة لإرسالها.
بينما (1) { if (PINB.0 == 1) { PORTD = 0x10 ؛ } إذا (PINB.0 == 0) { PORTD = 0x20 ؛ } } }
كود Atmega لجهاز استقبال الترددات اللاسلكية
قم أولاً بتعريف المتغيرات فوق الوظيفة الرئيسية الباطلة لتخزين الأحرف الواردة من وحدة التردد اللاسلكي.
#تضمن
تعال الآن إلى حلقة الوقت . في هذه الحلقة، وتخزين بايت الواردة إلى شار متغير بايت ومعرفة ما اذا كان بايت الوارد هو نفس نكتب في جزء الارسال لدينا. إذا كانت وحدات البايت متماثلة ، فاجعل PortB.0 مرتفعًا وخذ NOT من PORTB.0 لتبديل مؤشر LED.
بينما (1) { بايت = PIND ؛ إذا (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0؛ delay_ms (1000) ؛ }}}
بناء المشروع
اكتمل رمزنا. الآن ، علينا بناء مشروعنا . انقر فوق إنشاء رمز المشروع كما هو موضح.
بعد إنشاء المشروع ، يتم إنشاء ملف HEX في Debug-> مجلد Exe والذي يمكن العثور عليه في المجلد الذي قمت بإنشائه مسبقًا لحفظ مشروعك. سنستخدم ملف HEX هذا للتحميل في Atmega8 باستخدام برنامج Sinaprog.
قم بتحميل الكود إلى Atmega8
قم بتوصيل دوائرك وفقًا لمخطط معين لبرنامج Atmega8. قم بتوصيل جانب واحد من كابل FRC بمبرمج USBASP والجانب الآخر سوف يتصل بدبابيس SPI الخاصة بالمتحكم الدقيق كما هو موضح أدناه:
- Pin1 من موصل أنثى FRC -> Pin 17 ، MOSI لـ Atmega8
- دبوس 2 متصل بـ Vcc من atmega8 ie Pin 7
- دبوس 5 متصل بإعادة تعيين atmega8 ie Pin 1
- دبوس 7 متصل بـ SCK من atmega8 ie Pin 19
- دبوس 9 متصل بـ MISO من atmega8 ie Pin 18
- دبوس 8 متصل بـ GND من atmega8 ie Pin 8
قم بتوصيل المكونات المتبقية على اللوح وفقًا لمخطط الدائرة وافتح Sinaprog.
سنقوم بتحميل ملف Hex الذي تم إنشاؤه أعلاه باستخدام Sinaprog ، لذا افتحه واختر Atmega8 من القائمة المنسدلة للجهاز. حدد ملف HEX من Debug-> مجلد Exe كما هو موضح.
الآن ، انقر فوق البرنامج.
لقد انتهيت وتم برمجة وحدة التحكم الدقيقة الخاصة بك. استخدم نفس الخطوات لبرمجة Atmega أخرى على جانب المتلقي.
الكود الكامل والفيديو التوضيحي معطى أدناه.