Inhoudsopgave:
- Stap 1: Functionele beschrijving
- Stap 2: Onderdelenlijst
- Stap 3: Bedradingsschema
- Stap 4: Arduino-broncode
Video: Arduino metronoom: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Als je als kind een nieuw muziekinstrument leert, zijn er zoveel nieuwe dingen om je op te concentreren. Het juiste tempo bijhouden is er daar één van. Het niet vinden van een functioneel complete en handige metronoom betekende het beste excuus om weer met mijn kinderen te gaan bouwen. In deze Instructables-post vindt u de functionele beschrijving, onderdelenlijst met webshop-links en prijzen, bedradingsschema voor montage en complete Arduino-broncode.
Stap 1: Functionele beschrijving
Het zou leuk zijn om een metronoomapparaat te hebben met de volgende functies om het thuis of op de muziekschool gemakkelijk te gebruiken.
- Compacte vormfactor om kleine plaatsen bovenop of naast muziekinstrumenten te passen,
- Werkt op batterijen, robuust en draagbaar om mee te nemen,
- Eenvoudig in te stellen, zelfs voor kinderen, BPM-waarde altijd weergegeven,
- Instelbare beats per minuut met een draaiknop, tot 240 BPM
- Hoorbare tact met volumeregeling,
- Stille modus om 's nachts met een koptelefoon te oefenen,
- Visuele feedback van beats (1/4, 2/4, 3/3, 4/4, 6/8, etc.) tot 8 LED's,
- Met of zonder hoofdaccent, met visuele en hoorbare feedback.
Als de metronoom wordt ingeschakeld, begint de metronoommodus bij 60 BPM, weergegeven op het kleine display en kan het tempo worden afgesteld met de draaiknop tussen 10 en 240. Neopixels tonen de beat in blauwe LED's terwijl de zoemer tikt. Door op de knop te drukken, wordt overgeschakeld naar de beat-aanpassingsmodus en groene LED's geven de ingestelde beat-structuur aan. Draaiknop verhoogt of verlaagt de beatstructuur (2/2, 3/3, 4/4, 6/8, enz.). Boven 8 LED's, verder met de klok mee draaiend, wordt het leidende accent ingeschakeld, en de eerste LED geeft dit in rood aan. Hoofdaccent krijgt ook hoorbare feedback. Het kan worden uitgeschakeld door tegen de klok in te draaien. Door op de knop te drukken, wordt teruggeschakeld van de beat-aanpassingsmodus naar de metronoommodus.
Stap 2: Onderdelenlijst
Je hebt een zaak nodig. Elke vorm of maat kan worden gekocht, maar we hebben een mooie zwarte metalen behuizing van een oude handmatige VGA-schakelaar weggegooid door een vriend. De overige onderdelen staan hieronder vermeld.
- 9V-batterij, USD 1,50
- Batterij connector kabel, USD 0, 16
- Arduino Nano met pin-headers, USD 2,05
- Nano IO-uitbreidingsschild, USD 1, 05
- Mini schuifschakelaar voor stroom, USD 0,15
- Piëzo-zoemer, $ 0, 86
- Adafruit Neopixel WS2812 8-bit, USD 1, 01
- OLED-scherm 128x64, USD 1, 53
- Roterende encoder, USD 0, 50
- Dupont kabels F/F, USD 0, 49
Totale prijs van de componenten is minder dan USD 10,-
Stap 3: Bedradingsschema
Gebruik het Nano IO-uitbreidingsbord om niet lastig te vallen met het solderen van meerdere GND- en VCC-verbindingen. Er is minimaal solderen nodig voor de Nano-pin-headers en voor de Neopixel-moduleconnectoren. Het gebruik van Dupont-draden zorgt voor stabiele verbindingen voor de rest van de bedrading, zoals weergegeven in het diagram. De 9V-batterij is verbonden met GND en VIN, de laatste via de stroomschuifschakelaar. De roterende encodermodule heeft een geïntegreerde schakelknop, die afzonderlijk in het diagram wordt weergegeven voor een beter begrip van hoe ze moeten worden aangesloten. Het roterende deel (CLK en DT) is verbonden met respectievelijk PIN2 en PIN3, omdat dit de enige NANO-pinnen zijn die kunnen worden onderbroken. Rotary GND is natuurlijk verbonden met Nano's GND PIN. De geïntegreerde schakelknop is verbonden met PIN4. Piëzo-zoemer is verbonden met PIN5 en GND. Adafruit Neopixel-module is verbonden met PIN7 en zijn VIN en GND met respectievelijk Nano's 5V en GND. Klein OLED-display is aangesloten op de I2C-businterface, dat is PIN A4 en A5 voor SDA en SDL. VCC en GND gaan natuurlijk naar Nano's 5V en GND. Dat concludeert onze Dupont-bedrading.
Stap 4: Arduino-broncode
// Metronoom, toonaangevend accent, visuele en hoorbare tactiek - 2019 Peter Csuray
#include #include #include #include #include "TimerOne.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reset pin # (of -1 als Arduino reset pin wordt gedeeld) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Draad, OLED_RESET); #define pin_neopixel 7 #define NUMPIXELS 8 #define HELDERHEID 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 bpmEerste = 0; // LED eerst aan, de rest uit … int tack = 4; bool leadingTack = false; int pos = 0; int curVal = 0; int prevVal = 0; void setup() { pixels.begin(); pinMode (pin_buzzer, UITGANG); Timer1.initialize(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); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Adres 0x3D voor 128x64 voor (;;); // Ga niet verder, loop voor altijd } display.clearDisplay(); weergave.weergave(); } void loop() {if (digitalRead(pin_switch)==LOW) {vertraging(100); while(digitalRead(pin_switch)==LAAG); vertraging (100); Timer1.detachInterrupt(); toonGreenTacks(); while(digitalRead(pin_switch)==HIGH) {if (curVal>prevVal) { tack+=1; if (tack>8) { if (leadingTack) tack = 8; anders { leadingTack = waar; tack = 1; } } } else if (curValprevVal) { bpm+=2; als (bpm>240) bpm = 240; } else if (curVal=100) display.print(" "); anders display.print(" "); display.print(bpm); weergave.weergave(); } void buzztick() { if (bpmFirst==0) { int volume = 4; if (leadingTack && pos==0) volume = 8; voor (int i=0; i
Aanbevolen:
Servo-metronoom, programmeerbaar voor verschillende snelheden - Ajarnpa
Servo-metronoom, programmeerbaar voor verschillende snelheden: maak je eigen metronoom. Alles wat je nodig hebt is de Arduino Mega 2560 starterkit en een compatibele computer
555-timer metronoom: 3 stappen
555-timer metronoom: Een metronoom is een apparaat dat een hoorbare klik of ander geluid produceert met een regelmatig interval dat door de gebruiker kan worden ingesteld, meestal in beats per minute (BPM). Muzikanten gebruiken het apparaat om het spelen met een regelmatige hartslag te oefenen.(https://en.wikipedia.org/w
Op microcontroller gebaseerde metronoom - Ajarnpa
Op microcontroller gebaseerde metronoom: een metronoom is een timingapparaat dat door muzikanten wordt gebruikt om de beats in liedjes bij te houden en om een gevoel voor timing te ontwikkelen bij beginners die een nieuw instrument leren. Het helpt om een gevoel voor ritme te behouden, wat cruciaal is in muziek. Deze metronoom bui
CPE 133 metronoom: 3 stappen
CPE 133 Metronoom: Voor ons afstudeerproject bij Cal Poly hebben we een apparaat voor het bijhouden van tempo gemaakt, een metronoom genaamd. We kozen dit project vanwege een interesse in muziek en digitaal ontwerp. We hebben eerdere labs in CPE 133 gebruikt om onze code te ontwerpen en online tutorials om te helpen bij co
Hoe maak je een elektronische metronoom: 8 stappen (met afbeeldingen)
Hoe maak je een elektronische metronoom: In deze Instructables zullen we een elektronische metronoom bouwen met behulp van eenvoudige elektronische componenten die te vinden zijn in elke elektronische winkel en tools die je waarschijnlijk al hebt. Laten we, voordat we er een gaan maken, enkele basisvragen beantwoorden, zoals: 1. Wat is een M