آردوینو آموزش آردوینو

ساخت دستگاه پرتوکششی صوتی Ultrasonic Levitator با سنسور SRF

نوشته شده توسط CiferTech

در این آموزش قصد داریم نحوه معلق کردن اجسام با استفاده از امواج صوتی و البته با کمک برد آردوینو را به شما دوستان عزیز آموزش بدهیم ، اگر علاقمند به شبکه های اجتماعی باشید به احتمال زیاد پروژه هایی با نام “ultrasonic levitator” یا “acoustic levitator” و یا به زبان فارسی دستگاه پرتو کششی صوتی را دیده باشید . اگر نحوه ساخت این دستگاه همواره برای شما سوال بوده پس تا انتهای این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه ما باشید.

 


 التراسونیک فرستنده Transmitter Ultrasonic


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

 


 ماژول درایور موتور L298N


ماژول درایور یا راه انداز L298N در حالت عادی برای راه اندازی موتور های DC بکار گرفته می شود ولی همینطور که در ادامه متوجه خواهید شد در این پروژه استفاده متفاوت تری از این ماژول خواهیم داشت این ماژول دارای چهار خروجی است(out1 , out2 و out3 , out4) که ما از خروجی های out1 و ou2 استفاده خواهیم کرد . در این پروژه با استفاده از آردوینو ابتدا ۵v pp به ماژول درایور اعمال شده و سپس به ۲۵v pp تبدیل به و ترانسمیتر ها اعمال خواهد شد.

 


 آردوینو نانو “Arduino Nano”


برد آردوینو با پردازنده Atmega328 که کد های مورد نیاز ما برای این پروژه داخل این میکروکنترلر پروگرام شده و با استفاده از خروجی A0 , A1 که خروجی های آنالوگ ما هستند به راه انداز یا درایور اعمال خواهند شد .


ماژول افزاینده ولتاژ XL6009E1 متغیر DC-DC


برای تغذیه ماژول L298N به تغذیه ۱۲ ولتی احتیاج خواهیم داشت پس با استفاده از این ماژول براحتی می توانیم ولتاژ ۳٫۷ ولت باتری های معمولی را به ۱۲ ولت تبدیل کنیم.

نکته : دقت داشته باشید با ورودی ۳٫۵ یا ۳٫۷ ولت در این ماژول ماکزیموم خروجی ۳۷ ولت را دریافت خواهیم کرد ، پس قبل از اتصال ماژول به مدار با ولت متر خروجی را اندازه گیری و با استفاده از پتانسیومتر موجود در ماژول خروجی را به ولتاژ مورد نظر تنظیم کنید.

 


نحوه معلق شدن اجسام


زمانی که ترنسدیوسر ها را به درایور متصل کنید صدایی آرام اما در دراز مدت آزار دهنده را خواهید شنید این یعنی دستگاه کار می کند در واقع اواج صوتی ، standing wave (موج ایستاده) هایی تولید می کنند که در نتیجه اجسام مورد نظر معلق خواهند شد .

 


اتصالات مدار


 Arduino A0 ====> IN1 L298

Arduino A1 =====>IN2 L298

 L298 out1 =====> Ultrasonic trasmitter

L298 out2 =====>Ultrasonic transmitter

برای درک بهتر اتصالات و نحوه راه اندازی ماژول ها به لینک زیر مراجعه بفرمایید (آموزش تصویری در یوتیوب)

تماشای آموزش کامل

 


سورس کد آردوینو


کدهای زیر را کپی کرده و در آردوینو IDE قرار دهید. سپس روی برد آردوینو آپلود کنید. چنانچه روش آپلود کدها را نمی‌دانید، به آموزش کار با برد آردوینو مراجعه کنید.

 


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


  1. آردوینو نانو  (لینک خرید)
  2. درایور موتور L298N (لینک خرید)
  3. ماژول افزاینده ولتاژ (لینک خرید)
  4. سنسور التراسونیک ترانسدیوسر (——–)

 

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

CiferTech

دانشجوی الکترونیک ،
ساخت محتوای آموزشی در یوتیوب و اینستاگرام با نام : CiferTech

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

۱۲ دیدگاه

  • سلام
    آموزش جذابیه و چقدر خوب که کوتاه ولی عالی توضیح دادید
    فقط یک سوال اون ترنسمیتر از کجا بیاریم؟

  • سلام خسته نباشید
    ممکنه بگید که آیا میشه از درایور موتور مدل L298N-2 به جای مدل L298N-DHB استفاده کرد یا خیر؟
    اگر امکان این کار هست لطفا بگید که چطور میشه ازش استفاده کرد ؛ تفاوتی دارند یا خیر؟
    سپاس

  • سلام
    لطف میکنید در رابطه با منبع تغذیه و ماژول افزاینده ولتاژ و نحوه اتصالات آنها با هم ؛ با مدار و با ماژول آردوینو توضیحی بفرمایید؟
    ممنون

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

  • سلام خسته نباشید
    من از محیط آنلاین برای کد نویسی برنامه آردینو استفاده میکنم اما با خطای زیر مواجه میشم لطفا اگر ممکنه کمکم کنید تا مشکل رو برطرف کنم.
    ممنون
    TCCR1A’ was not declared in this scope

    پیام کامل خطا:

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino: In function ‘void setup()’:

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:6:3: error: ‘TCCR1A’ was not declared in this scope

    TCCR1A = 0;

    ^~~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:6:3: note: suggested alternative: ‘TCB1’

    TCCR1A = 0;

    ^~~~~~

    TCB1

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:7:3: error: ‘TCCR1B’ was not declared in this scope

    TCCR1B = 0;

    ^~~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:7:3: note: suggested alternative: ‘TCB1’

    TCCR1B = 0;

    ^~~~~~

    TCB1

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:8:3: error: ‘TCNT1’ was not declared in this scope

    TCNT1 = 0;

    ^~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:8:3: note: suggested alternative: ‘TCB1’

    TCNT1 = 0;

    ^~~~~

    TCB1

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:9:3: error: ‘OCR1A’ was not declared in this scope

    OCR1A = 200;

    ^~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:10:17: error: ‘lt’ was not declared in this scope

    TCCR1B |= (1 << WGM12);

    ^~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:10:19: error: expected ‘)’ before ‘;’ token

    TCCR1B |= (1 << WGM12);

    ^

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:10:25: error: ‘WGM12’ was not declared in this scope

    TCCR1B |= (1 << WGM12);

    ^~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:11:19: error: expected ‘)’ before ‘;’ token

    TCCR1B |= (1 << CS10);

    ^

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:11:25: error: ‘CS10’ was not declared in this scope

    TCCR1B |= (1 << CS10);

    ^~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:11:25: note: suggested alternative: ‘B010’

    TCCR1B |= (1 << CS10);

    ^~~~

    B010

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:12:3: error: ‘TIMSK1’ was not declared in this scope

    TIMSK1 |= (1 << OCIE1A);

    ^~~~~~

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:12:3: note: suggested alternative: ‘TIMERB1’

    TIMSK1 |= (1 << OCIE1A);

    ^~~~~~

    TIMERB1

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:12:19: error: expected ‘)’ before ‘;’ token

    TIMSK1 |= (1 << OCIE1A);

    ^

    /tmp/205486469/sketch_feb18b/sketch_feb18b.ino:12:25: error: ‘OCIE1A’ was not declared in this scope

    TIMSK1 |= (1 << OCIE1A);

    ^~~~~~

    exit status 1