فهرست مطالب:

مترونوم مبتنی بر میکرو کنترلر: 5 مرحله
مترونوم مبتنی بر میکرو کنترلر: 5 مرحله

تصویری: مترونوم مبتنی بر میکرو کنترلر: 5 مرحله

تصویری: مترونوم مبتنی بر میکرو کنترلر: 5 مرحله
تصویری: ریز به زبان ساده| #سنتور 2024, جولای
Anonim
Image
Image

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

از این مترونوم ساخته شده در اینجا می توان برای تنظیم تعداد ضربان در هر نوار و ضربان در دقیقه استفاده کرد. هنگامی که این داده های راه اندازی وارد می شوند ، با توجه به داده های همراه با نور مناسب با استفاده از LED ها بوق می زنند. داده های راه اندازی در یک صفحه LCD نمایش داده می شود.

مرحله 1: اجزای مورد نیاز:

·

  • میکروکنترلر Atmega8A
  • · صفحه نمایش 16*2 ال سی دی
  • · Piezo Buzzer
  • · LED (سبز ، قرمز)
  • · مقاومت (220e ، 330e ، 1k ، 5.6k)
  • · دکمه های فشار (2* ضد قفل ، 1* قفل)
  • · 3V CR2032 سکه سلول باتری (*2)
  • دارنده باتری سکه (*2)
  • · 6 پین Relimate (قطبی) اتصال

مرحله 2: ایجاد مدار

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

مرحله 3: ویژگی های مترونوم

رابط مترونوم عمدتا توسط صفحه LCD ضبط شده است. در بالای آن میکروکنترلر 8A قرار دارد که به طور مرکزی با LED ها و زنگ در سمت راست قرار گرفته است. سه کلید و کانکتور Relimate در بالای آن قرار گرفته است.

کل پروژه فقط از دو باتری سلول سکه ای (سری 6V 220mAh) با مدت زمان تقریبی 20 روز تا 1 ماه (نه به طور مداوم) تغذیه می شود. بنابراین از نظر مصرف انرژی نسبتاً متوسط است و نیاز فعلی آن 3 - 5 میلی آمپر است.

سوئیچ قفل شونده در انتهای چپ قرار دارد و دکمه ON/OFF است. دکمه وسط دکمه Setup است و دکمه سمت راست برای تغییر مقادیر bpm و beats (در هر نوار) استفاده می شود.

وقتی کلید ON/OFF فشار داده می شود ، LCD روشن می شود و مقدار ضربان در هر نوار را نمایش می دهد. 3 ثانیه منتظر می ماند تا کاربر مقدار را تغییر دهد و پس از آن مقدار حاصل را به عنوان ورودی خود می گیرد. این مقدار بین 1/4 ، 2/4 ، 3/4 ، 4/4 متغیر است.

سپس ضربان در دقیقه (bpm) را نمایش می دهد و مجدداً 3 ثانیه منتظر می ماند تا کاربر مقدار را تغییر دهد و پس از آن مقدار خاصی را تعیین می کند. این زمان انتظار 3 ثانیه پس از تغییر مقدار توسط کاربر کالیبره می شود. مقادیر ضربان در دقیقه می تواند از 30 تا 240 متغیر باشد. با فشار دادن دکمه Setup در حین تنظیم BPM ، مقدار آن به 30 BPM تغییر می کند که در کاهش میزان کلیک دکمه مفید است. مقادیر bpm مضربی از 5 است.

پس از اتمام راه اندازی ، نور پس زمینه LCD خاموش می شود تا باتری را ذخیره کنید. Buzzer برای هر ضربه یک بار بوق می زند و LED ها به طور متناوب برای هر ضربه چشمک می زنند. برای تغییر مقادیر ، دکمه Setup فشار داده می شود. پس از انجام این کار ، نور پس زمینه LCD روشن می شود و اعلان ضربان دقیقاً همانطور که قبلاً ذکر شد با همان روش بعد ظاهر می شود.

میکروکنترلر Atmega8A متشکل از 500 بایت EEPROM است به این معنی که هر مقدار از ضربان و ضربان در دقیقه وارد می شود ، حتی پس از خاموش شدن مترونوم ذخیره می شود. از این رو دوباره روشن کردن آن باعث می شود که با همان داده هایی که قبلاً وارد شده بود ، از سر گرفته شود.

کانکتور Relimate در واقع یک سربرگ SPI است که می تواند برای دو منظور استفاده شود. می توان از آن برای برنامه ریزی مجدد میکروکنترلر Atmega8A برای به روزرسانی سیستم عامل خود و افزودن ویژگی های جدید به مترونوم استفاده کرد. ثانیاً ، از منبع تغذیه خارجی نیز می توان برای تغذیه مترونوم برای کاربران هاردکور استفاده کرد. اما این منبع تغذیه نباید بیشتر از 5.5 ولت باشد و کلید ON/OFF را لغو می کند. به دلایل ایمنی ، این سوئیچ باید خاموش باشد تا منبع خارجی باتری های داخلی کم نشود.

مرحله 4: توضیحات

این پروژه با استفاده از میکروکنترلر Atmel Atmega8A ساخته شده است که با استفاده از Arduino IDE از طریق Arduino Uno/Mega/Nano به عنوان برنامه نویس ISP برنامه ریزی شده است.

این میکروکنترلر نسخه کمتری از Atmel Atmega328p است که در Arduino Uno بسیار استفاده می شود. Atmega8A شامل 8 کیلوبایت حافظه قابل برنامه ریزی با 1 کیلوبایت رم است. این یک میکروکنترلر 8 بیتی است که با فرکانس مشابه 328p یعنی 16 مگاهرتز کار می کند.

در این پروژه ، از آنجا که مصرف فعلی جنبه مهمی است ، فرکانس ساعت کاهش یافته و از نوسان ساز داخلی 1 مگاهرتز استفاده شده است. این امر میزان جریان مورد نیاز را تا حدود 3.5 میلی آمپر در 3.3 ولت و 5 میلی آمپر در 4.5 ولت کاهش می دهد.

Arduino IDE امکان برنامه ریزی این میکروکنترلر را ندارد. بنابراین یک بسته "افزونه" برای اجرای 8A با نوسان ساز داخلی آن با استفاده از بوت لودر Optiboot نصب شد. توجه شد که نیاز به قدرت پروژه با افزایش ولتاژ افزایش می یابد. بنابراین برای استفاده بهینه از قدرت ، میکروکنترلر با فرکانس 1 مگاهرتز با یک باتری سکه ای 3 ولت فقط 3.5 میلی آمپر کار می کرد. اما مشاهده شد که ال سی دی در چنین ولتاژ پایینی به درستی کار نمی کند. بنابراین تصمیم به استفاده از دو باتری سکه ای به صورت سری برای افزایش ولتاژ تا 6 ولت اعمال شد. اما این بدان معناست که مصرف فعلی به 15 میلی آمپر افزایش یافته است که یک نقص بزرگ است زیرا عمر باتری بسیار ضعیف می شود. همچنین از حد مجاز ولتاژ 5.5 ولت میکروکنترلر 8A فراتر رفت.

بنابراین یک مقاومت 330 اهم به صورت سری با منبع تغذیه 6 ولت متصل شد تا از شر این مشکل خلاص شود. مقاومت اساساً باعث افت ولتاژ در خود می شود تا سطح ولتاژ را در 5.5 ولت کاهش دهد تا با خیال راحت میکروکنترلر را اجرا کند. علاوه بر این ، مقدار 330 با در نظر گرفتن عوامل مختلف انتخاب شد:

  • · هدف این بود که 8A را در کمترین ولتاژ ممکن برای صرفه جویی در برق اجرا کنیم.
  • · مشاهده شد که ال سی دی زیر 3.2 ولت کار خود را متوقف کرد اگرچه میکروکنترلر هنوز کار می کند
  • · این مقدار 330 اطمینان حاصل می کند که ولتاژ در افراط بسیار دقیق است تا بتوان از باتری های سکه به طور کامل استفاده کرد.
  • · هنگامی که سلول های سکه در اوج خود بودند ، ولتاژ حدود 6.3 ولت بود ، با 8A ولتاژ موثر 4.6 - 4.7 ولت (@ 5mA@). و وقتی باتری ها تقریباً خشک شدند ، ولتاژ در حدود 4 ولت با 8A بود و ال سی دی ولتاژ کافی را دریافت می کرد یعنی 3.2 ولت برای عملکرد صحیح. (@3.5mA)
  • · در زیر سطح 4 ولت باتری ها ، آنها عملاً بدون هیچگونه آب میوه ای برای تغذیه هیچ چیز بی فایده بودند. افت ولتاژ در مقاومت از زمان مصرف فعلی میکروکنترلر 8A و ال سی دی با کاهش ولتاژ کاهش می یابد که اساساً به افزایش عمر باتری کمک می کند.

LCD 16*2 با استفاده از کتابخانه LiquidCrystal ساخته شده در Arduino IDE برنامه ریزی شد. از 6 پین داده میکروکنترلر 8A استفاده می کند. علاوه بر این ، روشنایی و کنتراست آن با استفاده از دو پین داده کنترل شد. این کار به این دلیل انجام شد که از جزء اضافی یعنی پتانسیومتر استفاده نشود. در عوض ، عملکرد PWM پین داده D9 برای تنظیم کنتراست صفحه استفاده شد. همچنین نور پس زمینه ال سی دی باید در مواقع لزوم خاموش باشد ، بنابراین این امر بدون استفاده از پین داده برای تغذیه آن امکان پذیر نبود. از یک مقاومت 220 اهمی برای محدود کردن جریان در LED نور پس زمینه استفاده شد.

Buzzer و LED ها نیز به پین های داده 8A (یکی برای هر کدام) متصل شدند. یک مقاومت 5.6 کیلو اهم برای محدود کردن جریان در LED قرمز و یک کیلو اهم برای مقاومت سبز استفاده شد. مقادیر مقاومت با بدست آوردن یک نقطه شیرین بین روشنایی و مصرف فعلی انتخاب شده است.

دکمه روشن/خاموش به پین داده متصل نیست و فقط یک سوئیچ است که پروژه را روشن می کند. یکی از پایانه های آن به مقاومت 330 اهم متصل می شود و دیگری به پین های Vcc LCD و 8A متصل می شود. دو دکمه دیگر به پین های داده متصل هستند که به صورت داخلی برای تامین ولتاژ از طریق نرم افزار کشیده شده اند. این برای کار کلیدها ضروری است.

علاوه بر این ، پین داده ، دکمه Setup متصل می شود ، یک پین سخت افزاری است. روال سرویس وقفه (ISR) در Arduino IDE فعال می شود. این بدان معناست که هر زمان که کاربر بخواهد منوی راه اندازی را اجرا کند ، 8A عملکرد فعلی خود را به عنوان مترونوم متوقف می کند و ISR را اجرا می کند که اساساً منوی Setup را فعال می کند. در غیر این صورت ، کاربر نمی تواند به منوی Setup دسترسی پیدا کند.

گزینه EEPROM که قبلاً ذکر شد اطمینان حاصل می کند که داده های وارد شده حتی پس از خاموش شدن برد نیز ذخیره می شوند. هدر SPI شامل 6 پین است - Vcc ، Gnd ، MOSI ، MISO ، SCK ، RST. این بخشی از پروتکل SPI است و همانطور که قبلاً ذکر شد ، یک برنامه نویس ISP می تواند برای برنامه ریزی مجدد 8A برای افزودن ویژگی های جدید یا هر چیز دیگری استفاده شود. پین Vcc از پایانه مثبت باتری جدا شده است و بنابراین مترونوم با در نظر گرفتن محدودیت هایی که قبلاً ذکر شد ، گزینه استفاده از منبع تغذیه خارجی را فراهم می کند.

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

توصیه شده: