Sadržaj:
Video: Metronom baziran na mikrokontroleru: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Metronom je mjerni uređaj koji glazbenici koriste za praćenje ritmova u pjesmama i za razvoj osjećaja za mjerenje vremena kod početnika koji uče novi instrument. Pomaže u održavanju osjećaja ritma koji je ključan u glazbi.
Ovaj metronom izgrađen ovdje može se koristiti za postavljanje broja otkucaja po taktu i otkucaja u minuti. Nakon unosa ovih podataka o postavljanju, oglasit će se prema podacima uz odgovarajuće osvjetljenje pomoću LED dioda. Podaci o postavljanju prikazuju se na LCD zaslonu.
Korak 1: Potrebne komponente:
·
- Mikrokontroler Atmega8A
- · 16*2 LCD zaslon
- · Piezo zujalica
- · LED diode (zelena, crvena)
- · Otpornici (220e, 330e, 1k, 5.6k)
- · Tipke (2* protiv zaključavanja, 1* zaključavanje)
- · 3V CR2032 novčasta baterija (*2)
- Nosač baterije za novčiće (*2)
- · 6pin ponovni (polarizirani) konektor
Korak 2: Izrada kruga
Spojite krug kao što je prikazano na slici na veroboard -u i ispravno zalemite veze
Korak 3: Značajke Metronoma
Sučelje metronoma uglavnom zauzima LCD zaslon. Iznad njega je mikrokontroler 8A postavljen centralno sa LED diodama i zujalicom s desne strane. Tri prekidača i priključak za ponovno postavljanje nalaze se na vrhu.
Cijeli projekt pokreću samo dvije dugmaste baterije (u seriji @6V 220mAh) s procijenjenim trajanjem od 20 dana do 1 mjesec (ne kontinuirano). Stoga je umjereno učinkovit i ima trenutni zahtjev od 3 - 5 mA.
Samozaključavajući prekidač nalazi se krajnje lijevo i predstavlja gumb ON/OFF. Gumb u sredini je gumb za postavljanje, a gumb s desne strane koristi se za promjenu vrijednosti bpm i otkucaja (po traci).
Kad se pritisne prekidač za uključivanje/isključivanje, LCD se uključuje i prikazuje vrijednost otkucaja po traci. Čeka se 3 sekunde da korisnik promijeni vrijednost nakon čega dobivenu vrijednost uzima kao svoj ulaz. Ova vrijednost se kreće između 1/4, 2/4, 3/4, 4/4.
Zatim prikazuje otkucaje u minuti (bpm) i ponovno čeka 3 sekunde da korisnik promijeni vrijednost nakon čega postavlja određenu vrijednost. Ovo vrijeme čekanja od 3 sekunde kalibrirano je nakon što korisnik promijeni vrijednost. Vrijednosti bpm mogu varirati od 30 do 240. Pritiskom na tipku Setup tijekom postavljanja bpm vraća se vrijednost na 30 bpm što je korisno u smanjenju broja klikova na gumb. Vrijednosti bpm su višekratnici 5.
Nakon postavljanja, pozadinsko osvjetljenje LCD -a se isključuje radi uštede baterije. Zujalica se oglašava jednom za svaki otkucaj, a LED diode trepere jedna po jedna naizmjence za svaki otkucaj. Za promjenu vrijednosti, pritisnut je gumb Setup. Nakon toga, pozadinsko osvjetljenje LCD -a se uključuje i prompt za otkucaje pojavljuje se na isti način kao što je prije spomenuto, a nakon istog postupka.
Mikrokontroler Atmega8A sastoji se od 500 bajtova EEPROM -a, što znači da bez obzira na vrijednosti otkucaja i bpm ostaju pohranjeni čak i nakon isključivanja metronoma. Stoga ponovno uključivanje čini da se nastavi s istim podacima koji su prethodno uneseni.
Relimate konektor je zapravo SPI zaglavlje koje se može koristiti u dvije svrhe. Može se koristiti za reprogramiranje mikrokontrolera Atmega8A za ažuriranje firmvera i dodavanje novih značajki metronomu. Drugo, vanjsko napajanje također se može koristiti za napajanje metronoma za hardcore korisnike. Ali ovo napajanje ne smije biti veće od 5,5 volti i nadjačava prekidač za uključivanje/isključivanje. Iz sigurnosnih razloga ovaj prekidač MORA biti isključen kako vanjsko napajanje ne bi došlo do kratkog spoja s ugrađenim baterijama.
Korak 4: Opis
Ovaj projekt napravljen je pomoću mikrokontrolera Atmel Atmega8A koji je programiran pomoću Arduino IDE -a putem Arduino Uno/Mega/Nano koji se koristi kao ISP programer.
Ovaj mikrokontroler je manje opremljena verzija Atmela Atmega328p koji se naširoko koristi u Arduino Uno. Atmega8A se sastoji od 8Kb programabilne memorije s 1Kb RAM -a. To je 8 -bitni mikrokontroler koji radi na istoj frekvenciji kao i 328p tj. 16Mhz.
U ovom projektu, budući da je trenutna potrošnja važan aspekt, frekvencija takta je smanjena i koristi se unutarnji oscilator od 1 Mhz. Ovo uvelike smanjuje trenutnu potrebu na oko 3,5 mA @3,3 V i 5 mA @4,5 V.
Arduino IDE nema mogućnost programiranja ovog mikrokontrolera. Stoga je instaliran paket “Minicore” (dodatak) za pokretanje 8A s unutarnjim oscilatorom pomoću Optiboot bootloadera. Uočeno je da se potreba za energijom projekta povećava s povećanjem napona. Stoga je za optimalno korištenje energije mikrokontroler postavljen na rad na 1 MHz s jednom baterijom od 3V koja troši samo 3,5 mA. No uočeno je da LCD ne radi ispravno pri tako niskom naponu. Stoga je odluka o korištenju dvije novčane baterije u nizu primijenjena za povećanje napona na 6V. No to je značilo da se trenutna potrošnja povećala na 15 mA, što je bio veliki nedostatak jer bi se vijek trajanja baterije jako smanjio. Također je premašio granicu sigurnog napona od 5,5 V 8A mikrokontrolera.
Stoga je otpornik od 330 ohma serijski spojen na napajanje od 6 V kako bi se riješio ovog problema. Otpornik u osnovi uzrokuje pad napona na sebi kako bi smanjio razinu napona unutar 5,5 V za sigurno pokretanje mikrokontrolera. Nadalje, vrijednost 330 odabrana je uzimajući u obzir različite čimbenike:
- · Cilj je bio pokrenuti 8A na što nižem naponu radi uštede energije.
- · Uočeno je da je LCD prestao raditi ispod 3,2 V iako je mikrokontroler i dalje funkcionirao
- · Ova vrijednost 330 osigurava da padovi napona na ekstremima budu točno točni kako bi se u potpunosti iskoristile novčanice.
- · Kad su ćelije novčića bile na svom vrhuncu, napon je bio oko 6,3 V, pri čemu je 8A primala efektivni napon od 4,6 - 4,7 V (@ 5mA). A kad su se baterije gotovo isušile, napon je bio oko 4V s 8A, a LCD je primao dovoljno napona, tj. 3,2 V da bi ispravno funkcionirao. (@3,5 mA)
- · Ispod razine baterija od 4V, bile su učinkovito beskorisne bez ikakvog soka koji je mogao napajati bilo što. Pad napona na otporniku mijenja se cijelo vrijeme otkad se potrošnja struje 8A mikrokontrolera i LCD -a smanjuje sa smanjenjem napona što bitno pomaže u produljenju trajanja baterije.
LCD zaslon veličine 16*2 programiran je pomoću ugrađene biblioteke LiquidCrystal u Arduino IDE -u. Koristi 6 podatkovnih pinova 8A mikrokontrolera. Osim toga, njegova svjetlina i kontrast kontrolirani su pomoću dva pina za podatke. To je učinjeno kako se ne bi koristila dodatna komponenta, tj. Potenciometar. Umjesto toga, PWM funkcija podatkovnog pina D9 korištena je za podešavanje kontrasta zaslona. Također je pozadinsko osvjetljenje LCD -a moralo biti isključeno kada nije potrebno, pa to ne bi bilo moguće bez korištenja podatkovnog pina za napajanje. Za ograničavanje struje na LED pozadinskom osvjetljenju korišten je otpornik od 220 ohma.
Zvučni signal i LED diode također su spojeni na podatkovne pinove 8A (po jedan za svaki). Otpor od 5,6 k ohma korišten je za ograničavanje struje preko crvene LED, dok je 1k ohm korišten za zelenu. Vrijednosti otpornika odabrane su dobivanjem slatkog mjesta između svjetline i potrošnje struje.
Gumb za uključivanje/isključivanje nije spojen na podatkovni pin i jednostavno je prekidač koji mijenja projekt. Jedan od njegovih terminala spaja se na otpornik od 330 ohma, dok se drugi spaja na Vcc pinove LCD -a i 8A. Druga dva gumba spojena su na podatkovne pinove koji su interno povučeni za napajanje putem softvera. To je potrebno za rad prekidača.
Osim toga, podatkovni pin, na koji se povezuje gumb za postavljanje, je pin za prekid hardvera. Njegova rutina prekida usluga (ISR) aktivirana je u Arduino IDE -u. To znači da kad god korisnik želi pokrenuti izbornik za postavljanje, 8A obustavlja svoj trenutni rad kao metronom i pokreće ISR koji u osnovi aktivira izbornik za postavljanje. U suprotnom, korisnik ne bi mogao pristupiti izborniku Postavljanje.
Gore spomenuta opcija EEPROM -a osigurava da uneseni podaci ostanu pohranjeni čak i nakon isključivanja ploče. Zaglavlje SPI sastoji se od 6 pinova - Vcc, Gnd, MOSI, MISO, SCK, RST. Ovo je dio SPI protokola i kao što je već spomenuto, ISP programer može se koristiti za ponovno programiranje 8A za dodavanje novih značajki ili bilo čega drugog. Vcc pin je izoliran od pozitivnog priključka baterije, pa Metronom pruža mogućnost korištenja vanjskog napajanja imajući u vidu prethodno navedena ograničenja.
Cijeli projekt izgrađen je u Veroboardu lemljenjem pojedinih komponenti i odgovarajućih spojeva prema shemi strujnog kruga.
Preporučeni:
Višenamjenski kockasti sat baziran na položaju: 5 koraka (sa slikama)
Višenamjenski kockasti sat temeljen na položaju: Ovo je sat baziran na Arduinu s OLED zaslonom koji funkcionira kao sat s datumom, kao tajmer za drijemanje i kao noćno svjetlo. Različite " funkcije " kontroliraju se mjeračem ubrzanja i biraju rotiranjem kockastog sata
Inteligentni Romote automobil baziran na Arduinu: 5 koraka
Inteligentni Romote automobil temeljen na Arduinu: Ovaj projekt se temelji na razvojnoj ploči Arduino UNO za izradu pametnog automobila. Automobil ima Bluetooth bežično upravljanje, izbjegavanje prepreka, alarm zujalice i druge funkcije, a radi se o automobilu s pogonom na sva četiri kotača, lako se okreće
Sat baziran na Arduinu koji koristi DS1307 modul sata u stvarnom vremenu (RTC) i 0,96: 5 koraka
Arduino sat sa DS1307 modulom sata u realnom vremenu (RTC) i 0.96: Zdravo dečki, u ovom ćemo vodiču vidjeti kako napraviti radni sat pomoću modula sata realnog vremena DS1307 & OLED displeji. Dakle, očitavat ćemo vrijeme iz modula sata DS1307. I ispišite ga na OLED ekranu
Dotter - ogroman matrični pisač baziran na Arduinu: 13 koraka (sa slikama)
Dotter - ogroman matrični pisač baziran na Arduinu: Bok, dobrodošli u ovaj instruktor :) Ja sam Nikodem Bartnik, 18 -godišnji proizvođač. Napravio sam mnogo stvari, robota, uređaja kroz svoje 4 godine izrade. No, ovaj je projekt vjerojatno najveći po pitanju veličine. Također je vrlo dobro osmišljen, mislim
MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)
MicroPython IoT Rover Temeljen na WEMOS D1 (ESP-8266EX): ** Ažuriranje: Objavio sam novi video za v2 s kopljem ** Domaćin sam radionica Robotics za malu djecu i uvijek sam u potrazi za ekonomičnim platformama za izgradnju zanimljivih projekata. Iako su klonovi Arduino jeftini, koristi jezik C/C ++ koji djeca nisu