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

ساخت پیانو با برد آردوینو (+پروژه ضبط و پخش صدا)

سلام. آموزش کامل ساخت پیانو با آردوینو + ضبط و پخش صدا در Arduino (استفاده از تابع tone) را آماده کردیم. فیلم عملکرد مدار را ببینید.

آموزش کامل ساخت پیانو با Arduino

در این پروژه آردوینو قصد داریم یک پیانو کوچک اما سرگرم کننده را بسازیم. این پیانو فقط با 8 دکمه کنترل میشود. از تابع tone() آردوینو برای ایجاد انواع نت های پیانو روی بلندگو استفاده می کنیم. همچنین قابلیت ضبط و پخش صدا را در آن قرار میدهیم تا بتوانیم آهنگ نواخته شده با پیانو را بشنویم.

تابع Tone()

Arduino یک تابع مفید دارد که می تواند برای تولید سیگنال هایی با فرکانس مختلف استفاده شود. خوب ، پس چگونه فرکانس متغیر را از Arduino دریافت می کنیم؟ اینجاست که تابع ()tone وارد می شود. tone() می تواند یک فرکانس خاص را روی یک پین خاص ایجاد کند.

tone(pin, frequency)
tone(pin, frequency, duration)

توضیح پارامتر ها :

  • pin : آن پینی که میخواهید tone در آن ایجاد شود.
  • frequency : فرکانس tone بر حسب هرتز
  • duration : مدت tone بر حسب میلی ثانیه

pin می تواند هرکدام از پین های دیجیتالی شما باشد. ما در اینجا از پین شماره 8 استفاده میکنیم. فرکانس تولید شده بستگی به اندازه تایمر در برد آردوینو شما دارد. برای آردوینو UNO و سایر برد های رایج حداقل فرکانس تولید شده 31Hz است و حداکثر فرکانس قابل تولید 65535Hz است. با این حال ما انسانها فقط فرکانسهای بین 2000 هرتز و 5000 هرتز را می شنویم.

جهت کسب اطلاعات بیشتر، مقاله تابع Tone را مشاهده کنید.

نحوه پخش پیانو با آردوینو

اکنون می دانیم که می توانیم از عملکرد tone در آردوینو برای تولید برخی صداها استفاده کنیم ، اما چگونه می توانیم با استفاده از آن ، صدای یک نت خاص را پخش کنیم. خوشبختانه کتابخانه ای به نام “pitches.h” وجود دارد که توسط برت هاگمن نوشته شده است. این کتابخانه حاوی تمام اطلاعاتی در مورد میزان فرکانس معادل نت ها در پیانو است. انقدر این کتابخانه خوب عمل میکند که ما واقعا شگفت زده شدیم. با این کتابخانه حتی میتوانید موسیقی فیلم تایتانیک ، ماریو ، دزدان دریایی و… را نواخت.

پروژه ما تنها 8 دکمه دارد بنابراین هر دکمه می تواند تنها یک نت موسیقی خاص را پخش کند و بنابراین به طور کلی می توانیم فقط 8 نت را پخش کنیم. ما از 8 نت پر استفاده در پیانو استفاده کردیم و شما میتوانید نت ها و دکمه های بیشتری را استفاده کنید.

نت های انتخاب شده در این پروژه ، نت های C4 ، D4 ، E4 ، F4 ، G4 ، A4 ، B4 و C5 است که به ترتیب می توانند با استفاده از دکمه های 1 تا 8 پخش شوند.

مطلب پیشنهادی:  ساخت نمایشگر POV با نئوپیکسل و ESP8266

مدار پروژه پیانو با آردوینو

مدار پروژه پیانو با آردوینو

شماتیک کامل پروژه در فایل دانلود قرار داده شده است. مقدار مقاومتها از سمت چپ به ترتیب ، 10k ، 560R ، 1.5k ، 2.6k ، 3.9 ، 5.6k ، 6.8k ، 8.2k و 10k است. اگر سوئیچ DPST ندارید می توانید از کلید سوئیچ معمولی استفاده کنید. ما همه 8 دکمه را به پین آنالوگ A0 آردوینو متصل کردیم. همچنین برای هر دکمه از مقاومت متتفاوت استفاده کردیم به این ترتیب هنگامی که هر دکمه فشار داده شود، یک ولتاژ آنالوگ متفاوت به پین ​​آنالوگ ارائه می شود.

ال سی دی به پین ​​های 8 ، 9 ، 10 ، 11 و 12 Arduino وصل می شود. بازر به پین ​​7 و سوئیچ SPDT به پین ​​6 آردوینو وصل شده است. همچنین می توانید آردوینو را از طریق جک DC به یک منبع تغذیه 9 ولت یا 12 ولت متصل کنید.

قطعات مورد نیاز

  1. برد آردوینو Uno
  2. نمایشگر LCD 16*2
  3. بازر
  4. پتانسیومتر 10k
  5. سوئیچ SPDT
  6. دکمه (8 عدد)
  7. مقاومت (10k، 560R، 1.5k، 2.6k، 3.9، 5.6k، 6.8k، 8.2k، 10k)
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.
موارد موجود در فایل : شماتیک مدار ، فایل Hex ، فایل آردوینو و …
4.3 (38 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

7 نظر

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

    1. سلام عزیز
      یک تصویر از مدار خود در انجمن سایت ارسال کنید

  2. اگه بخوایم بدون نمایشگر بسازیم
    باید پتاسیومتر و نمایشگر رو حذف کنیم
    و پین هاشو خالی بزاریم؟

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *