2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Tôi đã tìm thấy một chiếc loa nhỏ trong khi xé một chiếc P. C cũ. để tái chế và nghĩ rằng tôi sẽ thấy nó giống như thế nào bằng cách sử dụng chức năng Arduino Tone (). Tôi bắt đầu với một chiết áp 10Ω để kiểm soát cao độ và bắt đầu tạo ra một số tiếng ồn. Hàm Tone () sử dụng một mẫu xung đơn giản. Nó bật và tắt âm thanh ở các tần số khác nhau theo mô hình sóng vuông. Tôi có hai chiết áp khác nằm xung quanh nên tôi đã thêm chúng và sử dụng chúng để kiểm soát thời lượng âm báo. Một để kiểm soát độ dài của âm và một để kiểm soát khoảng lặng giữa các âm. Về cơ bản, nó sử dụng một mô hình sóng vuông khác nhưng ở tần số thấp hơn nhiều. Bạn có thể đạt được nhiều loại nhiễu tốt với mạch này. Nó cũng hoạt động tốt với bộ rung piezo, nhưng thiếu phản hồi âm trầm của loa.
Bước 1: Các bộ phận bạn sẽ cần
Arduino Uno
Breadboard và dây jumper
1 loa nhỏ hoặc bộ rung Piezo
1 công tắc nút bấm
3 chiết áp 10Ω
1 điện trở 22Ω
1 điện trở 10kΩ
Bước 2: Xây dựng mạch
Kết nối breadboard với chân Arduino 5V và GND của bạn. Đặt công tắc Pushbutton ở ngoài cùng bên phải hoặc bên trái của breadboard và kết nối nó với 5V và nối đất bằng điện trở 10kΩ. Kết nối dây từ mạch chuyển đổi với chân 2 trên Arduino của bạn.
Ở phía bên kia của breadboard, thiết lập mạch loa / piezo thành 5v và nối đất sử dụng điện trở 220Ω. Điện trở này kiểm soát dòng điện do đó kiểm soát âm lượng; bạn có thể thử các điện trở khác nhau ở đây để có âm lượng cao hơn hoặc thấp hơn.
Sắp xếp chiết áp của bạn ở trung tâm của bảng mạch để có đủ không gian để thao tác với các nút bấm. Mỗi nồi sẽ cần được kết nối với 5V và nối đất và các chân trung tâm trên mỗi nồi được kết nối với các chân analog A0, A1 và A2
Bước 3: Mã
Chiết áp hoặc nồi là một biến trở khi được kết nối với Arduino sẽ trả về giá trị từ 0 đến 1023. Chúng tôi sẽ sử dụng hàm map () để thay đổi các giá trị này cho phù hợp với nhu cầu của chúng tôi. Hàm map () nhận năm đối số và trong trường hợp của chúng tôi, chúng tôi cần ánh xạ lại phạm vi từ 220 đến 2200 để tạo ra âm thanh hợp lý.
Hàm trông giống như sau:
bản đồ (pot, 0, 1023, 220, 2200);
Bạn có thể thử với hai giá trị cuối cho âm tần số cao hơn và thấp hơn, chỉ cần cẩn thận là bạn không làm chó khó chịu.
Noise_Machine.ino
/ * Máy chống ồn sử dụng ba chiết áp được kết nối với đầu vào tương tự |
và một piezo hoặc loa nhỏ. Một nút bấm bật tiếng ồn, chiết áp |
kiểm soát cao độ bằng cách sử dụng chức năng Arduino tone () và hai độ trễ |
các giá trị kiểm soát độ dài của mỗi âm và độ dài giữa |
mỗi giai điệu. Chiết áp cho các giá trị tương tự được thay đổi |
sử dụng hàm map () thành các phạm vi lớn hơn hoặc nhỏ hơn để phù hợp với |
thị hiếu âm nhạc. |
Mã này thuộc phạm vi công cộng. |
Matt Thomas 2019-04-05 |
*/ |
constint buttonPin = 2; // Nút bấm chốt 2 |
loa constint = 9; // Loa hoặc piezo ở chân 9 |
int buttonState = 0; // Các biến cho nút |
int potZero; // và chiết áp |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Chân đầu ra loa / piezo |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Đọc trạng thái nút bấm |
potZero = analogRead (A0); // Các biến để đọc các giá trị tương tự |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = map (potZero, 0, 1023, 0, 8800); // Ánh xạ các bài đọc tương tự thành |
int high = map (potOne, 0, 1023, 0, 100); // phạm vi số mới và tạo |
int low = map (potTwo, 0, 1023, 0, 100); // biến mới |
if (buttonState == HIGH) {// Nếu nút ấn được nhấn… |
âm điệu (người nói, htz); // Bật âm thanh |
độ trễ (cao); // Độ dài của âm |
noTone (loa); // Tắt âm thanh |
độ trễ (thấp); // Thời gian cho đến giai điệu tiếp theo |
} khác { |
noTone (loa); // Không có âm báo nếu nút được nhả ra |
} |
} |
xem rawNoise_Machine.ino được lưu trữ với ❤ bởi GitHub
Bước 4: Kết thúc
Vì vậy, đó là tất cả những gì cần làm. Chơi xung quanh các giá trị trong mã, thêm nhiều chậu / nút hơn và xem bạn có thể kiểm soát những gì khác. Hãy cho tôi biết nếu tôi mắc phải bất kỳ sai lầm nào và tôi hy vọng bạn sẽ thích âm nhạc.