فهرست مطالب:

آردوینو مترونوم: 4 مرحله
آردوینو مترونوم: 4 مرحله

تصویری: آردوینو مترونوم: 4 مرحله

تصویری: آردوینو مترونوم: 4 مرحله
تصویری: نحوه پروگرام کردن اردوینو با موبایل | How to program Arduino with mobile 2024, نوامبر
Anonim
Image
Image

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

مرحله 1: شرح عملکرد

فهرست قطعات
فهرست قطعات

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

  • فاکتور فرم جمع و جور برای قرار دادن مکانهای کوچک در بالای یا کنار آلات موسیقی ،
  • باتری کار می کند ، محکم و قابل حمل برای حمل و نقل ،
  • به راحتی حتی برای بچه ها تنظیم می شود ، مقدار BPM همیشه نمایش داده می شود ،
  • ضربانهای قابل تنظیم در دقیقه با دستگیره روتاری ، تا 240 BPM
  • درایت شنیدنی با کنترل صدا ،
  • حالت خاموش برای تمرین هدفون شبانه ،
  • بازخورد بصری ضربه (1/4 ، 2/4 ، 3/3 ، 4/4 ، 6/8 و غیره) تا 8 LED ،
  • با یا بدون لهجه اصلی ، با بازخورد بصری و شنیدنی.

با روشن شدن ، حالت مترونوم با 60 BPM شروع می شود و روی صفحه نمایش کوچک نشان داده می شود و اجازه می دهد تا سرعت توسط دکمه چرخشی بین 10 تا 240 تنظیم شود. نئوپیکسل ها در LED های آبی رنگ را نشان می دهند در حالی که صدای زنگ به صدا در می آید. با فشردن دکمه به حالت تنظیم ضرب می رسد و LED های سبز رنگ ساختار تنظیم شده را نشان می دهد. دکمه گردان باعث افزایش یا کاهش ساختار ضربه (2/2 ، 3/3 ، 4/4 ، 6/8 و غیره) می شود. بالای 8 LED ، بیشتر در جهت عقربه های ساعت می چرخند ، جلوه اصلی روشن می شود و اولین LED این را با رنگ قرمز نشان می دهد. لهجه پیشرو نیز بازخورد شنیدنی خواهد داشت. با چرخاندن خلاف جهت عقربه های ساعت می توان آن را خاموش کرد. با فشار دادن دکمه از حالت تنظیم ضربان به حالت مترونوم باز می گردد.

مرحله 2: لیست قطعات

شما به یک مورد نیاز خواهید داشت. هر شکل و اندازه ای را می توان خرید ، اما ما یک قاب فلزی مشکی زیبا از یک سوئیچ VGA دستی قدیمی داشتیم که یک دوست آن را کنار گذاشته بود. بقیه قطعات در زیر ذکر شده است.

  • باتری 9 ولت ، 1.50 دلار آمریکا
  • کابل اتصال باتری ، 0 ، 16 دلار
  • آردوینو نانو با سرصفحه پین ، 2.05 دلار آمریکا
  • Nano IO Extension Shield ، 1 دلار آمریکا ، 05 دلار
  • مینی سوئیچ قدرت ، 0.15 دلار آمریکا
  • وزوز پیزو ، 0 دلار ، 86 دلار
  • Adafruit Neopixel WS2812 8 بیتی ، 1 دلار آمریکا ، 01 دلار
  • صفحه نمایش OLED 128x64 ، USD 1 ، 53
  • رمزگذار روتاری ، 0 دلار ، 50 دلار
  • کابل های Dupont F/F ، USD 0 ، 49

قیمت کل قطعات کمتر از 10 دلار آمریکا است -

مرحله 3: نمودار سیم کشی

نمودار سیم کشی
نمودار سیم کشی

از Nano IO Extension Board استفاده کنید تا مزاحم لحیم کاری چند اتصال GND و VCC نشوید. برای سرصفحه های پین نانو و اتصالات ماژول Neopixel حداقل لحیم کاری مورد نیاز است. استفاده از سیم های Dupont امکان اتصال پایدار برای بقیه سیم کشی را همانطور که در نمودار نشان داده شده است ، می دهد. باتری 9 ولت به GND و VIN متصل است ، دومی از طریق سوئیچ کشویی قدرت. ماژول رمزگذار دوار دارای یک دکمه سوئیچ یکپارچه است که به طور جداگانه در نمودار برای درک آسانتر نحوه اتصال آنها نشان داده شده است. قسمت روتاری (CLK و DT) به ترتیب به PIN2 و PIN3 متصل است ، زیرا این تنها پین های NANO هستند که می توانند دستکاری را قطع کنند. روتاری GND البته به پین GND نانو متصل است. دکمه سوئیچ یکپارچه به PIN4 متصل است. زنگ اخبار Piezo به PIN5 و GND متصل است. ماژول Adafruit Neopixel به ترتیب به PIN7 و VIN و GND آن به ترتیب به 5V و GND نانو متصل است. صفحه نمایش OLED کوچک به رابط گذرگاه I2C متصل است که PIN A4 و A5 برای SDA و SDL است. VCC و GND البته به 5V نانو و GND می رود. که سیم کشی Dupont ما به پایان می رسد.

مرحله 4: کد منبع آردوینو

کد منبع آردوینو
کد منبع آردوینو

// مترونوم ، لهجه پیشرو ، تدبیر بصری و شنیدنی - 2019 پیتر سورگای

#include #include #include #include #include "TimerOne.h" #dreine SCREEN_WIDTH 128 #definine SCREEN_HEIGHT 64 #deleine OLED_RESET -1 // بازنشانی پین #(یا -1 در صورت اشتراک گذاری پین بازنشانی آردوینو) نمایش Adafruit_SSD1306 ، SCREEN_ ، & سیم ، OLED_RESET) ؛ #پین_نئوپیکسل 7 #تعریف NUMPIXELS 8 #تعریف روشنایی 32 پیکسل Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS ، pin_neopixel ، NEO_GRB + NEO_KHZ800) ؛ #تعریف IDLE_11 0 #تعریف SCLK_01 1 #تعریف SCLK_00 2 #تعریف SCLK_10 3 #تعریف SDT_10 4 #تعریف SDT_00 5 #تعریف SDT_01 6 حالت int = IDLE_11 ؛ #define CLK 2 #define DT 3 #deinine pin_switch 4 #deinine pin_buzzer 5 int bpm = 60؛ int bpmFirst = 0؛ // LED در ابتدا روشن ، در بقیه خاموش است … int tack = 4؛ bool leaderTack = false؛ int pos = 0؛ int curVal = 0؛ int prevVal = 0؛ void setup () {pixels.begin ()؛ pinMode (pin_buzzer ، OUTPUT) ؛ تایمر 1. مقداردهی اولیه (1000000*60/bpm/2) ؛ Timer1.attachInterrupt (buzztick) ؛ pinMode (CLK ، INPUT_PULLUP) ؛ pinMode (DT ، INPUT_PULLUP) ؛ pinMode (pin_switch ، INPUT_PULLUP) ؛ attachInterrupt (digitalPinToInterrupt (CLK) ، rotaryCLK ، CHANGE) ؛ attachInterrupt (digitalPinToInterrupt (DT) ، rotaryDT ، CHANGE) ؛ if (! display.begin (SSD1306_SWITCHCAPVCC، 0x3C)) {// آدرس 0x3D برای 128x64 برای (؛؛)؛ // ادامه ندهید ، برای همیشه حلقه بزنید} display.clearDisplay ()؛ display.display ()؛ } void loop () {if (digitalRead (pin_switch) == LOW) {تاخیر (100) ؛ while (digitalRead (pin_switch) == LOW) ؛ تأخیر (100) ؛ Timer1.detachInterrupt ()؛ showGreenTacks ()؛ while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack+= 1؛ if (tack> 8) {if (leaderTack) tack = 8؛ else {leaderTack = true؛ چسبندگی = 1 ؛ }}} else if (curValprevVal) {bpm+= 2؛ if (bpm> 240) bpm = 240؛ } else if (curVal = 100) display.print ("")؛ else display.print ("")؛ display.print (bpm) ؛ display.display ()؛ } void buzztick () {if (bpmFirst == 0) {int volume = 4؛ if (LeadTack && pos == 0) حجم = 8 ؛ برای (int i = 0 ؛ i

توصیه شده: