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ả

Kết quả VMIG - Chúc mừng 40 + 10 dự án được vào vòng trong

Cuối cùng, chúng ta đã có kết quả vòng 1 - vòng loại ý tưởng của cuộc thi VMIG. Ngoài 40 dự án được tài trợ board và tài trợ tiền theo hoạch định ban đầu, chúng ta còn có thêm 10 dự án tiềm năng được tài trợ board (không được tài trợ tiền).

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

Hằng số thực

Tương tự như hằng số nguyên, hằng số thực (floating point constants) cũng có cách làm việc và sử dụng tương tự. Khi bạn viết một biểu thức tính toán, giá trị của biểu thức này sẽ được tính ra và trình biên dịch sẽ thay thế biểu thức này bằng một hằng số thực đã tính ra được. Điều đó gợi ý rằng trong những chương trình lớn, để giảm thời gian biên dịch, bạn nên tính trước giá trị của những biểu thức thay vì bắt trình biên dịch tính toán.

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