در این آموزش قصد داریم نحوه معلق کردن اجسام با استفاده از امواج صوتی و البته با کمک برد آردوینو را به شما دوستان عزیز آموزش بدهیم ، اگر علاقمند به شبکه های اجتماعی باشید به احتمال زیاد پروژه هایی با نام “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 قرار دهید. سپس روی برد آردوینو آپلود کنید. چنانچه روش آپلود کدها را نمیدانید، به آموزش کار با برد آردوینو مراجعه کنید.
byte TP = 0b10101010; void setup() { DDRC = 0b11111111; noInterrupts(); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; OCR1A = 200; TCCR1B |= (1 << WGM12); TCCR1B |= (1 << CS10); TIMSK1 |= (1 << OCIE1A); interrupts(); } ISR(TIMER1_COMPA_vect) { PORTC = TP; TP = ~TP; } void loop(){ }
وسایل مورد نیاز
- آردوینو نانو (لینک خرید)
- درایور موتور L298N (لینک خرید)
- ماژول افزاینده ولتاژ (لینک خرید)
- سنسور التراسونیک ترانسدیوسر (——–)
تمامی مراحل ضروری جهت اجرای پروژه در این آموزش توضبح داده شده است، مراحل را یک به یک اجرا کرده و در صورت هر گونه سوال از طریق بخش دیدگاه ها با ما در ارتباط باشید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
سلام
آموزش جذابیه و چقدر خوب که کوتاه ولی عالی توضیح دادید
فقط یک سوال اون ترنسمیتر از کجا بیاریم؟
ممنون از توجه شما ، می توانید ترنسمیتر را از ماژول های srf دمونتاژ کنید و یا از دانشجوکیت بصورت جداگانه خریداری کنید .
سلام کد ظاهرا به هم ریخته امکانش هست درستش کنین؟
با سلام، کد ها تست شدند و مشکلی وجود نداشت.
سلام خسته نباشید
ممکنه بگید که آیا میشه از درایور موتور مدل L298N-2 به جای مدل L298N-DHB استفاده کرد یا خیر؟
اگر امکان این کار هست لطفا بگید که چطور میشه ازش استفاده کرد ؛ تفاوتی دارند یا خیر؟
سپاس
با سلام
خیر در کل ماژول های سری L298 مناسب این پروژه می باشد اما دقت کنید، با نمونه ای که در تصاویر مشاهده می کنید تفاوت چندانی نداشته باشد.
لینک های زیر لینک تصاویر ماژولی هست که عرض کردم ؛ممنون میشم اگر چک کنید ببینید میشه ازش استفاده کنم یا نه؛ممنون
https://shop.aftabrayaneh.com/image/cache/data/aftabrayaneh/Motors_Drivers/Drivers/L298_Dual_Bridge_Drive__AFTAB/L298_Dual_Bridge_Drive__AFTAB_4-350×350.jpg
https://shop.aftabrayaneh.com/image/cache/data/aftabrayaneh/Motors_Drivers/Drivers/L298_Dual_Bridge_Drive__AFTAB/L298_Dual_Bridge_Drive__AFTAB_1-350×350.jpg
با سلام
بله، مشکلی ندارند می تونید استفاده کنید.
سلام
لطف میکنید در رابطه با منبع تغذیه و ماژول افزاینده ولتاژ و نحوه اتصالات آنها با هم ؛ با مدار و با ماژول آردوینو توضیحی بفرمایید؟
ممنون
با سلام
توضیحات لازم مربوط به ماژول افزاینده و میزان ورودی و خروجی ماژول در آموزش ذکر شده برای اطلاعات بیشتر می توانید دیتاشیت ماژول را مطالعه بفرمایید.
سلام خسته نباشید
من از محیط آنلاین برای کد نویسی برنامه آردینو استفاده میکنم اما با خطای زیر مواجه میشم لطفا اگر ممکنه کمکم کنید تا مشکل رو برطرف کنم.
ممنون
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
با سلام
از طریق لینک زیر کد مربوط به این پروژه را دانلود کنید و همچنین از نسخه دکستاپ آردوینو برای آپلود کد ها استفاده کنید.
https://create.arduino.cc/projecthub/code_files/276157/download
سلام مهندس موقعی که میخواهم کد ها را آپلود کنم error میدهد میشه راهنمایی کنید
با سلام
چه اروری دریافت می کنید ؟
در ضمن میتوانید از طریق بخش تیکت ها برای عیب یابی سریع تر مراجعه کنید.
چجوری میتونیم سوالاتمون رو ازتون بپرسیم
با سلام
کلیه سوالات را میتوانید از همین بخش نظرات مطرح کنید.
سلام ببخشید من در این پروژه اگر از برد اردویینو با تراشه R3 اورجینال موجود در سایت استفاده کنم مشکل نداره بجای استفاده از اردینو نانو
با سلام، خیر مشکلی نیست، اما با توجه به تجربه شخصی خودم،آردوینو نانو را پیشنهاد میکنم.
ببخشید من در این پروژه اگر از برد اردویینو با تراشه R3 اورجینال موجود در سایت استفاده کنم مشکل نداره بجای استفاده از اردینو نانو
با سلام، خیر مشکلی نیست، اما با توجه به تجربه شخصی خودم، آردوینو نانو را پیشنهاد میکنم.
سلام واقعا مطلب خیلی مفیدی هست ممنون
آیا میشه قطرات کوچک مایع هم با این سناریو معلق کرد؟
سلام، بله امکانش هست البته با استفاده از التراسونیک های بیشتر و مدل های قوی تر.
با درود آیا امکان سفارش ساخت وجود دارد؟ این دستگاه رو با شرایط و طراحی کمی خاص نیاز دارم،که باید چند موج صوتی با فرکانس مشخص و زمانهای متفاوت را بروی جسم معلق وارد کند…در واقع فایلی از موج نیاز دارم که مثلا از صفر تا صد هرتز در دو دقیقه رسیده و یک دقیقه بروی صد هرتز فعال بماند
بعد از صد تا هزار هرتز را مثلا در دو دقیقه و در اون فرکانس تا چهل ثانیه فعال بماند و …
تعداد بیشتری باند فرستنده اولتراسونیک نیاز دارم که از شش جهت موج بروی جسم تابیده شود…رنج فرکانسی مورد نیاز از صفر تا ده هزار هرتز
و اینکه دستگاه قادر باشد از یک تا پنج گرم را شناور کند
قصد دارم این سیستم را سفارش دهم…لطفا نظر یا شرایط خود را به من ایمیل کنید
با سلام و تشکر از شما
خیر امکان ساخت محصولات فراهم نیستند.