![Controler MIDI de bază Arduino: 5 pași Controler MIDI de bază Arduino: 5 pași](https://i.howwhatproduce.com/images/012/image-33237-j.webp)
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
![Controler MIDI de bază Arduino Controler MIDI de bază Arduino](https://i.howwhatproduce.com/images/012/image-33237-1-j.webp)
Introducere:
Sunt nou în ceea ce privește lucrul cu Arduino, dar sper să-mi extind cunoștințele învățându-i pe ceilalți și primind feedback. Acesta este un controler MIDI foarte simplu, cu 4 butoane și un potențiometru. Schița acestui proiect arată astfel:
1. Construiți panoul
2. Încărcați schița pe Arduino
3. Înțelegeți MIDI fără păr și bucla MIDI internă (loopbe1)
4. direcționați MIDI către un DAW (Ableton)
Provizii
1 x Arduino Mega 2560
1 x panou de pâine
1 x cablu USB
1 x Potențiometru
4 x butoane tactice
4 x rezistențe 120Ohm
14 x cabluri jumper pentru panou
Pasul 1: Construirea Breadboard-ului
![Construirea Breadboard-ului Construirea Breadboard-ului](https://i.howwhatproduce.com/images/012/image-33237-2-j.webp)
![Construirea Breadboard-ului Construirea Breadboard-ului](https://i.howwhatproduce.com/images/012/image-33237-3-j.webp)
Conectați panoul de verificare, astfel încât toate componentele să se potrivească cu imaginea 1 de mai sus. Fiecare buton ar trebui să arate la fel ca imaginea 2. Intrările butoanelor sunt 2, 3, 4 și 5 pe Arduino, iar pinul central al potențiometrului este conectat la intrarea ANALOG A0.
Pasul 2: încărcarea schiței
![Încărcarea schiței Încărcarea schiței](https://i.howwhatproduce.com/images/012/image-33237-4-j.webp)
Copiați și lipiți codul de mai jos în IDE-ul Arduino. Selectați placa corectă din „instrumente” și încărcați schița pe Arduino.
byte noteON = 144; // note on commandbyte note; // stocare pentru redarea curentă a butonului intPin1 = 2; butonul intPin2 = 3; butonul intPin3 = 4; butonul intPin4 = 5; int potPin = A0; boolean currentState = LOW; // stocare pentru starea curentă a butonului boolean lastState = LOW; // stocare pentru starea ultimului buton void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // de data aceasta vom seta pinul ca INPUT Serial.begin (9600); // inițializează conexiunea Serial} void loop () {int PotVal = analogRead (potPin); viteza octetului = hartă (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, viteza); // activați nota 60 cu 127 viteza întârziere (200); // formă brută de debouncing buton} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // dezactivați nota 60 pentru întârziere (2); // formă brută de debouncing de buton} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// dacă butonul tocmai a fost apăsat MIDImessage (noteON, 61, viteza); // activați nota 60 cu 127 viteză întârziere (200); // formă brută de buton debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // dezactivați nota 60 întârziere (2); // formă brută de buton debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// dacă butonul tocmai a fost apăsat MIDImessage (noteON, 62, viteza); // activați nota 60 cu 127 viteză întârziere (200); // formă brută de buton debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // dezactivați nota 60 întârziere (2); // formă brută de buton debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// dacă butonul tocmai a fost apăsat MIDImessage (noteON, 63, viteza); // activați nota 60 cu 127 viteză întârziere (200); // formă brută de buton debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // dezactivați nota 60 întârziere (2); // formă brută de buton debouncing} lastState = currentState; } // trimite mesaj MIDI void MIDImessage (comandă octet, octet date1, octet date2) {Serial.write (comandă); Serial.write (data1); Serial.write (data2); }
Sunt încă foarte nou în ceea ce privește scrierea codului în general ….. cei cu puțină experiență ar putea, probabil, să curețe acest lucru …
Pasul 3: Înțelegerea MIDI fără păr și a buclelor MIDI interne
![Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne](https://i.howwhatproduce.com/images/012/image-33237-5-j.webp)
![Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne](https://i.howwhatproduce.com/images/012/image-33237-6-j.webp)
![Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne Înțelegerea buclelor MIDI fără păr și a buclelor MIDI interne](https://i.howwhatproduce.com/images/012/image-33237-7-j.webp)
Arduino trebuie să ruleze printr-o punte serială ca Hairless MIDI apoi printr-o buclă MIDI internă, cum ar fi loopbe1 (sau magistrala IAC pentru Mac).
Notă: nu puteți încărca o schiță pe Arduino în timp ce este conectat la podul serial MIDI fără păr.
Selectați Arduino în portul serial Hairless MIDI și loopbe1 sau IAC Bus în ieșirea MIDI.
Notă: asigurați-vă că sunetul nu este activat când utilizați loopbe1.
Pasul 4: Conectarea la DAW
![Conectarea la DAW Conectarea la DAW](https://i.howwhatproduce.com/images/012/image-33237-8-j.webp)
Dacă primiți semnal către aplicația MIDI fără păr atunci când apăsați un buton de pe panou (luminile vor clipi), ar trebui să puteți trimite date MIDI către un DAW. Am folosit Ableton, dar orice DAW ar trebui să funcționeze. Asigurați-vă că bucla MIDI internă (loopbe1) este activată în preferințele dvs. DAW (în Ableton doriți ca „track” să fie activată). Apoi, selectați una dintre intrările dvs. de pistă MIDI în bucla MIDI (loopbe1) așa cum se arată în imaginea de mai sus.
Pasul 5: Joacă
![Image Image](https://i.howwhatproduce.com/images/012/image-33237-10-j.webp)
![](https://i.ytimg.com/vi/lw5NJ1GZUVY/hqdefault.jpg)
Butoanele vor funcționa acum ca orice alt controler MIDI! Potențiometrul va schimba viteza notelor trimise către DAW. Videoclipul (foarte întunecat …) de mai sus arată un sunet de pian în acțiune!
Recomandat:
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
![Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
YABC - încă un controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: 4 pași
![YABC - încă un controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: 4 pași YABC - încă un controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: 4 pași](https://i.howwhatproduce.com/images/002/image-5147-38-j.webp)
YABC - încă un alt controler Blynk - controler de temperatură și umiditate în cloud IoT, ESP8266: Bună ziua, producători, am început recent să cultiv ciuperci acasă, ciuperci de stridii, dar am deja 3x din aceste controlere acasă pentru controlul temperaturii fermentatorului pentru berea mea de acasă, soție face, de asemenea, acest lucru Kombucha acum și ca termostat pentru căldură
Luptător MIDI pe bază de Arduino (sensibil la atingere): 7 pași (cu imagini)
![Luptător MIDI pe bază de Arduino (sensibil la atingere): 7 pași (cu imagini) Luptător MIDI pe bază de Arduino (sensibil la atingere): 7 pași (cu imagini)](https://i.howwhatproduce.com/images/001/image-479-83-j.webp)
Arduino based MIDI Fighter (Touch Sensitive): MIDI înseamnă Interfață digitală pentru instrumente muzicale. Aici, facem un luptător MIDI sensibil la atingere. Are 16 tampoane. acestea pot fi crescute sau diminuate. Aici am folosit 16 din cauza pinilor arduino limitați. De asemenea, am folosit pinii de intrare analogici
Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: 7 pași (cu imagini)
![Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: 7 pași (cu imagini) Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: 7 pași (cu imagini)](https://i.howwhatproduce.com/images/001/image-430-115-j.webp)
Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: Acest controler luminează intermitent cu LED-uri tri-color pentru 50mS pe notă. Albastru pentru G5 la D # 6, roșu pentru E6 la B6 și verde pentru C7 la G7. Controlerul este un dispozitiv ALSA MIDI, astfel încât software-ul MIDI să poată ieși la LED-uri în același timp cu un dispozitiv de sintetizare MIDI
Tutorial de bază foarte de bază: 6 pași
![Tutorial de bază foarte de bază: 6 pași Tutorial de bază foarte de bază: 6 pași](https://i.howwhatproduce.com/images/005/image-12716-31-j.webp)
Tutorial Batch foarte de bază: dacă știți deja elementele esențiale ale lotului, NU este necesar să citiți acest instructable, continuați cu Tutorialul de bază nu atât de simplu. NOTĂ! ghilimele (dacă vedeți t