tone()

Giới thiệu

Hàm này sẽ tạo ra một sóng vuông ở tần số được định trước (chỉ nửa chu kỳ) tại một pin digital bất kỳ (analog vẫn được). Thời hạn của quá trình tạo ra sóng âm có thể được định trước hoặc nó sẽ phát ra âm thanh liên tục cho đến khi Arduino IDE chạy hàm noTone(). Chân digital đó cần được kết nối tới một buzzer hoặc một loa để có thể phát được âm thanh.

Lưu ý rằng, chỉ có thể sử dụng duy nhất mộ hàm tone() trong cùng một thời điểm. Nếu hàm tone() đang chạy trên một pin nào đó, bây giờ bạn lại tone() thêm một lần nữa thì hàm tone() sau sẽ không có hiệu lực. Nếu bạn tone() lên pin đang được tone() thì hàm tone() sau sẽ thay đổi tần số sóng của pin đó.

Trên mạch Arduino Mega, sử dụng hàm tone() thì sẽ can thiệp đến đầu ra PWM tại các chân digital 3 và digital 11.

Hàm tone() sẽ không thể phát ra âm thanh có tần số < 31 Hz. Để biết têm về kĩ thuật này, hãy xem trang này.

Chú ý: Nếu bạn muốn chơi nhiều cao độ khác nhau trên nhiều pin. Thì trước khi chơi trên một pin khác thì bạn phải noTone() trên pin đang được sử dụng.

Cú pháp

tone(pin, frequency)
tone(pin, frequency, duration) 

Tham số

pin: cổng digial / analog mà bạn muốn chơi nhạc (nói cách khác là pin được kết nối tới loa)

frequency: tần số của sóng vuông (sóng âm) - unsigned int

duration: thời gian phát nhạc, đơn vị là mili giây (tùy chọn) - unsigned long

Trả về

không

Ví dụ

Bài 12: Phát nhạc bằng Arduino với một cái loa hoặc buzzer

Reference Tags: 
lên
2 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Servo tester với attiny85 - Mạch kiểm tra lỗi servo - Tối ưu hóa code

Bài viết của bạn quá hay :D, nhưng phần code hơi dài một tí heart. Mình có viết lại cho nó ngắn hơn nhưng vẫn đảm bảo logic đây cool.

lên
9 thành viên đã đánh giá bài viết này hữu ích.

Sinh nhật lần thứ 11 của nền tảng Arduino - Món quà ý nghĩa cho Newbie từ Cộng đồng Việt Nam

Nền tảng Arduino đã có mặt ở trên thế giới được 11 năm, ở Việt Nam, nó cũng đã nhanh gia và do nhập vào những năm 2010 bởi những thành viên trong BQT Cộng đồng Arudino Việt Nam. Và cũng đã gần 2 năm kể từ ngày Cộng đồng Arduino Việt Nam chính thức đi vào hoạt động. Đây là nơi để các bạn - không phân biệt bất cứ ngành nghề, độ tuổi - quy tụ với nhau để cùng phát triển một thế hệ trẻ Việt Nam thông minh hơn dựa trên tinh thần vì cộng đồng nguồn mở và sự chia sẻ - quan tâm (share & care) giữa các thành viên trong Cộng đồng Việt Nam.

lên
16 thành viên đã đánh giá bài viết này hữu ích.