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ả

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.

HackadayPrize 2017 - Cuộc thi sáng tạo hàng đầu thế giới - Trị giá lên đến 250.000 Mỹ cành

Bạn muốn thử sức mình ở một cuộc thi tầm cỡ thế giới với giải thưởng lên đến 250.000 USD? Bạn muốn đưa ý tưởng của mình tiếp cận những quỹ đầu tư mạo hiểm về công nghệ? Hãy tham gia cuộc thi HackdayPrize 2017. Đây là một cuộc thi sẽ biến ý tưởng của bạn thành những làn sóng công nghệ quét qua hành tình trái đất. Tìm hiểu hoy.

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