فهرست مطالب:

سروو کنترل بی سیم: 6 مرحله
سروو کنترل بی سیم: 6 مرحله

تصویری: سروو کنترل بی سیم: 6 مرحله

تصویری: سروو کنترل بی سیم: 6 مرحله
تصویری: با یه دختر این کارو نکن😰 2024, نوامبر
Anonim
سروو کنترل بی سیم
سروو کنترل بی سیم
سروو کنترل بی سیم
سروو کنترل بی سیم

این پروژه چرخش سروو را به صورت بی سیم با استفاده از پتانسیومتر (دستگیره) کنترل می کند. چرخش تا 180 درجه محدود شده است.

مرحله 1: اجزاء

اجزاء
اجزاء
اجزاء
اجزاء
اجزاء
اجزاء

این پروژه شامل

  • 2 برد کنترل Arduino UNO با کابل اتصال USB
  • 2 ماژول فرستنده گیرنده nRF24L01-2.4GHz (برای کمک به این ماژول ها به
  • 2 تخته آداپتور سوکت (تراشه های کوله پشتی) برای nRF24L01
  • 1 اختیاری Arduino Compatible 328 ProtoShield Prototype Expansion Board
  • 1 سروو
  • 1 پتانسیومتر آنالوگ
  • لحیم کاری و لحیم کاری
  • سیم
  • انبردست بینی سوزنی
  • روکش عایق ، من از نوار برقی استفاده کردم

مرحله 2: برد سرور

برد سرور
برد سرور

برد سرور شامل یک ماژول فرستنده گیرنده ، برد محافظ (که فقط از یک جهت مستقیماً به برد آردوینو متصل می شود) و سروو می باشد. من تصمیم گرفتم که تخته محافظ را برای جلوگیری از تخته ناهنجار ناشیانه در نظر بگیرم و پروژه را به طور کامل تمیز کنم.

کد و منبع وب موجود در لیست اجزاء ، اتصالات ماژول فرستنده را نشان می دهد. تصمیم گرفتم به جای استفاده از اتصالات موقت مانند پروژه های قبلی ، اتصالات را لحیم کنم. از آنجا که من مبتدی هستم ، هر قسمت لحیم کاری را با نوار برقی عایق بندی کردم (آنها زیبا نبودند).

پین های تخته محافظ مستقیماً با پین های آردوینو مطابقت دارند. قبل از اتصال تخته محافظ ، زمین و پایه های 5 ولتی را با سیم و لحیم به ریل های برد وصل کردم. همچنین سیم های 5 ولت و زمین قطعات را به ریل های برد محافظ لحیم کردم ، سپس سرانجام آردوینو را به برد سپر وصل کردم.

سروو برای برق به پین 3 ولت و برای ارتباط به پین دیجیتال 2 متصل است.

** توجه: فقط پس از اتمام این ساخت متوجه شدم که برد های آردوینو من یکسان نیستند. فرستنده گیرنده سرور من از ریل 5 ولت روی برد محافظ تغذیه می کند ، در حالی که گیرنده گیرنده از پین 3 ولت تغذیه می کند ، اگرچه من معتقد بودم که عملکرد تراشه آداپتور بر روی فرستنده گیرنده ارائه ولتاژ مناسب است. تنها چیزی که می توانم با اطمینان بگویم این است که کد ارائه شده مطابق با پیکربندی نشان داده شده در تصاویر ، جلوه توصیف شده را ایجاد می کند.

مرحله 3: رمزگذار سرور: کپی و چسباندن

// کد سرور/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> استفاده نشده GND> GND VCC> 5V */// سیم کشی فرستنده

#عبارتند از

// کتابخانه سرو

#عبارتند از

// کتابخانه فرستنده گیرنده

#سرووپین 2 را تعریف کنید

// پین خروجی سروو اعلان

سرویس ServoTimer2 ؛

// اعلام نام سروو

RH_NRF24 nrf24؛

// اعلام نام فرستنده گیرنده

int timeOUT = 0؛

// متغیر برای سروو

int پالس = 90 ؛

// متغیر برای ذخیره پالس

void setup ()

{serv.attach (سرووپین) ؛ // خدمات سروو

Serial.begin (9600)؛ // وسایل فرستنده گیرنده

اگر (! nrf24.init ())

Serial.println ("init ناموفق بود")؛ // موارد مانیتور سریال اگر (! nrf24.setChannel (12)) // کانال را روی 125 قرار دهید Serial.println ("setChannel failed") ؛ if (! 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 (prin)؛ serv.write (نبض) ؛ // باعث حرکت سروو می شود}}

}

مرحله 4: هیئت مدیره مشتری

هیئت مدیره مشتری
هیئت مدیره مشتری

برد مشتری از یک ماژول فرستنده گیرنده و پتانسیومتر تشکیل شده است. ماژول فرستنده گیرنده همانند سیم سرور ** وصل می شود با این تفاوت که بدون برد محافظ ، مستقیماً به پین های برد آردوینو وصل می شود.

پتانسیومتر 5 ولت را می گیرد ، زمین می گیرد و به پین 2 آنالوگ متصل می شود.

** توجه: همانطور که در مرحله برد سرور ذکر شد ، بردهای Arduino من یکسان نیستند. در این حالت ، فرستنده گیرنده به پین با برچسب 3.3V ، مستقیماً در مجاورت پین 5V متصل می شود ، اما باز هم ، به نظر می رسد همه چیز خوب کار می کند.

مرحله 5: کد مشتری: کپی و چسباندن

// CLIENT CODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> استفاده نشده GND> GND VCC> 5V */// سیم کشی فرستنده

#عبارتند از

// کتابخانه فرستنده گیرنده

int potpin = A2؛ // کاهش پتانسیومتر

int val؛

char tempChar [5]؛

رشته valString = ""؛ // نوع داده ها را تغییر دهید

RH_NRF24 nrf24؛ // وسایل فرستنده گیرنده

void setup ()

{Serial.begin (9600) ؛ if (! nrf24.init ()) Serial.println ("init fail")؛ // پیش فرضها پس از init عبارتند از 2.402 گیگاهرتز (کانال 2) ، 2 مگابیت بر ثانیه ، 0dBm اگر (! nrf24.setChannel (12)) Serial.println ("setChannel failed") ؛ if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ناموفق بود")؛ } // موارد فرستنده گیرنده

حلقه خالی () {

val = analogRead (potpin) ؛ // موارد پتانسیومتر

val = map (val، 0، 1023، 750، 2250)؛

valString = val؛ رشته رشته = (valString)؛ str.toCharArray (tempChar ، 5) ؛ // تغییر نوع داده nrf24.send (tempChar ، sizeof (tempChar)) ؛

}

مرحله 6: نکته ای در مورد کد:

کد شامل برخی از قابلیتهای عیب یابی محدود در قالب بازخورد از مانیتور سریال در رابط نرم افزار Arduino است. هنگام مشاهده مانیتور سریال از کد SERVER (ctrl + shift + M) ، باید بتوانید وضعیت پتانسیومتر را به صورت عددی بین 1 تا 180 مشاهده کنید.

همچنین ، در اینجا کتابخانه بی سیم و سروو وجود دارد:

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

github.com/nabontra/ServoTimer2

توصیه شده: