Indholdsfortegnelse:
Video: Arduino Metronome: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Når man lærer et nyt musikinstrument som barn, er der så mange nye ting at holde fokus på. At holde tempoet i det rigtige tempo er en af dem. Ikke at finde en funktionelt komplet og praktisk metronom betød den bedste undskyldning for at begynde at bygge igen med mine børn. I dette Instructables -indlæg finder du den funktionelle beskrivelse, deleliste med webshop -links og priser, ledningsdiagram til samling og komplet Arduino -kildekode.
Trin 1: Funktionel beskrivelse
Det ville være rart at have en metronom -enhed med følgende funktioner til bekvemt at bruge den hjemme eller på musikskolen.
- Kompakt formfaktor til at passe små steder ovenpå eller ved siden af musikinstrumenter,
- Batteridrevet, robust og bærbar at bære rundt på,
- Let opsat selv for børn, BPM -værdi vises altid,
- Justerbare slag i minuttet med en drejeknap, op til 240 BPM
- Hørbar takt med lydstyrkekontrol,
- Lydløs tilstand til øvelse med hovedtelefoner natten over,
- Visuel feedback af takter (1/4, 2/4, 3/3, 4/4, 6/8 osv.) Op til 8 lysdioder,
- Med eller uden ledende accent, med visuel og hørbar feedback.
Tændes, vil metronomtilstand starte ved 60 BPM, der vises på det lille display og lade tempoet indstilles af drejeknappen mellem 10 og 240. Neopixels viser takten i blå lysdioder, mens summeren tikker. Ved at trykke på knappen skifter til beat -justeringstilstand, og grønne lysdioder angiver den indstillede beat -struktur. Drejeknap øger eller formindsker taktstrukturen (2/2, 3/3, 4/4, 6/8 osv.). Over 8 lysdioder, der yderligere roterer med uret, vil den fremhævede accent blive tændt, og den første lysdiode angiver dette med rødt. Førende accent vil også have hørbar feedback. Det kan slukkes ved at dreje mod uret. Et tryk på knappen skifter tilbage fra beatjusteringstilstand til metronomtilstand.
Trin 2: Deleliste
Du skal bruge en sag. Enhver form eller størrelse kan købes, men vi havde et flot sort metalhus med en gammel manuel VGA -switch, der blev bortskaffet af en ven. Resten af delene er angivet nedenfor.
- 9V batteri, 1,50 USD
- Batterikonnektorkabel, USD 0, 16
- Arduino Nano med benhoveder, 2,05 USD
- Nano IO Extension Shield, USD 1, 05
- Mini skydekontakt til strøm, 0,15 USD
- Piezo -summer, 0 USD, 86
- Adafruit Neopixel WS2812 8-bit, USD 1, 01
- OLED -skærm 128x64, USD 1, 53
- Rotary encoder, USD 0, 50
- Dupont kabler F/F, USD 0, 49
Samlet pris på komponenterne er mindre end USD 10, -
Trin 3: Ledningsdiagram
Brug Nano IO -udvidelseskortet for ikke at bekymre dig om lodning af flere GND- og VCC -forbindelser. Minimal lodning vil være nødvendig for Nano -benhovederne og for Neopixel -modulets stik. Brug af Dupont -ledninger tillader stabile forbindelser til resten af ledningerne som vist på diagrammet. 9V -batteriet er tilsluttet GND og VIN, sidstnævnte via afbryderkontakten. Det roterende encodermodul har en integreret switch -knap, der er vist separat i diagrammet for lettere at forstå, hvordan de tilsluttes. Roterende del (CLK og DT) er forbundet til henholdsvis PIN2 og PIN3, fordi disse er de eneste NANO -ben, der kan afbryde håndteringen. Rotary GND er naturligvis forbundet med Nano's GND PIN. Den integrerede switch -knap er forbundet til PIN4. Piezo -summer er forbundet til PIN5 og GND. Adafruit Neopixel -modul er forbundet til PIN7 og dets VIN og GND til henholdsvis Nano's 5V og GND. Lille OLED -display er forbundet til I2C -busgrænsefladen, som er PIN A4 og A5 til SDA og SDL. VCC og GND går naturligvis til Nanos 5V og GND. Det afslutter vores Dupont -ledninger.
Trin 4: Arduino kildekode
// Metronom, Leading Accent, Visual & Audible Tact - 2019 Peter Csurgay
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reset pin #(or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display (SCREEN_WIDH, SCRE_ & Wire, OLED_RESET); #define pin_neopixel 7 #define NUMPIXELS 8 #define BRIGHTNESS 32 Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #define IDLE_11 0 #define SCLK_01 1 #define SCLK_00 2 #define SCLK_10 3 #define SDT_10 4 #define SDT_00 5 #define SDT_01 6 int state = IDLE_11; #define CLK 2 #define DT 3 #define pin_switch 4 #define pin_buzzer 5 int bpm = 60; int bpmFirst = 0; // LED tændt først, slukket i resten… int tack = 4; bool leadingTack = falsk; int pos = 0; int curVal = 0; int prevVal = 0; ugyldig opsætning () {pixels.begin (); pinMode (pin_buzzer, OUTPUT); Timer1.initialisere (1000000*60/bpm/2); Timer1.attachInterrupt (buzztick); pinMode (CLK, INPUT_PULLUP); pinMode (DT, INPUT_PULLUP); pinMode (pin_switch, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (CLK), rotaryCLK, CHANGE); attachInterrupt (digitalPinToInterrupt (DT), rotaryDT, CHANGE); hvis (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) {// Adresse 0x3D for 128x64 for (;;); // Fortsæt ikke, loop for evigt} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {delay (100); mens (digitalRead (pin_switch) == LOW); forsinkelse (100); Timer1.detachInterrupt (); showGreenTacks (); mens (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack+= 1; if (tack> 8) {if (leadingTack) tack = 8; ellers {leadingTack = true; tack = 1; }}} ellers hvis (curValprevVal) {bpm+= 2; hvis (bpm> 240) bpm = 240; } ellers hvis (curVal = 100) display.print (""); ellers display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volume = 4; hvis (leadingTack && pos == 0) volumen = 8; for (int i = 0; i
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
RC -sporet robot ved hjælp af Arduino - Trin for trin: 3 trin
RC Tracked Robot Using Arduino - Step by Step: Hey guys, I are back with another cool Robot chassis from BangGood. Håber du har gennemgået vores tidligere projekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot med Robotic Arms og The Badland Braw
555 Timer Metronome - Audio & Visual: 8 trin (med billeder)
555 Timer Metronome - Audio & Visual: Min søn er for nylig begyndt at spille ukulele, og jeg troede, at en metronom ville hjælpe med hans timing. Som producent regnede jeg med, at jeg ret let kunne piske en op med en 555 timer (hvad kan du ikke lave med en …) Efter lidt søgning på w
Lav et Chi Running "Metronome" MP3 -spor: 6 trin (med billeder)
Lav et Chi Running "Metronome" MP3 -spor: Lige før jeg begyndte at løbe i Vibram Five Fingers sidste år læste jeg også op på Chi Running -metoden udviklet af Danny Dreyer, så jeg kunne justere min løbestil. Jeg indså hurtigt, at endnu et redskab, en metronom, ville være nyttigt, men