Trang chủ Điện - Điện tửArduinoHướng dẫn Arduino: Làm đàn piano mini

Hướng dẫn Arduino: Làm đàn piano mini

bởi Admin
14 lượt xem 3 Phút đọc
Arduino
Làm đàn piano mini đơn giản

Giới thiệu

Trong bài viết này, chúng ta sẽ thực hiện một dự án Mini Piano Arduino . Để thực hiện dự án này, chúng tôi đang sử dụng loa nhỏ để thu được âm thanh đầu ra và mạch Arduino UNO .

Chúng ta có thể chơi các nốt khác nhau bằng cách nhấn các nút bấm. Trong này chỉ có 8 nút bấm nhưng bạn có thể mở rộng chúng tùy theo lựa chọn của mình.

Bảng Tần Số các nốt nhạc trên piano

NỐT NHẠC (NOTE)TẦN SỐ (HZ)
A027,5
A#0 / Bb029.135
B030.868
C132,703
C#1 / Db134.648
D136,708
D#1 / Eb138.890
E141,203
F143.653
F#1 / Gb146.249
G149
G#1 / Ab151,913
A155
A#1 / Bb158.271
B161,735
C265.406
C#2 / Db269.296
D273.416
D#2 / Eb277.781
E282.407
F287.307
F#2 / Gb292.499
G298
G#2 / Ab2103,83
A2110
A#2 / Bb2116,54
B2123.47
C3130,81
C#3 / Db3138,59
D3146,83
D#3 / Eb3155,56
E3164,81
F3174,61
F#3 / Gb3184.99
G3195,99
G#3 / Ab3207,65
A3220
A#3 / Bb3233.08
B3246,94
C4261,62
C#4 / Db4277,18
D4293,66
D#4 / Eb4311,12
E4329,62
F4349,22
F#4 / Gb4369,99
G4392,00
G#4 / Ab4415,3
A4440
A#4 / Bb4466,16
B4493,88
C5523,25
C#5 / Db5554,37
D5587,32
D#5 / Eb5622,25
E5659,26
F5698.45
F#5 / Gb5739,99
G5783,99
G#5 / Ab5830,61
A5880
A#5 / Bb5932,32
B5987,77
C61046,5
C#6 / Db61108,7
D61174,7
D#6 / Eb61244,5
E61318,5
F61396,9
F#6 / Gb61480
G61568
G#6 / Ab61661,2
A61760
A#6 / Bb61864,7
B61975,5
C72093
C#7 / Db72217,5
D72349,3
D#7 / Eb72489
E72637
F72793,8
F#7 / Gb72960
G73136
G#7 / Ab73322.4
A73520
A#7 / Bb73729,3
B73951,1
C84186

Thành phần cần thiết

Sơ đồ kết nối

Arduino UNOKeypadSpeaker
5VVCC 
GNDGND-
D11 +
D9Key 8 
D8Key 7 
D7Key 6 
D6Key 5 
D5Key 4 
D4Key 3 
D3Key 2 
D2Key 1 

Dự án Mini Piano Arduino hoạt động như thế nào?

  • Dự án này sẽ tạo ra âm thanh có tần số cố định khi chúng ta nhấn nút ấn.
  • Tần số được xác định trước cho tất cả các nút trong code.
  • Sử dụng hàm tone(speakerPin, frequency) để tạo ra âm thanh có tần số mong muốn.
  • Để tắt còi, Sử dụng hàm noTone(speakerPin).

Code

const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Các chân kết nối nút nhấn
const int tones[] = {262, 294, 330, 349, 392, 440, 494, 523}; // Tần số các nốt nhạc (C4, D4, E4, F4, G4, A4, B4, C5)
const int speakerPin = 11;
void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(buttonPins[i], INPUT_PULLUP); // Cấu hình các chân nút nhấn là đầu vào với điện trở kéo lên
  }
  pinMode(speakerPin, OUTPUT); // Cấu hình chân loa là đầu ra
}
void loop() {
  for (int i = 0; i < 8; i++) {
    while (digitalRead(buttonPins[i]) == LOW) { // Kiểm tra nếu nút nhấn được nhấn
      tone(speakerPin, tones[i]); // Phát tần số tương ứng
      Serial.println(tones[i]);
    } 
  }
  noTone(speakerPin); // Dừng phát tần số
  Serial.print("");
}

Demo

 

Serial Monitor

 

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.