Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15
Giới thiệu:
Tôi mới làm việc với Arduino nhưng tôi hy vọng sẽ mở rộng kiến thức của mình bằng cách dạy những người khác và nhận được phản hồi. Đây là một bộ điều khiển MIDI rất cơ bản với 4 nút và một chiết áp. Phác thảo cho dự án này trông như thế này:
1. Xây dựng breadboard
2. Tải Sketch lên Arduino
3. Hiểu MIDI không có lông và vòng lặp MIDI nội bộ (loopbe1)
4. định tuyến MIDI của bạn đến DAW (Ableton)
Quân nhu
1 x Arduino Mega 2560
1 x bảng bánh mì
1 x cáp USB
1 x chiết áp
4 x Nút Tact
Điện trở 4 x 120Ohm
14 x cáp jumper cho breadboard
Bước 1: Xây dựng Breadboard
Kết nối breadboard của bạn để tất cả các thành phần khớp với hình ảnh 1 ở trên. Mỗi nút phải giống như hình 2. Đầu vào của nút là 2, 3, 4 và 5 trên Arduino và chân giữa của chiết áp được kết nối với đầu vào ANALOG A0.
Bước 2: Tải lên bản phác thảo
Sao chép và dán mã bên dưới vào Arduino IDE. Chọn đúng bảng trong "công cụ" và tải bản phác thảo lên Arduino.
byte noteON = 144; // ghi chú trên ghi chú commandbyte; // lưu trữ cho ghi chú hiện đang phát int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // nét cho trạng thái nút hiện tại boolean lastState = LOW; // bộ nhớ cho trạng thái nút cuối cùng void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // lần này chúng ta sẽ đặt chân là INPUT Serial.begin (9600); // khởi tạo kết nối Serial} void loop () {int PotVal = analogRead (potPin); byte tốc độ = bản đồ (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, speed); // bật note 60 với độ trễ 127 vận tốc (200); // dạng thô của nút debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // tắt độ trễ của note 60 (2); // dạng thô của nút debouncing} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// nếu nút vừa được nhấn MIDImessage (noteON, 61, vận tốc); // bật note 60 với độ trễ 127 vận tốc (200); // dạng thô của nút debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // tắt độ trễ của note 60 (2); // dạng thô của nút debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// nếu nút vừa được nhấn MIDImessage (noteON, 62, vận tốc); // bật note 60 với độ trễ 127 vận tốc (200); // dạng thô của nút debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // tắt độ trễ của note 60 (2); // dạng thô của nút debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// nếu nút vừa được nhấn MIDImessage (noteON, 63, vận tốc); // bật note 60 với độ trễ 127 vận tốc (200); // dạng thô của nút debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // tắt độ trễ của note 60 (2); // dạng thô của nút debouncing} lastState = currentState; } // gửi thông báo MIDI void MIDImessage (byte command, byte data1, byte data2) {Serial.write (command); Serial.write (data1); Serial.write (data2); }
Tôi vẫn còn rất mới đối với việc viết mã nói chung….. những người có thêm một chút kinh nghiệm có thể làm sạch điều này…
Bước 3: Hiểu MIDI không có lông và các vòng MIDI nội bộ
Arduino cần chạy qua một cầu nối tiếp như MIDI không có lông sau đó thông qua một vòng lặp MIDI nội bộ như loopbe1 (hoặc bus IAC cho Mac).
Lưu ý: bạn không thể tải bản phác thảo lên Arduino khi nó được kết nối với cầu nối tiếp MIDI không có lông.
Chọn Arduino của bạn trong cổng nối tiếp MIDI không có lông và loopbe1 hoặc IAC Bus trong MIDI out.
Lưu ý: hãy chắc chắn rằng tắt tiếng không được bật khi sử dụng loopbe1.
Bước 4: Kết nối với DAW của bạn
Nếu bạn nhận được tín hiệu đến ứng dụng MIDI không có lông khi bạn nhấn một nút trên bảng mạch (đèn sẽ nhấp nháy), bạn sẽ có thể gửi dữ liệu MIDI tới DAW. Tôi đã sử dụng Ableton nhưng bất kỳ DAW nào cũng nên hoạt động. Đảm bảo rằng vòng lặp MIDI nội bộ của bạn (loopbe1) được bật trong tùy chọn DAW của bạn (trong Ableton, bạn muốn "theo dõi" được bật). Tiếp theo, chọn một trong các đầu vào bản nhạc MIDI của bạn vào vòng lặp MIDI (loopbe1) như thể hiện trong hình trên.
Bước 5: Chơi
Các nút bây giờ sẽ hoạt động giống như bất kỳ bộ điều khiển MIDI nào khác! Chiết áp sẽ thay đổi vận tốc của các ghi chú được gửi đến DAW. Đoạn video (rất tối…) ở trên cho thấy âm thanh đại dương cầm đang hoạt động!
Đề xuất:
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! -- Hướng dẫn Arduino IR: 5 bước (có hình ảnh)
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! || Hướng dẫn sử dụng Arduino IR: Trong dự án này, tôi sẽ chỉ cho bạn cách tôi định vị lại các nút vô dụng trên điều khiển từ xa của TV để điều khiển đèn LED phía sau TV. Bạn cũng có thể sử dụng kỹ thuật này để kiểm soát tất cả mọi thứ với một chút chỉnh sửa mã. Tôi cũng sẽ nói một chút về lý thuyết
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)
Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu