Điều chỉnh cao độ bằng núm vặn
Thuộc phần Đầu ra trong hành trình Arduino của Coddy. Bài học 12 trên 24.
Một núm xoay có thể điều khiển còi buzzer như một nhạc cụ. Ý tưởng giống như với bộ điều chỉnh độ sáng: đọc giá trị từ núm xoay, chuyển đổi giá trị đó rồi sử dụng.
Lần này, phạm vi mục tiêu là tần số. 200 Hz là tiếng ù trầm, còn 2000 Hz là tiếng huýt sáo cao, vì vậy:
int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);map() không cần phạm vi mới bắt đầu từ 0: 0 trở thành 200, 1023 trở thành 2000, còn vị trí giữa của núm xoay tương ứng với khoảng 1100.
Gọi lại tone() với tần số mới sẽ đổi nốt ngay lập tức, nên cao độ thay đổi theo núm xoay khi bạn xoay nó. Lệnh delay(10) ngắn giúp sketch không khởi động lại âm báo hàng nghìn lần mỗi giây.
Thử thách
DễNúm xoay nối với A0 và còi nối với chân 8. Hãy điều chỉnh núm xoay để thay đổi cao độ:
- đọc giá trị từ núm xoay
- dùng
map()để chuyển giá trị đọc được thành tần số từ 200 đến 2000 Hz - phát âm thanh bằng
tone(), sau đó chờ 10 ms
Nhấn Chạy rồi xoay núm, sau đó nhấn Kiểm tra.
Tự làm thử
const int knobPin = A0;
const int buzzerPin = 8;
void setup() {
}
void loop() {
// Đọc giá trị núm xoay, ánh xạ sang tần số từ 200 đến 2000 Hz rồi phát âm thanh
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Đầu ra
Tự luyện tập: Playground Arduino