Spisu treści:

Metronom oparty na mikrokontrolerze: 5 kroków
Metronom oparty na mikrokontrolerze: 5 kroków

Wideo: Metronom oparty na mikrokontrolerze: 5 kroków

Wideo: Metronom oparty na mikrokontrolerze: 5 kroków
Wideo: Z konsultanta helpdesk'u do CIO -- wiedza i kompetencje niezbędne do zarządzania zespołem 2024, Lipiec
Anonim
Image
Image

Metronom to urządzenie do pomiaru czasu używane przez muzyków do śledzenia uderzeń w utworach i rozwijania wyczucia czasu wśród początkujących, którzy uczą się nowego instrumentu. Pomaga w utrzymaniu poczucia rytmu, który w muzyce jest kluczowy.

Ten zbudowany tutaj metronom może służyć do ustawiania liczby uderzeń na takt i uderzeń na minutę. Po wprowadzeniu tych danych konfiguracyjnych emituje sygnał dźwiękowy zgodnie z danymi wraz z odpowiednim oświetleniem za pomocą diod LED. Dane konfiguracji są wyświetlane na ekranie LCD.

Krok 1: Wymagane komponenty:

·

  • Mikrokontroler Atmega8A
  • · Wyświetlacz LCD 16*2;
  • · Piezo brzęczyk
  • · diody LED (zielone, czerwone)
  • · Rezystory (220e, 330e, 1k, 5,6k)
  • · Przyciski (2* antyblokujące, 1* blokujące)
  • · Bateria pastylkowa 3 V CR2032 (*2)
  • Uchwyt baterii pastylkowej (*2)
  • · 6-pinowe złącze Relimate (spolaryzowane)

Krok 2: Tworzenie obwodu

Wykonaj połączenia obwodów, jak pokazano na rysunku na veroboard i przylutuj połączenia prawidłowo

Krok 3: Funkcje metronomu

Interfejs metronomu zajmuje głównie ekran LCD. Powyżej umieszczono centralnie mikrokontroler 8A z diodami LED i brzęczykiem po prawej stronie. Trzy przełączniki i złącze Relimate znajdują się na górze.

Cały projekt jest zasilany tylko dwiema bateriami pastylkowymi (szeregowo @6V 220mAh) o szacowanym czasie pracy od 20 dni do 1 miesiąca (nie w sposób ciągły). Dzięki temu jest umiarkowanie wydajny energetycznie i ma zapotrzebowanie na prąd 3 – 5 mA.

Przełącznik samoblokujący znajduje się po lewej stronie i jest przyciskiem ON/OFF. Środkowy przycisk to przycisk Setup, a przycisk po prawej stronie służy do zmiany wartości bpm i uderzeń (na takt).

Po naciśnięciu przełącznika ON/OFF wyświetlacz włącza się i wyświetla wartość uderzeń na takt. Czeka 3 sekundy, aż użytkownik zmieni wartość, po czym przyjmuje wartość wynikową jako dane wejściowe. Ta wartość mieści się w zakresie 1/4, 2/4, 3/4, 4/4.

Następnie wyświetla liczbę uderzeń na minutę (bpm) i ponownie czeka przez 3 sekundy, aż użytkownik zmieni wartość, po czym ustawia konkretną wartość. Ten czas oczekiwania wynoszący 3 sekundy jest kalibrowany po zmianie wartości przez użytkownika. Wartości bpm mogą wynosić od 30 do 240. Naciśnięcie przycisku Setup podczas konfiguracji bpm resetuje jego wartość do 30 bpm, co jest pomocne w zmniejszeniu liczby kliknięć przycisków. Wartości uderzeń na minutę są wielokrotnościami 5.

Po zakończeniu konfiguracji podświetlenie lcd wyłącza się, aby oszczędzać baterię. Buzzer wydaje jeden sygnał dźwiękowy na każde uderzenie, a diody LED migają pojedynczo naprzemiennie dla każdego uderzenia. Aby zmienić wartości, wciskany jest przycisk Setup. Po wykonaniu tej czynności podświetlenie lcd włącza się, a monit o rytm pojawia się tak, jak wspomniano wcześniej, z tą samą procedurą później.

Mikrokontroler Atmega8A składa się z 500 bajtów pamięci EEPROM, co oznacza, że jakiekolwiek wartości uderzeń i uderzeń na minutę zostaną zapisane, nawet po wyłączeniu metronomu. Dlatego włączenie go ponownie powoduje wznowienie z tymi samymi danymi, które zostały wprowadzone wcześniej.

Złącze Relimate jest w rzeczywistości nagłówkiem SPI, którego można używać do dwóch celów. Można go wykorzystać do przeprogramowania mikrokontrolera Atmega8A w celu aktualizacji jego oprogramowania układowego i dodania nowych funkcji do metronomu. Po drugie, do zasilania metronomu dla zagorzałych użytkowników można również użyć zewnętrznego zasilacza. Ale to zasilanie nie może być większe niż 5,5 V i ma pierwszeństwo przed przełącznikiem ON/OFF. Ze względów bezpieczeństwa przełącznik ten MUSI być wyłączony, aby zasilanie zewnętrzne nie zwarło się z wbudowanymi bateriami.

Krok 4: Opis

Ten projekt jest wykonany przy użyciu mikrokontrolera Atmel Atmega8A, który jest programowany za pomocą Arduino IDE za pośrednictwem Arduino Uno/Mega/Nano używanego jako ISP Programmer.

Ten mikrokontroler jest mniej funkcjonalną wersją Atmel Atmega328p, która jest szeroko stosowana w Arduino Uno. Atmega8A składa się z 8Kb programowalnej pamięci z 1Kb RAM. Jest to 8-bitowy mikrokontroler pracujący na tej samej częstotliwości co 328p, czyli 16Mhz.

W tym projekcie, ponieważ pobór prądu jest ważnym aspektem, częstotliwość zegara została zmniejszona i zastosowano wewnętrzny oscylator 1 Mhz. To znacznie zmniejsza zapotrzebowanie na prąd do około 3,5 mA przy 3,3 V i 5 mA przy 4,5 V.

Arduino IDE nie ma możliwości programowania tego mikrokontrolera. W związku z tym zainstalowano pakiet „Minicore” (wtyczka), aby uruchomić 8A z jego wewnętrznym oscylatorem za pomocą bootloadera Optiboot. Zauważono, że zapotrzebowanie na moc projektu wzrastało wraz ze wzrostem napięcia. Dlatego dla optymalnego wykorzystania mocy mikrokontroler został ustawiony tak, aby działał z częstotliwością 1 MHz z pojedynczą baterią monetową 3 V pobierającą zaledwie 3,5 mA. Zaobserwowano jednak, że wyświetlacz LCD nie działał prawidłowo przy tak niskim napięciu. Stąd decyzja o zastosowaniu dwóch baterii pastylkowych połączonych szeregowo w celu podwyższenia napięcia do 6V. Ale to oznaczało, że pobór prądu wzrósł do 15mA, co było ogromną wadą, ponieważ żywotność baterii byłaby bardzo niska. Przekroczył również bezpieczny limit napięcia 5,5V mikrokontrolera 8A.

Stąd rezystor 330 omów został połączony szeregowo z zasilaczem 6V, aby pozbyć się tego problemu. Rezystor zasadniczo powoduje spadek napięcia na sobie, aby obniżyć poziom napięcia w granicach 5,5 V, aby bezpiecznie uruchomić mikrokontroler. Dodatkowo wartość 330 dobrano biorąc pod uwagę różne czynniki:

  • · Celem było uruchomienie 8A przy jak najniższym napięciu, aby oszczędzać energię.
  • · Zaobserwowano, że lcd przestał działać poniżej 3,2 V, chociaż mikrokontroler nadal działał
  • · Ta wartość 330 zapewnia, że skrajne spadki napięcia są dokładnie takie, aby w pełni wykorzystać baterie pastylkowe.
  • · Gdy ogniwa monety osiągały szczyt, napięcie wynosiło około 6,3 V, przy czym 8A odbierało efektywne napięcie 4,6 – 4,7 V (@ 5mA). A gdy baterie były prawie wyschnięte, napięcie wynosiło około 4V przy 8A i lcd otrzymywał wystarczające napięcie, tj. 3.2V, aby działać poprawnie. (@3,5mA)
  • · Poniżej poziomu 4V baterii były one praktycznie bezużyteczne bez pozostawienia soku do zasilania czegokolwiek. Spadek napięcia na rezystorze zmienia się przez cały czas, ponieważ pobór prądu mikrokontrolera 8A i wyświetlacza LCD zmniejsza się wraz ze spadkiem napięcia, co zasadniczo pomaga w wydłużeniu żywotności baterii.

Wyświetlacz LCD 16*2 został zaprogramowany przy użyciu wbudowanej biblioteki LiquidCrystal Arduino IDE. Wykorzystuje 6 pinów danych mikrokontrolera 8A. Dodatkowo jego jasność i kontrast kontrolowano za pomocą dwóch pinów danych. Zrobiono to tak, aby nie używać dodatkowego elementu, jakim jest potencjometr. Zamiast tego wykorzystano funkcję PWM pinu danych D9 do regulacji kontrastu ekranu. Również podświetlenie lcd musiało być wyłączone, gdy nie było potrzebne, więc nie byłoby to możliwe bez użycia pinu danych do jego zasilania. Rezystor 220 omów został użyty do ograniczenia prądu przez podświetlaną diodę LED.

Buzzer i diody LED były również podłączone do pinów danych 8A (po jednym dla każdego). Rezystor 5,6 kΩ został użyty do ograniczenia prądu na czerwonej diodzie LED, a 1 kΩ do zielonej diody. Wartości rezystorów zostały wybrane poprzez uzyskanie idealnego punktu między jasnością a poborem prądu.

Przycisk ON/OFF nie jest podłączony do pinu danych i jest po prostu przełącznikiem, który przełącza projekt. Jeden z jego zacisków łączy się z rezystorem 330 omów, podczas gdy drugi łączy się z pinami Vcc wyświetlacza LCD i 8A. Dwa pozostałe przyciski są podłączone do pinów danych, które są wewnętrznie podciągnięte do napięcia zasilania za pomocą oprogramowania. Jest to konieczne do działania przełączników.

Dodatkowo pin danych, z którym łączy się przycisk Setup, jest pinem przerwania sprzętowego. Jego procedura obsługi przerwań (ISR) jest aktywowana w Arduino IDE. Oznacza to, że za każdym razem, gdy użytkownik chce uruchomić menu ustawień, 8A zawiesza swoją obecną pracę jako metronom i uruchamia ISR, który zasadniczo aktywuje menu ustawień. W przeciwnym razie użytkownik nie będzie mógł uzyskać dostępu do menu Ustawienia.

Wspomniana wcześniej opcja EEPROM zapewnia, że wprowadzone dane pozostaną zapisane nawet po wyłączeniu płyty. A nagłówek SPI składa się z 6 pinów - Vcc, Gnd, MOSI, MISO, SCK, RST. Jest to część protokołu SPI i jak wspomniano wcześniej, programator ISP może być użyty do ponownego zaprogramowania 8A w celu dodania nowych funkcji lub czegokolwiek innego. Styk Vcc jest odizolowany od dodatniego zacisku akumulatora, dzięki czemu Metronom zapewnia opcję korzystania z zewnętrznego źródła zasilania, pamiętając o ograniczeniach wspomnianych wcześniej.

Całość została wykonana w płytce Veroboard poprzez lutowanie poszczególnych elementów i odpowiednich połączeń zgodnie ze schematem połączeń.

Zalecana: