Mục lục:
Video: Arduino - Piano ba nút Piezo: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Đàn piano ba nút là một dự án dành cho người mới bắt đầu với một số kinh nghiệm sử dụng Arduino.
Tôi đã vô tình bị cuốn vào việc cố gắng tạo ra điều này trong khi chơi với bộ rung piezo lần đầu tiên. Nó rất lớn! Khi cố gắng tìm ra các phương pháp khác nhau để làm cho bộ rung êm hơn và thử các tần số khác nhau bằng cách sử dụng hàm tone () và noTone (), tôi nhận ra rằng có thể rất thú vị khi thử kết hợp bộ rung piezo với các thành phần yêu thích khác của Arduino. bộ: các nút và chiết áp.
Vật liệu cần thiết bao gồm:
- 1 Arduino
- 1 Breadboard
- 1 cáp USB
- Dây nhảy (nhiều màu)
- 1 Điện trở 330 Kilo-ohm
- 1 Piezo Buzzer
- 3 nút đẩy
- 1 chiết áp
Bước 1: Piezo Buzzer
Để bắt đầu, hãy thiết lập piezo trên breadboard của Arduino. Một bên của nó (bên chân ngắn hơn) cần phải chạy xuống đất. Mặt còn lại (phía chân dài hơn) cần kết nối với chân đầu vào kỹ thuật số. Tôi đã chọn kết nối nó với 8.
Bước 2: Đẩy các nút
Tiếp theo, đã đến lúc thiết lập các nút nhấn. Giống như piezo, các nút nhấn cần kết nối với mặt đất và với chân đầu vào kỹ thuật số.
Bước 3: Chiết áp
Bước cuối cùng trong quá trình xây dựng vật lý là chiết áp. Chiết áp có một vài dạng khác nhau. Chúng tôi sẽ sử dụng chiết áp như một bộ chia điện áp, vì vậy cả ba chân của nó cần được kết nối.
Chân phải: Thanh âm (Mặt đất)
Chân giữa: Chân tương tự 0
Chân trái: Thanh dương
Bước 4: Mã
Trong khi viết mã cho dự án này, tôi đã tham khảo thông tin về một số loại chức năng cụ thể:
tấn()
noTone () (Cuối cùng thì tôi không sử dụng cái này. Thay vào đó, tôi đã đặt tần suất thành "0".)
bản đồ()
Một tài liệu tham khảo tuyệt vời khác dành cho những người lần đầu sử dụng Piezo Buzzers có thể được tìm thấy tại đây. Mặc dù ý tưởng thay đổi âm thanh của bộ rung piezo có vẻ đơn giản nhưng lúc đầu có thể hơi quá sức!
Hàm tone () có thể được chia thành ba phần:
- Ghim (chốt mà bộ rung piezo được kết nối với)
- Tần số (tần số của âm thanh tính bằng hertz)
- Thời lượng (thời lượng của âm thanh được tính bằng mili giây)
Về cơ bản, nó trông như thế này: giai điệu (pin, tần số, thời lượng). Thành phần thứ ba (thời lượng) là tùy chọn, trong khi hai thành phần còn lại là cần thiết để bộ rung hoạt động. Thành phần "tần số" của chức năng âm báo là thành phần có thể được coi là "âm thanh" được tạo ra bởi bộ rung.
Bạn cũng sẽ nhận thấy rằng mã có hai bit mã khác. Có một số câu lệnh if / else được thiết lập để cho Arduino biết phải làm gì nếu các nút khác nhau được nhấn cũng như để thiết lập nó với "tần số = 0" trong các tình huống không có nút nào được nhấn. Trong các câu lệnh if / else, các hàm map () được sử dụng để ánh xạ tỷ lệ của chiết áp lên một tập hợp các tần số. Chúng có thể được thay đổi! Chơi xung quanh với các giá trị tần số khác nhau để xem bạn có thể nhận được những âm thanh khác nhau nào từ piezo.
Kiểm tra mã mà tôi đã sử dụng để tạo đàn piano ba nút tại đây hoặc kiểm tra bên dưới.
int piezoPin = 8; // Thiết lập pin kết nối với Piezo.
int sensorPin = 0; // Thiết lập chân kết nối với cảm biến (chiết áp). int sensorValue = 0;
int button1 = 5; // Thiết lập các chân đầu vào kết nối với các nút.
int button2 = 4; int button3 = 3;
int tần số = 0;
const int delayTime = 500; // Thiết lập một hằng số cho biến thời gian trễ trong hàm tone ().
void setup () {
pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }
void loop () {
sensorValue = analogRead (sensorPin); // Đọc cảm biến. // Ánh xạ các giá trị khác nhau của chiết áp thành một bộ tần số cho từng nút trong số ba nút. if (digitalRead (button1) == LOW) {frequency = map (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frequency = map (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frequency = map (sensorValue, 0, 1023, 600, 699); } else {tần số = 0; } tone (piezoPin, tần số, delayTime); // Thiết lập các hàm tone () với các biến. }
Đề xuất:
Nhấn nút); // Trò chơi Arduino LCD: 5 bước (có hình ảnh)
Nhấn nút); // Một trò chơi Arduino LCD: Gần đây trong Hướng đạo sinh, tôi đã làm việc trên huy hiệu bằng khen Thiết kế trò chơi. Đối với một trong những yêu cầu, tôi đã xây dựng trò chơi này bằng cách sử dụng Arduino dựa trên Trò chơi LED Rocker. Điểm của trò chơi là ghi được số điểm cao nhất có thể. Vào đầu t
Điều khiển Arduino Tốc độ và hướng động cơ DC bằng chiết áp, màn hình OLED & các nút: 6 bước
Điều khiển Arduino Tốc độ và hướng động cơ DC bằng chiết áp, màn hình OLED & các nút: Trong hướng dẫn này, chúng ta sẽ học cách sử dụng trình điều khiển ĐIỀU KHIỂN ĐỘNG CƠ DC L298N và chiết áp để điều khiển tốc độ và hướng động cơ DC bằng hai nút và hiển thị giá trị chiết áp trên Màn hình OLED. Xem video trình diễn
Cách sử dụng động cơ bước 28BYJ-48 với 3 nút đẩy: 5 bước
Cách sử dụng động cơ bước 28BYJ-48 với 3 nút ấn: Bạn có muốn điều khiển động cơ bước của mình bằng các nút ấn không? Điều đó có thể làm theo chiều kim đồng hồ, ngược chiều kim đồng hồ và sau đó dừng chức năng? Sau đó, video này là dành cho bạn
Bộ điều khiển bước được kích hoạt bằng nút: 4 bước
Bộ điều khiển bước được kích hoạt bằng nút:
Bộ vi điều khiển AVR. Chuyển đổi đèn LED bằng Công tắc nút nhấn. Nút nhấn Debouncing: 4 bước
Bộ vi điều khiển AVR. Chuyển đổi đèn LED bằng Công tắc nút nhấn. Nhấn nút Debouncing: Trong phần này, chúng ta sẽ tìm hiểu Cách tạo mã chương trình C cho ATMega328PU để chuyển đổi trạng thái của ba đèn LED theo đầu vào từ một công tắc nút. Ngoài ra, chúng tôi đã khám phá một giải pháp cho vấn đề là ‘Chuyển đổi số lần trả lại‘. Như thường lệ, chúng tôi sẽ