Съдържание:

Метроном, базиран на микроконтролер: 5 стъпки
Метроном, базиран на микроконтролер: 5 стъпки

Видео: Метроном, базиран на микроконтролер: 5 стъпки

Видео: Метроном, базиран на микроконтролер: 5 стъпки
Видео: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Юли
Anonim
Image
Image

Метрономът е устройство за измерване на времето, използвано от музикантите за проследяване на ритмите в песните и за развиване на усещане за време при начинаещи, които изучават нов инструмент. Той помага да се поддържа чувство за ритъм, което е от решаващо значение за музиката.

Този метроном, построен тук, може да се използва за задаване на броя удари на бар и удара в минута. След като тези данни за настройка бъдат въведени, той издава звуков сигнал според данните, придружен от подходящо осветление с помощта на светодиоди. Данните за настройка се показват на LCD екран.

Стъпка 1: Необходими компоненти:

·

  • Микроконтролер Atmega8A
  • · 16*2 LCD дисплей
  • · Пиезо зумер
  • · Светодиоди (зелени, червени)
  • · Резистори (220e, 330e, 1k, 5.6k)
  • · Бутони (2* против заключване, 1* заключване)
  • · 3V CR2032 монета клетъчна батерия (*2)
  • Поставка за батерии за монети (*2)
  • · 6 -пинов Relimate (поляризиран) конектор

Стъпка 2: Осъществяване на веригата

Направете връзките на веригата, както е показано на картинката на вероборд и запоявайте връзките правилно

Стъпка 3: Характеристики на метронома

Интерфейсът на метронома е зает главно от LCD екрана. Над него е 8А микроконтролер, разположен централно със светодиодите и зумера вдясно. Трите превключвателя и конекторът Relimate са поставени отгоре.

Целият проект се захранва само от две монетни батерии (в серия @6V 220mAh) с прогнозно време на работа от 20 дни до 1 месец (не непрекъснато). Следователно той е умерено енергийно ефективен и има изискване за ток от 3 - 5 mA.

Самозаключващият се превключвател е поставен в крайния ляв ъгъл и представлява бутона за включване/изключване. Бутонът в средата е бутонът за настройка, а бутонът вдясно се използва за промяна на стойностите за bpm и удари (на лента).

Когато бутонът ON/OFF е натиснат, LCD дисплеят се включва и показва стойността на ударите на лента. Той изчаква 3 секунди, докато потребителят промени стойността, след което приема получената стойност за вход. Тази стойност варира между 1/4, 2/4, 3/4, 4/4.

След това показва ударите в минута (bpm) и отново чака 3 секунди, докато потребителят промени стойността, след което задава конкретната стойност. Това време за изчакване от 3 секунди се калибрира, след като потребителят промени стойност. Стойностите на bpm могат да варират от 30 до 240. Натискането на бутона за настройка по време на настройката на bpm възстановява стойността му на 30 bpm, което е полезно за намаляване на количеството щраквания на бутоните. Стойностите на bpm са кратни на 5.

След като настройката приключи, LCD подсветката се изключва, за да се спести батерията. Звънецът издава звуков сигнал веднъж за всеки такт и светодиодите мигат един по един последователно за всеки такт. За да промените стойностите, се натиска бутонът за настройка. Когато направите това, LCD подсветката се включва и подканата за ритъм се появява точно както беше споменато по -горе със същата процедура след това.

Микроконтролерът Atmega8A се състои от 500 байта EEPROM, което означава, че каквито и стойности на бийтове и bpm да бъдат въведени, остават запазени дори след изключване на метронома. Следователно повторното му включване го кара да възобнови със същите данни, които са били въведени преди това.

Конекторът Relimate всъщност е SPI заглавка, която може да се използва за две цели. Може да се използва за препрограмиране на микроконтролера Atmega8A за актуализиране на неговия фърмуер и добавяне на нови функции към метронома. Второ, външно захранване може да се използва и за захранване на метронома за хардкор потребители. Но това захранване не трябва да е по -голямо от 5,5 волта и то отменя ключа за включване/изключване. От съображения за безопасност този ключ ТРЯБВА да бъде изключен, така че външното захранване да не се къса с вградените батерии.

Стъпка 4: Описание

Този проект е направен с помощта на микроконтролера Atmel Atmega8A, който е програмиран с помощта на Arduino IDE чрез Arduino Uno/Mega/Nano, използван като ISP програмист.

Този микроконтролер е по -слабо представена версия на Atmel Atmega328p, която се използва широко в Arduino Uno. Atmega8A се състои от 8Kb програмируема памет с 1Kb RAM. Това е 8 -битов микроконтролер, работещ на същата честота като 328p, т.е. 16Mhz.

В този проект, тъй като потреблението на ток е важен аспект, тактовата честота е намалена и се използва вътрешният 1 Mhz осцилатор. Това значително намалява текущото изискване до около 3.5 mA @3.3V и 5mA @4.5V.

Arduino IDE няма възможност за програмиране на този микроконтролер. Следователно е инсталиран пакет „Minicore“(плъгин) за стартиране на 8A с неговия вътрешен осцилатор, използвайки буутлоудъра Optiboot. Беше забелязано, че изискванията за мощност на проекта се увеличават с увеличаване на напрежението. Следователно за оптимално използване на енергията, микроконтролерът е настроен да работи на 1 MHz с единична 3V монетна батерия, която извлича само 3.5mA. Но беше забелязано, че LCD не функционира правилно при такова ниско напрежение. Следователно решението за използване на две монети батерии последователно беше приложено за повишаване на напрежението до 6V. Но това означава, че текущото потребление се е увеличило до 15mA, което е огромен недостатък, тъй като животът на батерията ще стане много лош. Също така той надхвърли границата на безопасно напрежение от 5,5 V на 8A микроконтролера.

Следователно резистор от 330 ома е свързан последователно с 6V захранването, за да се отървем от този проблем. Резисторът основно причинява спад на напрежението върху себе си, за да понижи нивото на напрежение в рамките на 5,5 V, за да работи безопасно микроконтролера. Освен това стойността на 330 беше избрана, като се вземат предвид различни фактори:

  • · Целта беше да работи 8A при възможно най -ниско напрежение, за да се пести енергия.
  • · Беше забелязано, че LCD дисплеят спря да работи под 3.2V, въпреки че микроконтролерът все още функционира
  • · Тази стойност 330 гарантира, че спадането на напрежението в крайностите е точно точно, за да се използват пълноценно монетните батерии.
  • · Когато монетните клетки бяха на върха си, напрежението беше около 6.3V, като 8А получаваше ефективно напрежение от 4.6 - 4.7 V (@ 5mA). И когато батериите бяха почти изсъхнали, напрежението беше около 4V с 8A и LCD, който получаваше достатъчно напрежение, т.е. 3.2V, за да функционира правилно. (@3.5mA)
  • · Под нивото на 4v на батериите, те бяха ефективно безполезни, без да остават никакви сокове, които да захранват каквото и да било. Спадът на напрежението в резистора варира през цялото време, тъй като консумацията на ток на 8A микроконтролера и LCD дисплея намалява с намаляване на напрежението, което по същество спомага за увеличаване на живота на батерията.

16*2 LCD е програмиран с помощта на вградената библиотека LiquidCrystal на Arduino IDE. Той използва 6 пина за данни на 8A микроконтролера. Освен това яркостта и контрастът му се контролират с помощта на два пина за данни. Това беше направено така, че да не се използва допълнителен компонент, например потенциометър. Вместо това, функцията PWM на пин за данни D9 беше използвана за регулиране на контраста на екрана. Също така подсветката на LCD дисплея трябваше да бъде изключена, когато не се изисква, така че това не би било възможно без използването на щифт за данни за захранването му. За ограничаване на тока през светодиода на подсветката беше използван резистор от 220 ома.

Звънецът и светодиодите също бяха свързани към щифтовете за данни на 8A (по един за всеки). За ограничаване на тока през червения светодиод беше използван резистор от 5,6 k ohm, докато за зеления - 1k ohm. Стойностите на резистора са избрани чрез придобиване на сладко място между яркостта и консумацията на ток.

Бутонът ON/OFF не е свързан към извод за данни и е просто превключвател, който превключва проекта. Единият му извод се свързва към резистора 330 ома, а другият се свързва към Vcc пиновете на LCD и 8А. Другите два бутона са свързани към щифтове за данни, които са вътрешно изтеглени за захранващо напрежение чрез софтуер. Това е необходимо за работата на превключвателите.

Освен това щифтът за данни, към който се свързва бутонът за настройка, е щифт за хардуерно прекъсване. Рутинната му услуга за прекъсване (ISR) се активира в IDE на Arduino. Това означава, че всеки път, когато потребителят иска да стартира менюто за настройка, 8A преустановява настоящата си работа, като работи като метроном, и изпълнява ISR, който основно активира менюто за настройка. В противен случай потребителят няма да има достъп до менюто за настройка.

Споменатата по -горе опция EEPROM гарантира, че въведените данни остават съхранени дори след изключване на платката. И SPI заглавката се състои от 6 пина - Vcc, Gnd, MOSI, MISO, SCK, RST. Това е част от SPI протокола и както бе споменато по -горе, ISP програмист може да се използва за програмиране на 8A отново за добавяне на нови функции или нещо друго. Pcc Vcc е изолиран от положителния извод на батерията и следователно Metronome предоставя възможност за използване на външно захранване, като се имат предвид споменатите по -горе ограничения.

Целият проект е конструиран във Veroboard чрез запояване на отделните компоненти и подходящите връзки съгласно електрическата схема.

Препоръчано: