![Pengawal Asas Arduino MIDI: 5 Langkah Pengawal Asas Arduino MIDI: 5 Langkah](https://i.howwhatproduce.com/images/012/image-33237-j.webp)
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01
![Pengawal MIDI Arduino Asas Pengawal MIDI Arduino Asas](https://i.howwhatproduce.com/images/012/image-33237-1-j.webp)
Pengenalan:
Saya baru bekerja dengan Arduino tetapi saya berharap dapat meluaskan pengetahuan saya dengan mengajar orang lain dan menerima maklum balas. Ini adalah pengawal MIDI yang sangat asas dengan 4 butang dan potensiometer. Garis besar untuk projek ini kelihatan seperti ini:
1. Bentukkan papan roti
2. Muat naik Sketsa ke Arduino
3. Fahami MIDI Tanpa Rambut dan gelung MIDI dalaman (loopbe1)
4. hala tuju MIDI anda ke DAW (Ableton)
Bekalan
1 x Arduino Mega 2560
1 x Papan Roti
1 x Kabel USB
1 x Potensiometer
4 x Butang Tact
Perintang 4 x 120Ohm
14 x kabel pelompat untuk papan roti
Langkah 1: Membangun Papan Roti
![Membangun Papan Roti Membangun Papan Roti](https://i.howwhatproduce.com/images/012/image-33237-2-j.webp)
![Membangun Papan Roti Membangun Papan Roti](https://i.howwhatproduce.com/images/012/image-33237-3-j.webp)
Sambungkan papan roti anda supaya semua komponen sesuai dengan gambar 1 di atas. Setiap butang akan kelihatan sama seperti gambar 2. Input butang adalah 2, 3, 4 dan 5 pada Arduino dan pin tengah potensiometer disambungkan ke input ANALOG A0.
Langkah 2: Memuat naik Lakaran
![Memuat naik Lakaran Memuat naik Lakaran](https://i.howwhatproduce.com/images/012/image-33237-4-j.webp)
Salin dan tampal kod di bawah ke dalam Arduino IDE. Pilih papan yang betul di bawah "alat" dan muat naik lakaran ke Arduino.
byte noteON = 144; // note on commandbyte note; // storan untuk bermain nota int butang Pin1 = 2; butang intPin2 = 3; butang intPin3 = 4; butang intPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage untuk keadaan butang semasa boolean lastState = LOW; // storan untuk keadaan butang terakhir tidak disiapkan () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // kali ini kita akan menetapkan pin sebagai INPUT Serial.begin (9600); // memulakan sambungan Serial} gelung void () {int PotVal = analogRead (potPin); kecepatan byte = peta (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // hidupkan nota 60 dihidupkan dengan 127 kelewatan kelajuan (200); // bentuk butang mentah melantunkan} lain jika (currentState == LOW && lastState == TINGGI) {MIDImessage (noteON, 60, 0); // putar nota 60 matikan kelewatan (2); // bentuk butang kasar yang melantunkan} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == RENDAH) {// jika butang baru sahaja ditekan MIDImessage (noteON, 61, velocity); // hidupkan nota 60 dihidupkan dengan 127 kelewatan kelajuan (200); // bentuk butang kasar debouncing} lain jika (currentState == LOW && lastState == TINGGI) {MIDImessage (noteON, 60, 0); // putar nota 60 off delay (2); // bentuk butang mentah debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// jika butang baru sahaja ditekan MIDImessage (noteON, 62, velocity); // hidupkan nota 60 dihidupkan dengan 127 kelewatan kelajuan (200); // bentuk butang kasar debouncing} lain jika (currentState == LOW && lastState == TINGGI) {MIDImessage (noteON, 60, 0); // putar nota 60 off delay (2); // bentuk butang mentah debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// jika butang baru sahaja ditekan MIDImessage (noteON, 63, velocity); // hidupkan nota 60 dihidupkan dengan 127 kelewatan kelajuan (200); // bentuk butang kasar debouncing} lain jika (currentState == LOW && lastState == TINGGI) {MIDImessage (noteON, 60, 0); // putar nota 60 off delay (2); // bentuk butang mentah debouncing} lastState = currentState; } // hantar mesej MIDI batal MIDImessage (perintah bait, data bait1, data bait2) {Serial.write (arahan); Serial.write (data1); Serial.write (data2); }
Saya masih baru dalam menulis kod secara umum….. mereka yang mempunyai sedikit pengalaman mungkin dapat membersihkannya…
Langkah 3: Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman
![Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman](https://i.howwhatproduce.com/images/012/image-33237-5-j.webp)
![Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman](https://i.howwhatproduce.com/images/012/image-33237-6-j.webp)
![Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman Memahami MIDI Tanpa Rambut dan Gelung MIDI Dalaman](https://i.howwhatproduce.com/images/012/image-33237-7-j.webp)
Arduino perlu melalui jambatan bersiri seperti MIDI Tanpa Rambut kemudian melalui gelung MIDI dalaman seperti loopbe1 (atau bas IAC untuk Mac).
Catatan: anda tidak boleh memuat naik lakaran ke Arduino semasa ia dihubungkan ke jambatan bersiri MIDI tanpa rambut.
Pilih Arduino anda di port bersiri MIDI Tanpa Rambut dan loopbe1 atau IAC Bus di MIDI keluar.
Catatan: pastikan bahawa bisu tidak aktif semasa menggunakan loopbe1.
Langkah 4: Menyambung ke DAW anda
![Menyambung ke DAW Anda Menyambung ke DAW Anda](https://i.howwhatproduce.com/images/012/image-33237-8-j.webp)
Sekiranya anda mendapat isyarat ke aplikasi MIDI Tanpa Rambut ketika anda menekan butang di papan roti (lampu akan berkedip) anda seharusnya dapat mengirim data MIDI ke DAW. Saya menggunakan Ableton tetapi mana-mana DAW mesti berfungsi. Pastikan gelung MIDI dalaman anda (loopbe1) diaktifkan mengikut pilihan DAW anda (di Ableton anda mahu "trek" diaktifkan). Seterusnya, pilih salah satu input trek MIDI anda ke gelung MIDI (loopbe1) seperti yang ditunjukkan dalam gambar di atas.
Langkah 5: Main
![Image Image](https://i.howwhatproduce.com/images/012/image-33237-10-j.webp)
![](https://i.ytimg.com/vi/lw5NJ1GZUVY/hqdefault.jpg)
Butang sekarang akan berfungsi seperti pengawal MIDI lain! Potensiometer akan mengubah halaju nota yang dihantar ke DAW. Video (sangat gelap …) di atas menunjukkan bunyi piano yang hebat dalam aksi!
Disyorkan:
Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
![Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Pengawal Permainan DIY Berasaskan Arduino | Pengawal Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Hai kawan-kawan, bermain permainan selalu menyeronokkan tetapi bermain dengan permainan peribadi DIY Controller anda lebih menggembirakan. Oleh itu, kami akan menjadikan Pengawal permainan menggunakan arduino pro micro dalam arahan ini
YABC - Namun Pengawal Blynk Lain - Pengawal Suhu dan Kelembapan Awan IoT, ESP8266: 4 Langkah
![YABC - Namun Pengawal Blynk Lain - Pengawal Suhu dan Kelembapan Awan IoT, ESP8266: 4 Langkah YABC - Namun Pengawal Blynk Lain - Pengawal Suhu dan Kelembapan Awan IoT, ESP8266: 4 Langkah](https://i.howwhatproduce.com/images/002/image-5147-38-j.webp)
YABC - Namun Pengawal Blynk Yang Lain - Pengawal Suhu dan Kelembapan Awan IoT, ESP8266: Hai Pembuat, Saya baru-baru ini mula menanam cendawan di rumah, cendawan tiram, tetapi saya sudah mempunyai 3x pengawal ini di rumah untuk kawalan Suhu Fermenter untuk bir rumah saya, isteri juga melakukan perkara Kombucha ini sekarang, dan sebagai Termostat untuk Panas
Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth lain: 7 Langkah (dengan Gambar)
![Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth lain: 7 Langkah (dengan Gambar) Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth lain: 7 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-430-115-j.webp)
Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth Lain-lain: Pengawal ini menyalakan lampu jalur LED triwarna untuk 50mS per nota. Biru untuk G5 hingga D # 6, merah untuk E6 hingga B6 dan hijau untuk C7 hingga G7. Pengawal adalah peranti ALSA MIDI sehingga perisian MIDI dapat mengeluarkan ke LED pada masa yang sama dengan peranti synth MIDI
OpenChord.org V0 - Bina Pengawal Gitar Sebenar Wira / Rock Band Pengawal: 10 Langkah
![OpenChord.org V0 - Bina Pengawal Gitar Sebenar Wira / Rock Band Pengawal: 10 Langkah OpenChord.org V0 - Bina Pengawal Gitar Sebenar Wira / Rock Band Pengawal: 10 Langkah](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10968123-openchord-org-v0-build-a-real-guitar-guitar-herorock-band-controller-10-steps-j.webp)
OpenChord.org V0 - Bangun Pengawal Wira Gitar Sebenar / Rock Band Pengawal: Kita semua suka Guitar Hero dan Rock Band. Kami juga tahu bahawa kami tidak akan pernah belajar bagaimana bermain gitar dengan bermain permainan ini. Tetapi bagaimana jika kita sekurang-kurangnya dapat membina alat kawalan Guitar Hero yang membolehkan kita menggunakan gitar sebenar? Itulah yang kami ada di OpenChord
Asas Yang Sangat Asas dari Laman Web berasaskan Div: 7 Langkah
![Asas Yang Sangat Asas dari Laman Web berasaskan Div: 7 Langkah Asas Yang Sangat Asas dari Laman Web berasaskan Div: 7 Langkah](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11123829-the-very-basics-of-a-div-based-website-7-steps-j.webp)
Asas Yang Sangat Asas dari Laman web yang berasaskan Div: Arahan ini akan menunjukkan kepada anda asas bagaimana membina laman web dengan div. Kerana jadual yang digunakan untuk susun atur adalah jahat !: pUntuk memahami arahan ini, anda perlu mengetahui html dan css asas. Sekiranya anda tidak memahami sesuatu, sila