Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11
Introduktion:
Jag är ny på att arbeta med Arduino men jag hoppas kunna utöka mina kunskaper genom att lära ut andra och få feedback. Detta är en mycket grundläggande MIDI -controller med 4 knappar och en potentiometer. Konturet för detta projekt ser ut så här:
1. Bygg ut brödbrädan
2. Ladda upp skissen till Arduino
3. Förstå Hairless MIDI och intern MIDI loop (loopbe1)
4. dirigera din MIDI till en DAW (Ableton)
Tillbehör
1 x Arduino Mega 2560
1 x brödbräda
1 x USB -kabel
1 x Potentiometer
4 x taktknappar
4 x 120 Ohm motstånd
14 x bygelkablar för brödbräda
Steg 1: Bygga ut brödbrädan
Anslut din brödbräda så att alla komponenter matchar bild 1 ovan. Varje knapp ska se ut som på bild 2. Knappens ingångar är 2, 3, 4 och 5 på Arduino och potentiometerns mittstift är ansluten till ANALOG -ingång A0.
Steg 2: Ladda upp skissen
Kopiera och klistra in koden nedan i Arduino IDE. Välj rätt tavla under "verktyg" och ladda upp skissen till Arduino.
byte noteON = 144; // note on commandbyte note; // storage for currently playing note int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage för aktuellt knappläge boolean lastState = LOW; // lagring för senaste knapptillståndets tomrumsinställning () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // denna gång kommer vi att ställa in stiftet som INPUT Serial.begin (9600); // initialisera Serial connection} void loop () {int PotVal = analogRead (potPin); bytehastighet = map (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // slå på not 60 med 127 hastighetsfördröjning (200); // rå form av knappnedslagning annars om (currentState == LÅG && lastState == HIGH) {MIDImessage (noteON, 60, 0); // stäng av not 60 fördröjning (2); // grov form av knappnedbrytning} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// om knappen just har tryckts på MIDImessage (noteON, 61, hastighet); // slå på not 60 med 127 hastighetsfördröjning (200); // rå form av knapp debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // stäng av anteckning 60 fördröjning (2); // rå form av knappnedbrytning} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// om knappen just har tryckts på MIDImessage (noteON, 62, hastighet); // slå på not 60 med 127 hastighetsfördröjning (200); // rå form av knapp debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // stäng av anteckning 60 fördröjning (2); // rå form av knappnedbrytning} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// om knappen just har tryckts på MIDImessage (noteON, 63, hastighet); // slå på not 60 med 127 hastighetsfördröjning (200); // rå form av knapp debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // stäng av not 60 fördröjning (2); // grov form av knappnedbrytning} lastState = currentState; } // skicka MIDI -meddelande void MIDImessage (byte -kommando, byte data1, byte data2) {Serial.write (kommando); Serial.write (data1); Serial.write (data2); }
Jag är fortfarande väldigt ny på att skriva kod i allmänhet ….. de med lite mer erfarenhet kan nog städa upp det här …
Steg 3: Förstå Hairless MIDI och Intern MIDI Loops
Arduino måste köra genom en seriell bro som Hairless MIDI sedan genom en intern MIDI -slinga som loopbe1 (eller IAC -buss för Mac).
Obs: du kan inte ladda upp en skiss till Arduino medan den är ansluten till den hårlösa MIDI -seriella bron.
Välj din Arduino i Hairless MIDI seriell port och loopbe1 eller IAC Bus i MIDI out.
Obs! Se till att ljudet inte är på när loopbe1 används.
Steg 4: Ansluter till din DAW
Om du får signal till Hairless MIDI -appen när du trycker på en knapp på panelen (lamporna blinkar) bör du kunna skicka MIDI -data till en DAW. Jag använde Ableton men alla DAW borde fungera. Se till att din interna MIDI -loop (loopbe1) är aktiverad i dina DAW -inställningar (i Ableton vill du att "spår" ska aktiveras). Välj sedan en av dina MIDI -spåringångar till MIDI -slingan (loopbe1) enligt bilden ovan.
Steg 5: Spela
Knapparna fungerar nu som alla andra MIDI -kontroller! Potentiometern ändrar hastigheten på de anteckningar som skickas till DAW. Videon (mycket mörk …) ovan visar ett flygelljud i aktion!
Rekommenderad:
Grundläggande Arduino Light Intensity Lamp !: 5 steg
Grundläggande Arduino Light Intensity Lamp!: Dagens krets är ett roligt litet Arduino -projekt för karantän! Denna krets fokuserar på två intressanta material; reläet SPDT & Fotoresistor. Dessutom är syftet med relä att vara en omkopplare i en krets elektroniskt. Dessutom fotor
Arduino Uno Handledning #1 - Grundläggande blinkprogram: 4 steg
Arduino Uno Tutorial #1 - Basic Blink Program: Hej alla! Jag är glad att publicera min första instruerbara! Den här tanken kom till mig när jag hade svårt att få min Arduino Uno att fungera, så eftersom jag hade några svårigheter kommer jag att förklara för alla här ute att sådana som jag inte känner till
6 år gammal skapar grundläggande trafikljus med repor för Arduino: 3 steg
6 år gammal skapade grundläggande trafikljus med repor för Arduino: Min son var redan nyfiken på mina Arduino -projekt. Han spelade ett tag med Snap Circuits och LEGOHe började också bygga några Scratch -projekt. Det var bara en tidsfråga för oss att spela med Scratch för Arduino. Detta är vårt första projekt. Ob
10 grundläggande Arduino -projekt för nybörjare! Gör minst 15 projekt med en enda bräda !: 6 steg
10 grundläggande Arduino -projekt för nybörjare! Gör minst 15 projekt med en enda bräda !: Arduino Project &Handledningstavla; Innehåller 10 grundläggande Arduino -projekt. Alla källkoder, Gerber -filen och mer. Ingen SMD! Enkel lödning för alla. Lätt avtagbara och utbytbara komponenter. Du kan göra minst 15 projekt med en enda
Grundläggande Arduino jordbävningsdetektor: 7 steg (med bilder)
Grundläggande Arduino jordbävningsdetektor: Tiny9 är tillbaka och idag ska vi göra en enkel Arduino jordbävningsdetektor. Besök min instruerbara gränssnitt med Tiny9s LIS2HH12 i länken nedan för att konfigurera enheten så allt du behöver göra är att lägga till ett 3 motstånd och 3 ljusemitteringar