آردوینو آموزش آردوینو پروژه های آردوینو سرگرمی

آموزش ساخت دور شمار فیجت اسپینر آردوینو Arduino Spinner RPM

فیجت اسپینر Fidget-Spinner-RPM-arduino-digispark-
نوشته شده توسط اروند طباطبایی

فیجت اسپینر Fidget Spinner در حال شکستن رکورد فروش اسباب‌بازی در کل تاریخ است. یک سرگرمی بسیار ساده و جذاب که از بازی کردن با آن خسته نمی‌شوید. چند روزی است به این فکر می‌کردم که چطور میشه فیجت اسپینر این سرگرمی جذاب را جذاب‌تر کرد؟ و از حالت بازی انفرادی به بازی گروهی تبدیل کرد. یه نگاهی به ماژول‌های پر کاربرد بازار انداختم. به این نتیجه رسیدم که با سنسور اثر هال می‌توان در اثر میدان مغناطیسی، دوران فیجت اسپینر Spinner را محاسبه کرد. از این رو در این آموزش شیوه ساخت دور شمار فیجت اسپینر Fidget Spinner را آموزش خواهم داد. به این روش می‌توانید با اسپینر Fidget Spinner به حالت گروهی بازی کنید. به این صورت که از قدرت دورانی که هر شخص می‌تواند به اسپینر وارد کند، به عنوان برنده اعلام شود! در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ساختار فیجت اسپینر Fidget Spinner

فیجت اسپینر دارای یک بلبرینگ مرکزی است. کلیه دوران‌ها بسته به جنس و جایگذاری این بلبرینگ دارد. اسپینرها در شکل‌های مختلفی ساخته شده‌اند. به طور معمول دارای ۳ لبه مجزا هستند. برای تنوع در این لبه‌ها یا بلبرینگ قرار دارد، یا ال ای دی و … که بسته به نوع خلاقیت تولید کننده متفاوت است. کافیست یکی از لبه‌ها را گرفته و به آن نیرو وارد کنید، فیجت اسپینر Fidget Spinnner حول نقطه مرکز شروع به چرخش می‌کند.

 

محاسبه دوران فیجت اسپینر Fidget Spinner

برای محاسبه دوران چند روش وجود دارد. از آنجایی که نمی‌خواهیم در ساختار ظاهری فیجت اسپینر Fidget Spinner تغییر بوجود آوریم. کافیست یک آهنربا مغناطیسی کوچک به یکی از ضلع‌های اسپینر Spinner اتصال دهید. پیشنهاد می‌کنم که حتما از آهنربا قوی، سبک و کوچک استفاده کنید. در ادامه توضیح می‌دهم که چطور می‌توانید تهیه کنید. بخش بعدی در مدار شمارنده دوران اسپینر Spinner، سنسور اثر هال است. این سنسور توانایی تشخیص میدان مغناطیسی را دارد. هدف این است که با آهنربا یک میدان مغناطیسی متحرک ایجاد کنیم، در اثر هر بار حرکت آهنربا از جلوی سنسور اثر هال Hall Effective Sensor شمارنده عمل می‌کند. بخش‌های بعدی مدار برد آردوینو Arduino هر مدلی از آردوینو می‌تواند باشد. و نمایشگر جهت نمایش میزان دوران اسپینر Fidget Spinner است.

 

وسایل مورد نیاز:

آهنربا

چند رشته کابل

برد آردوینو Arduino Board

شیلد ال سی دی LCD 2X16

فیجت اسپینر Fidget Spinner

ماژول اثر هال Hall Sensor Module

 

اتصالات مدار:

شیلد ال سی دی LCD2X16 بدون نیاز به سیم کشی روی برد آردوینو Arduino نصب می‌شود. ماژول اثرهال دارای ۴ پایه است. در این آموزش از پایه آنالوگ آن استفاده شده است. پین AO را به پایه A2 آردوینو متصل می‌کنیم. دو پایه VCC و GND هم تغذیه مدار است. به پایه ۵ ولت و زمین مدار متصل می‌شوند. دانستن این نکته اهمیت دارد، شیلد ال سی دی کاراکتری انواع مختلفی در بازار دارد، مدلی که من در این آموزش استفاده کرده‌ام علاوه بر اینکه روی برد پین‌های آنالوگ را جای دیگری مشخص کرده بود، پایه آنالوگ در بالای برد قرار گرفته بود. پس از انجام این مراحل و آپلود کدها روی آردوینو کافیست آهنربا را به فیجت اسپینر Fidget Spinner اتصال دهید و از جلو سنسور اثر هال عبور دهید. میزان دوران بر اساس دور بر دقیقه مشخص می‌شود. همانند تصویر زیر:

آموزش ساخت دور شمار فیجت اسپینر آردوینو Arduino Fidget Spinner RPM دیجی اسپارک

 

کدهای مدار فیجت اسپینر Fidget Spinner:

حال با چرخاندن فیجت اسپینر Fidget Spinner می‌توانید تعداد دوران و قدرت دستتان را از طریق نمایشگر ال سی دی مشاهده کنید. به ویدیو زیر توجه کنید. برای استفاده از مدار دور شمار فیجت اسپینر Fidget Spinner به صورت Portable پیشنهاد می‌شود تغذیه را از یک باتری لیتیوم پلیمر Li-po استفاده کنید. به عنوان نمونه در ویدیو نمایش داده شده است.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

درباره نویسنده

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. در حال حاضر مدیریت تولید مقطع کارشناسی ارشد هستم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۶ دیدگاه

  • ممنون از اموزش های عالیتون، اگه ممکنه اموزش هایی مثل ساخت یک پخش کننده صدا بلوتوث، یا یک نمایشگر نمایش متن بلوتوث و… چیز های کنترل از راه دور و اینترنت اشیاء بیشتر بزارید مرسی.

    • با سلام
      ضمن تشکر از توجه و پیشنهاد شما، اولویت با آموزش هایى است که بیشترین تقاضا را دارند. پیشنهادتان را بررسى خواهیم کرد.

  • عرض ادب
    اولا تشکر میکنم، آموزش بسیار کاربردییه، دوما اینکه من اومدم با lcd کاراکتری معمولی راه اندازی کنم ولی نمیشه، کدها ریختم روی برد و lcdهم روشن میشه ولی هیچی نمایش نمیده

    • با سلام
      ضمن تشکر از توجه و سرعت عمل شما، در مورد این موضوع احتمالا اتصالات را درست برقرار نکرده‌اید. جهت دریافت راهنمایی دقیق اتصالات ال سی دی را اعلام کنید.

      • با تشکر از پاسخ شما
        غیر از پایه های تغذیه بک لایت و تغذیه برد، پایه ۴ به پین ۱۳، پایه ۵ به پین GND، پایه ۶ به پین ۱۲، پایه ۱۱ به پین ۱۱، پایه ۱۲ به پین ۱۰، پایه ۱۳ به پین ۹ و پایه ۱۴ به پین ۸ آردوینو متصل کرده ام.

        تشکر میکنم ازتون

        • خواهش میکنم، اینطور که شما پایه‌ها را آدرس دهی کرده‌اید با کدهای برنامه تداخل دارد. یا طبق کدهای برنامه پایه‌ها را اتصال دهید و یا اینکه در کدهای برنامه سطر دوم تغییرات را اعمال کنید. چنانچه مشکل حل نشد از همین طریق اعلام کنید.

    • با سلام
      بله، البته دقت کنید که نیابد از آهنربا بزرگ و سنگین استفاده کنید. چراکه باعث تداخل در چرخش اسپینر میشود. پیشنهاد میشود از آهنربا کوچک استفاده کنید و اگر قدرت کافی نداشته باشم، باید نزدیک به سنسور گرفته شود.

    • با سلام
      از توجه شما سپاسگذارم. نسل امبددها از همان AVR است ولی شیوه کار کردن امبدد دیوایس‌ها ساده‌تر و کاراتر هستند. پیشنهاد میکنم هرچه سریع‌تر به این سمت مهاجرت کنید!

  • باسلام از آشنایی با سایت شما خرسندم وامیدوارم در جهت اندازه گیری کمیت های قابل سنجش در استاندارد سازی مراجع ملی در سطح دقتی نانو اندازه گیری آزمایشگاه مرجع ملی را کمک نمایید.در صورت اطلاعات بیشتر به لینک شبکه مترولوژی ایران دعوت میگردید.
    با تشکر

  • درود بر شما. من ال سی دی را به آردینیو وصل کردم . هیچ نمینویسه. مدار و سیم ها درسته…برنامه های مختلف هم تست کردم….با تغییر پتانسیومتر مربع های داخل ال سی دی پر رنگ و کم رنگ میشه و لی هیچی نمینویسه.
    چه اشکالی میتونه باشه؟ مرسی

    • با سلام
      ضمن تشکر از توجه شما، در این زمینه باید شیلد ال سی دی را تست کنید. احتمالا تغذیه مدار، یا کتابخانه مورد استفاده با شیلد شما همخوانی ندارد.

  • با سلام
    من تو این اموزش به جای شیلد ال سی دی از خود ال سی دی کاراکتری استفاده کردم.البته به جای سنسور هال هم از رید سوییچ مغناطیسی.یکم هم کد ها و اتصالات رو تغیر دادم تا با پین های جدید جور در بیاد.همه چیز درست و صحیح نمایش داده میشه اما فقط مقدار دوران از مقدار واقعی بیشتره! مثلا تو اموزش شما بیشتر از ۱۰۰۰ نمیشه ولی تو این تا ۶۰۰۰ هم میره!!!مشکل چیه؟

    • با سلام
      ضمن تشکر از توجه شما، خب همانطور که میدانید برای استفاده از ال سی دی کاراکتری بجای شیلد کاراکتری نیاز به تغییرات در کدها است. که شما این کار را انجام داده‌اید. این موضوع بستگی به نوع سنسور شما دارد. اگر سطر ۴۹ کدها را ببینید، ماکزیمم دوران روی ۶۰۰۰ تنظیم شده است و این قضیه فقط مربوط به سنسور و آهنربای مورد استفاده است.

  • ریدسوویچ کلا دو پایه داره که اگر بهش اهنربا نزدیک شه وصل میشه و اگه نباشه قطع میشه.من یکی از پایه هاشو به ۱۳ زدم اونیکیم به ۵v و با ۱۰k ohm به gnd .اهنربا هم نودیومی هست یکم قویه.مشکل چیه؟در ضمن ۶۰ تا ۶۰ تا به سرعت اضافه میشه؟؟

    • با سلام
      بله با عملکرد ریدسوئیچ آشنایی دارم. در این خصوص این سنسور انتخاب مناسبی نمی‌باشد و دقت کافی ندارد. اکیدا توصیه میشود برای دریافت پاسخ درست از سنسور اثر هال استفاده کنید.

  • سلام . من همین شیلد ال سی دی رو به آردوینو uno r3 وصل کردم ولی زمانی که کد اکزمپل هلو ورد رو آپلود میکنم هیچ اتفاقی نمی افتده. کتابخانه لیکوید کیریستال رو هم ریختم. کنتراست رو هم رو ال سی دی تنظیم کردم(مربع ها دیده میشه).
    لطفا کمکم کنید.

  • سلام. من میخوام فاصله زمانی بین دو دور کامل اسپینر رو حساب کنم. ینی یه دور زد زمانی که صرف یک دور شد رو حساب کنه. میشه کمکم کنید؟؟؟؟
    یه سوال دیگه هم داشتم. تو کد count تعداد دور در هر ثانیه هست؟؟؟

    • با سلام
      ضمن تشکر از توجه شما، در خصوص سوال اول کار پیچیده‌ای نیست و نیازی به کدنویسی هم نمیباشد. صرفا یک معادله ریاضی ساده است. به عنوان مثال اگر اسپینر شما ۳۶۸ دور در دقیقه بزند، برای بدست آوردن مدت زمان یک دور کافیست عدد ۳۶۸ را به ۶۰ ثانیه تقسیم کنید. حاصل این محاسبه می‌شود ۰٫۱۶۳۰۴ چنانچه قصد دارید این موارد را در کدها انجام دهید، بایستی دانش کدنویسی c++ داشته باشید. در مورد سوال دوم هم تابع count یک شمارنده است.

  • سلام ببخشید باتری باید چند ولت باشه؟؟؟
    بعد یه سوال دیگه من رفتم ماژول اثر هال رو خریدم سه پایه داره نیشه بگین اونو چجوری باید وصل کنم ؟؟ ممنون

    • با سلام
      ضمن تشکر از توجه شما، سلول باتری لیتیوم پلیمر ولتاژ یکسانی دارند، ۳٫۷ تا ۴٫۲ ولت که در این آموزش از آن استفاده شده است. اتصالات که در آموزش توضیح داده شده است. از پایه آنالوگ ماژول استفاده شده است. همانطور که توضیح داده شده است در این آموزش از ۳ پایه استفاده شده است. راه اندازی کنید، اگر مشکلی بود از همین طریق اعلام کنید.