اتصال بازر به آردوینو (آموزش جامع)
محتویات
ما قبلا بازر را در آیرنکس معرفی کرده ایم و در یک مقاله دیگر تفاوت بازر اکتیو و پسیو را به صورت کامل توضیح دادیم. حالا در این آموزش میخواهیم نحوه اتصال بازر اکتیو و پسیو به آردوینو و کدنویسی آن ها را یاد بگیریم.
اتصال بازر اکتیو به آردوینو
ابتدا نحوه اتصال و کنترل بازر اکتیو با آردوینو را آموزش میدهیم و سپس مراحل را برای بازر پسیو بررسی میکنیم. برای شروع، بازر را داخل برد بورد قرار دهید. پایه مثبت (+) بازر را به پایه +5V VCC آردوینو وصل کنید و پایه منفی (-) بازر را به پایه GND آردوینو وصل کنید. هنگامی که پایه مثبت به طور مستقیم به پایه 5 ولت آردوینو متصل می شود، بازر صدای بوق با فرکانس ثابت تولید می کند.
اما این صدای بوق یک صدای پیوسته کنترل نشده است اگر بخواهیم مدت زمان روشن و خاموش بودن بوق را کنترل کنیم باید کد آردوینو بنویسیم.
بنابراین اکنون پین مثبت (+) بازر را به پایه دیجیتال 4 آردوینو خود وصل کنید (شما می توانید هر پین دیجیتال دیگری را انتخاب کنید) و پین منفی (-) بازر =را به پایه GND آردوینو متصل کنید.
کد آردوینو برای بازر فعال
کد این پروژه بسیار ساده است. آردوینو را به کامپیوتر خود وصل کنید و آردوینو IDE را باز کنید.
پس از باز شدن IDE آردوینو، کد زیر را کپی کرده و در ویرایشگر قرار دهید.
Void setup() { pinMode(4,OUTPUT); } Void loop() { digitalWrite(4,HIGH); delay(2000); digitalWrite(4,LOW); delay(1000); }
با این کد ساده می توانید بازر فعال را روشن و خاموش کنید. ما از delay آردوینو برای کنترل مدت زمان روشن و خاموش شدن آژیر استفاده می کنیم. عدد داخل تابع تاخیر بر حسب میلی ثانیه است، به این معنی که بازر ما به مدت 2 ثانیه روشن و برای 1 ثانیه خاموش می شود. شما همچنین می توانید آن را با توجه به نیاز خود تغییر دهید.
چگونه از بازر پسیو با آردوینو استفاده کنیم؟
اتصال بازر غیرفعال به آردوینو مشابه همان کاری است که ما برای بازر فعال انجام دادیم. ما می توانیم از یک پین خروجی PWM برای کنترل خروجی صدای بازر پسیو استفاده کنیم. همچنین می توانیم از هر پین دیجیتالی با توابع tone() و noTone() برای کنترل buzzer غیرفعال استفاده کنیم.
برای این پروژه شما علاوه بر بازر پسیو، به یک مقاومت 100 اهم هم احتیاج دارید. شما با تنظیم فرکانس اعمال شده با بازر میتوانید صدای بازر پسیو را کنترل کنید. شما میتوانید با آردوینو موج مربعی تولید کنید و با تغییر مدت زمان HIGH و LOW بودن موج مربعی، فرکانس و در نتیجه آهنگ خروجی بازر را تعییر بدهید.
مطمئن شوید که پین مثبت (+) بازر را به پایه دیجیتال آردوینو 7 و پایه منفی (-) را به آردوینو GND وصل کنید. در موارد مشابه، ممکن است بخواهید مقاومت سری 100 اهم را بین پین مثبت بازر (+) و پین دیجیتال آردوینو وصل کنید.
کد آردوینو برای بازر Passive
آردوینو دارای تابع tone() است که به تولید موج فرکانس مطلوب در پین های دیجیتال کمک می کند. برای ساکت نگه داشتن buzzer در طول زمان، میتوانیم از گزینه no tone() استفاده کنیم.
تابع tone() دارای 3 پارامتر زیر است.
tone(pin, frequency, duration);
- pin: پین آردوینو که روی آن تون تولید می شود
- frequency: فرکانس تن بر حسب هرتز
- Duration: مدت زمان تن بر حسب میلی ثانیه
بیایید کدی بسازیم که مجموعهای از نتهای موسیقی از sa، re، ga به ni را اجرا میکند.
int buzzerpin = 7; void setup() { pinMode(buzzerpin,OUTPUT); tone(buzzerpin,500,2000); } void loop() { tone(buzzerpin,277); delay(1000); tone(buzzerpin,311); delay(1000) tone(buzzerpin,350); delay(1000); tone(buzzerpin,370); delay(1000); tone(buzzerpin,415); delay(1000); tone(buzzerpin,466); delay(1000); tone(buzzerpin,523); delay(1000); tone(buzzerpin,554); delay(1000); noTone(buzzerpin); delay(500); tone(buzzerpin,554); delay(1000); tone(buzzerpin,523); delay(1000); tone(buzzerpin,466); delay(1000); tone(buzzerpin,415); delay(1000); tone(buzzerpin,370); delay(1000); tone(buzzerpin,350); delay(1000); tone(buzzerpin,311); delay(1000); tone(buzzerpin,277); delay(1000); noTone(buzzerpin); delay(1000);}
زمانی که تابع tone() در بخش loop() استفاده می شود، پارامتر duration خیلی خوب کار نمی کند. بنابراین برای تنظیم مدت زمان تن در حلقه، از تابع delay() بعد از هر تابع tone() استفاده کنید. در این کد یک تابع delay() وجود دارد که 1000 میلی ثانیه (یک ثانیه) تاخیر بعد از هر تابع tone() را ایجاد می کند.
در انتهای حلقه، تابع noTone() و تاخیر 1000 میلی ثانیه ای برای اضافه کردن یک دوره سکوت یک ثانیه قبل از تکرار حلقه استفاده می شود.
بعد از اینکه بازر را وصل کردید و کد را آپلود کردید، باید صدای بازر را بشنوید که 7 نت از آن خارج میشود.
اگر سوالی دارید در قسمت نظرات مطرح کنید.