2025-11-08 05:33:29
Arduino用数字引脚给喇叭发高低电平,调快电平切换速度就能变声音。比如用引脚10接喇叭,写代码让引脚10每秒亮100次就发出100赫兹音调,亮500次就是500赫兹。调亮灭时间比例叫占空比,占空比高声音响亮,低则轻。
为什么得用PWM波?因为普通高低电平切换会发出刺耳咔嗒声,而PWM波像连续的波浪,人耳听着更自然。数据说,人耳能分辨20-20000赫兹音调,所以代码里设频率在30-1000赫兹最保险。占空比建议用30%-70%,太低声音发闷,太高容易烧喇叭。比如500赫兹音调,占空比50%时亮灭各250毫秒,这样声音最圆润。
模拟效果:
Arduino数字引脚, PWM波
Arduino用数字引脚给喇叭发高低电平,调快电平切换速度就能变声音。比如用引脚10接喇叭,写代码让引脚10每秒亮100次就发出100赫兹音调,亮500次就是500赫兹。调亮灭时间比例叫占空比,占空比高声音响亮,低则轻。
为什么得用PWM波?因为普通高低电平切换会发出刺耳咔嗒声,而PWM波像连续的波浪,人耳听着更自然。数据说,人耳能分辨20-20000赫兹音调,所以代码里设频率在30-1000赫兹最保险。占空比建议用30%-70%,太低声音发闷,太高容易烧喇叭。比如500赫兹音调,占空比50%时亮灭各250毫秒,这样声音最圆润。
本题链接: