جدول المحتويات:

التحكم اللاسلكي المؤازر: 6 خطوات
التحكم اللاسلكي المؤازر: 6 خطوات

فيديو: التحكم اللاسلكي المؤازر: 6 خطوات

فيديو: التحكم اللاسلكي المؤازر: 6 خطوات
فيديو: How to control servomotor by Arduino - ماهو السيرفو موتور و كيف نتحكم به بالأردوينو 4 2024, يوليو
Anonim
التحكم اللاسلكي المؤازر
التحكم اللاسلكي المؤازر
التحكم اللاسلكي المؤازر
التحكم اللاسلكي المؤازر

يتحكم هذا المشروع في دوران المؤازرة لاسلكيًا عن طريق مقياس الجهد (مقبض). الدوران مقيد بـ 180 درجة.

الخطوة 1: المكونات

عناصر
عناصر
عناصر
عناصر
عناصر
عناصر

يتكون هذا المشروع من

  • 2 لوح تحكم Arduino UNO مع كابل موصل USB
  • 2 nRF24L01 - 2.4 جيجا هرتز وحدات الإرسال والاستقبال RF (للمساعدة في هذه الوحدات ، يرجى الرجوع إلى https://randomnerdtutorials.com/nrf24l01-2-4ghz-rf …
  • عدد 2 من لوحات مهايئ المقبس (رقائق حقيبة الظهر) لـ nRF24L01
  • 1 لوحة توسيع اختيارية متوافقة مع اردوينو 328 ProtoShield
  • 1 مؤازرة
  • 1 مقياس الجهد التناظري
  • لحام الحديد ولحام
  • الأسلاك
  • كماشة الأنف إبرة
  • غلاف عازل ، لقد استخدمت شريطًا كهربائيًا

الخطوة 2: لوحة الخادم

مجلس الخادم
مجلس الخادم

تتكون لوحة الخادم من وحدة الإرسال والاستقبال ، ولوحة الدرع (التي تتصل مباشرة بلوحة Arduino بطريقة واحدة فقط) ، والمؤازرة. قررت تضمين لوحة الدرع لتجنب اللوح الخشن وإضفاء لمسة نهائية أكثر إتقانًا على المشروع.

يوضح الكود ومورد الويب المتضمنان في قائمة المكونات تفاصيل اتصالات وحدة الإرسال والاستقبال. قررت لحام الاتصالات بدلاً من استخدام الاتصالات المؤقتة كما في المشاريع السابقة. منذ أن كنت مبتدئًا ، قمت بعزل كل مفصل لحام بشريط كهربائي (لم تكن جميلة).

تتوافق دبابيس لوحة الدرع مباشرة مع دبابيس Arduino. قبل إرفاق لوحة الدرع ، قمت بتوصيل الأرض ودبابيس 5 فولت بقضبان اللوحة بالأسلاك واللحام. لقد قمت أيضًا بلحام الأسلاك المكونة من 5 فولت والأسلاك الأرضية بقضبان لوحة الدرع ، ثم قمت أخيرًا بتوصيل Arduino بلوحة الدرع.

يتم توصيل المؤازرة بالدبوس 3 فولت للطاقة والدبوس الرقمي 2 للاتصال.

** ملاحظة: فقط بعد الانتهاء من هذا البناء ، لاحظت أن لوحات Arduino الخاصة بي ليست متطابقة. يتم تشغيل جهاز الإرسال والاستقبال للخادم الخاص بي بواسطة سكة 5 فولت على لوحة الدرع ، بينما يتم تشغيل جهاز الإرسال والاستقبال الخاص بالعميل بواسطة دبوس 3 فولت ، على الرغم من أنني قد دفعت إلى الاعتقاد بأن وظيفة شريحة المحول على جهاز الإرسال والاستقبال هي توفير الجهد المناسب. كل ما يمكنني قوله على وجه اليقين هو أن الكود المتوافق مع التكوين الموضح في الصور ينتج التأثير الموصوف.

الخطوة 3: مبرمج الخادم: نسخ ولصق

// كود الخادم / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> غير مستخدم GND> GND VCC> 5V * / // أسلاك جهاز الإرسال والاستقبال

#يشمل

// مكتبة مؤازرة

#يشمل

// مكتبة جهاز الإرسال والاستقبال

#define Servopin 2

// إعلان إخراج مؤازر دبوس

ServoTimer2 سيرف ؛

// إعلان اسم المؤازرة

RH_NRF24 nrf24 ؛

// إعلان اسم جهاز الإرسال والاستقبال

الوقت int = 0 ؛

// متغير مؤازر

نبضات int = 90 ؛

// متغير لتخزين البقول

الإعداد باطل()

{serv.attach (Servopin) ؛ // الاشياء المؤازرة

Serial.begin (9600) ؛ // الاشياء جهاز الإرسال والاستقبال

إذا (! nrf24.init ())

Serial.println ("فشل init") ؛ // عناصر مراقبة تسلسلية إذا (! nrf24.setChannel (12)) // قم بتعيين القناة على 125 Serial.println ("فشل setChannel") ؛ إذا (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF فشل")؛ // جهاز العرض التسلسلي}

حلقة فارغة()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN] ؛ uint8_t len = sizeof (buf) ؛ if (nrf24.recv (buf، & len)) // مسلسلات المراقبة {Serial.print ("حصلت على طلب:")؛ النبضات = strtol ((const char *) buf، NULL، 10) ؛ // أشياء تغيير نوع البيانات

int prin = خريطة (نبضات ، 750 ، 2250 ، 0 ، 180) ؛ // أشياء تغيير نوع البيانات

Serial.println (بريين) ؛ خدمة الكتابة (البقول) ؛ // يجعل الحركة المؤازرة}}

}

الخطوة 4: لوحة العميل

مجلس العميل
مجلس العميل

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

يأخذ مقياس الجهد 5 فولت ، أرضي ، ويتم توصيله بالدبوس 2 التناظري.

** ملاحظة: كما هو مذكور في خطوة لوحة الخادم ، فإن لوحات Arduino الخاصة بي ليست متطابقة. في هذه الحالة ، يتم توصيل جهاز الإرسال والاستقبال بالدبوس المسمى 3.3 فولت ، بجوار دبوس 5 فولت مباشرةً ، ولكن مرة أخرى ، يبدو أن كل شيء يعمل بشكل جيد.

الخطوة 5: رمز العميل: نسخ ولصق

// كود العميل / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> غير مستخدم GND> GND VCC> 5V * / // أسلاك جهاز الإرسال والاستقبال

#يشمل

// مكتبة جهاز الإرسال والاستقبال

int potpin = A2 ؛ // فرق الجهد

int فال؛

شار tempChar [5] ؛

سلسلة valString = "" ؛ // أشياء تغيير نوع البيانات

RH_NRF24 nrf24 ؛ // الاشياء جهاز الإرسال والاستقبال

الإعداد باطل()

{Serial.begin (9600) ، if (! nrf24.init ()) Serial.println ("فشل init")؛ // الافتراضيات بعد التهيئة هي 2.402 جيجاهرتز (القناة 2) ، 2 ميجابت في الثانية ، 0 ديسيبل إذا (! nrf24.setChannel (12)) Serial.println ("فشل setChannel") ؛ إذا (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF فشل")؛ } // عناصر جهاز الإرسال والاستقبال

حلقة فارغة() {

val = analogRead (بوتبين) ؛ // الاشياء الجهد

فال = خريطة (val ، 0 ، 1023 ، 750 ، 2250) ؛

valString = val ؛ String str = (valString) ؛ str.toCharArray (tempChar ، 5) ؛ // أشياء تغيير نوع البيانات nrf24.send (tempChar ، sizeof (tempChar)) ؛

}

الخطوة السادسة: ملاحظة حول الكود:

يحتوي الكود على بعض وظائف استكشاف الأخطاء وإصلاحها المحدودة في شكل ملاحظات من الشاشة التسلسلية في واجهة برنامج Arduino. عند عرض الشاشة التسلسلية من رمز الخادم (ctrl + shift + M) ، يجب أن تكون قادرًا على رؤية حالة مقياس الجهد في شكل رقم بين 1 و 180.

أيضًا ، هنا مكتبة اللاسلكي وأجهزة المؤازرة:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

موصى به: