Kazalo:

Metronom na osnovi mikrokontrolerja: 5 korakov
Metronom na osnovi mikrokontrolerja: 5 korakov

Video: Metronom na osnovi mikrokontrolerja: 5 korakov

Video: Metronom na osnovi mikrokontrolerja: 5 korakov
Video: Босса нова. Урок №3 2024, Julij
Anonim
Image
Image

Metronom je merilna naprava, ki jo uporabljajo glasbeniki za spremljanje taktov v pesmih in za razvoj občutka za čas med začetniki, ki se učijo novega inštrumenta. Pomaga ohraniti občutek za ritem, ki je v glasbi ključnega pomena.

Ta metronom, zgrajen tukaj, lahko uporabite za nastavitev števila utripov na bar in udarcev na minuto. Ko vnesete te nastavitvene podatke, zapiska v skladu s podatki, ki jih spremlja ustrezna osvetlitev z uporabo LED. Nastavitveni podatki so prikazani na LCD zaslonu.

1. korak: Potrebne komponente:

·

  • Mikrokrmilnik Atmega8A
  • · 16*2 LCD zaslon
  • · Piezo Buzzer
  • · LED (zelena, rdeča)
  • · Upori (220e, 330e, 1k, 5,6k)
  • · Gumbi (2* proti blokiranju, 1* zaklepanje)
  • · 3V gumbna baterija CR2032 (*2)
  • Držalo za kovanec (*2)
  • · 6 -polni (polariziran) priključek

2. korak: Izdelava vezja

Povežite vezje, kot je prikazano na sliki na plošči veroboard, in priključke pravilno spajkajte

3. korak: Značilnosti metronoma

Vmesnik metronoma zaseda predvsem LCD zaslon. Nad njim je 8A mikrokrmilnik, ki je nameščen v središču z LED diodami in zvočnikom na desni. Tri stikala in priključek Relimate so nameščeni na vrhu.

Celoten projekt poganja samo dve gumbasti bateriji (v seriji @6V 220mAh) z ocenjenim časom delovanja od 20 dni do 1 meseca (ne neprekinjeno). Zato je zmerno energetsko učinkovit in potrebuje tok 3-5 mA.

Samozaporno stikalo je nameščeno skrajno levo in je gumb za vklop/izklop. Gumb na sredini je gumb za nastavitev, gumb na desni pa se uporablja za spreminjanje vrednosti bpm in utripov (na vrstico).

Ko pritisnete stikalo za vklop/izklop, se LCD vklopi in prikaže vrednost utripov na palico. Počaka 3 sekunde, da uporabnik spremeni vrednost, nato pa za vnos vzame nastalo vrednost. Ta vrednost se giblje med 1/4, 2/4, 3/4, 4/4.

Nato prikaže utripe na minuto (bpm) in spet čaka 3 sekunde, da uporabnik spremeni vrednost, po kateri nastavi določeno vrednost. Ta čakalni čas 3 sekunde je umerjen, potem ko uporabnik spremeni vrednost. Vrednosti bpm se lahko razlikujejo od 30 do 240. S pritiskom gumba za nastavitev med nastavitvijo bpm se njegova vrednost ponastavi na 30 bpm, kar je v pomoč pri zmanjšanju števila klikov na gumb. Vrednosti bpm so večkratniki 5.

Po končani nastavitvi se osvetlitev LCD -ja izklopi, da se prihrani baterija. Zvočni signal za vsak utrip piska enkrat, LED -diode pa za vsakim utripom utripata ena za drugo. Če želite spremeniti vrednosti, pritisnite gumb za nastavitev. Ko to storite, se vklopi osvetlitev LCD -ja in poziv za utrip se prikaže, kot je bilo že omenjeno, po istem postopku.

Mikrokrmilnik Atmega8A je sestavljen iz 500 bajtov EEPROM -a, kar pomeni, da vse vrednosti utripov in utripov ostanejo shranjene tudi po izklopu metronoma. Zato ga znova vklopite in nadaljuje z istimi podatki, ki ste jih vnesli prej.

Priključek Relimate je pravzaprav glava SPI, ki se lahko uporablja za dva namena. Z njim lahko reprogramirate mikrokrmilnik Atmega8A za posodobitev vdelane programske opreme in dodajanje novih funkcij metronomu. Drugič, zunanji napajalnik se lahko uporablja tudi za napajanje metronoma za hardcore uporabnike. Toda to napajanje ne sme biti večje od 5,5 voltov in preglasi stikalo za vklop/izklop. Iz varnostnih razlogov to stikalo MORA biti izklopljeno, da zunanji napajalnik ne bi prišlo do kratkega stika z vgrajenimi baterijami.

4. korak: Opis

Ta projekt je narejen z mikrokrmilnikom Atmel Atmega8A, ki je programiran z uporabo Arduino IDE prek Arduino Uno/Mega/Nano, ki se uporablja kot programer ISP.

Ta mikrokrmilnik je manj priljubljena različica Atmela Atmega328p, ki se pogosto uporablja v Arduino Uno. Atmega8A je sestavljen iz 8Kb programabilnega pomnilnika z 1Kb RAM -a. Gre za 8 -bitni mikrokrmilnik, ki deluje na isti frekvenci kot 328p, to je 16 Mhz.

Ker je poraba toka pomemben vidik tega projekta, je bila frekvenca ure zmanjšana in uporabljen je notranji 1 MHz oscilator. To močno zmanjša trenutno potrebo na približno 3,5 mA pri 3,3 V in 5 mA pri 4,5 V.

Arduino IDE nima možnosti za programiranje tega mikrokrmilnika. Zato je bil nameščen paket "Minicore" (vtičnik) za zagon 8A z notranjim oscilatorjem z zagonskim nalagalnikom Optiboot. Ugotovljeno je bilo, da se je z naraščanjem napetosti potreba po projektu povečevala. Zato je bil za optimalno izrabo energije mikrokrmilnik nastavljen na 1 MHz z eno samo 3V kovančevo baterijo, ki porabi le 3,5 mA. Vendar je bilo ugotovljeno, da LCD pri tako nizki napetosti ne deluje pravilno. Zato je bila za povečanje napetosti na 6V uporabljena odločitev o uporabi dveh kovancev. Toda to je pomenilo, da se je trenutna poraba povečala na 15 mA, kar je bila velika pomanjkljivost, saj bi se življenjska doba baterije zelo zmanjšala. Prav tako je presegel mejo varne napetosti 5,5 V mikrokrmilnika 8A.

Zato je bil 330 ohmski upor serijsko priključen na 6V napajalnik, da se znebite te težave. Upor v bistvu povzroči padec napetosti na sebi, da zniža raven napetosti znotraj 5,5 V za varno delovanje mikrokrmilnika. Poleg tega je bila vrednost 330 izbrana ob upoštevanju različnih dejavnikov:

  • · Cilj je bil, da se 8A poganja pri čim nižji napetosti za varčevanje z energijo.
  • · Opaženo je bilo, da je LCD prenehal delovati pod 3,2 V, čeprav je mikrokrmilnik še vedno deloval
  • · Ta vrednost 330 zagotavlja, da so padci napetosti na skrajnih točkah natančni, da lahko v celoti izkoristite kovance.
  • · Ko so bile kovanne celice na vrhuncu, je bila napetost okoli 6,3 V, pri čemer je 8A prejela efektivno napetost 4,6 - 4,7 V (pri 5mA). In ko so se baterije skoraj izpraznile, je bila napetost okoli 8V pri 8A, LCD pa je prejel ravno dovolj napetosti, tj. 3,2 V za pravilno delovanje. (Pri 3,5 mA)
  • · Pod nivojem 4v v baterijah so bile dejansko neuporabne, brez soka, da bi karkoli napajal. Padec napetosti na uporu se ves čas spreminja, saj se trenutna poraba mikrokrmilnika 8A in LCD -ja zmanjšuje z zmanjšanjem napetosti, kar bistveno pripomore k podaljšanju življenjske dobe baterije.

16*2 LCD je bil programiran z vgrajeno knjižnico LiquidCrystal v Arduino IDE. Uporablja 6 podatkovnih zatičev 8A mikrokrmilnika. Poleg tega sta bila njegova svetlost in kontrast nadzorovana z dvema podatkovnima zatičema. To je bilo storjeno tako, da se ne uporablja dodatna komponenta, to je potenciometer. Namesto tega je bila za prilagoditev kontrasta zaslona uporabljena funkcija PWM podatkovnega zatiča D9. Tudi osvetlitev LCD -ja je morala biti izklopljena, ko ni potrebna, zato to ne bi bilo mogoče brez uporabe podatkovnega zatiča za napajanje. Za omejitev toka na LED osvetlitvi ozadja je bil uporabljen 220 ohmski upor.

Zvočnik in LED diode so bili povezani tudi s podatkovnimi zatiči 8A (za vsakega po enega). Za omejevanje toka na rdeči LED smo uporabili 5,6 k ohmski upor, za zeleno pa 1k ohm. Vrednosti upora so bile izbrane tako, da se med svetlostjo in porabo toka pridobi sladko mesto.

Gumb za vklop/izklop ni povezan s podatkovnim zatičem in je preprosto stikalo, ki preklopi projekt. Eden od njegovih priključkov se priključi na 330 ohmski upor, drugi pa na Vcc zatiče LCD -ja in 8A. Druga dva gumba sta povezana s podatkovnimi zatiči, ki sta notranje potegnjena navzgor za napajalno napetost prek programske opreme. To je potrebno za delovanje stikal.

Poleg tega je podatkovni zatič, s katerim se poveže gumb za nastavitev, pin za strojno prekinitev. Njegova rutina prekinitvenih storitev (ISR) je aktivirana v Arduino IDE. To pomeni, da kadar koli želi uporabnik zagnati nastavitveni meni, 8A prekine svoje trenutno delovanje kot metronom in zažene ISR, ki v bistvu aktivira meni za nastavitev. V nasprotnem primeru uporabnik ne bi mogel dostopati do nastavitvenega menija.

Zgoraj omenjena možnost EEPROM zagotavlja, da vneseni podatki ostanejo shranjeni tudi po izklopu plošče. Glava SPI obsega 6 zatičev - Vcc, Gnd, MOSI, MISO, SCK, RST. To je del protokola SPI in kot je bilo že omenjeno, lahko programer ISP znova programira 8A za dodajanje novih funkcij ali česar koli drugega. Vcc Vcc je ločen od pozitivnega priključka akumulatorja, zato Metronom ponuja možnost uporabe zunanjega napajalnika ob upoštevanju prej omenjenih omejitev.

Celoten projekt je bil zgrajen v Veroboardu s spajkanjem posameznih komponent in ustreznih povezav v skladu s shemo vezja.

Priporočena: