当前位置: 代码迷 >> 单片机 >> IO口发声有关问题
  详细解决方案

IO口发声有关问题

热度:130   发布时间:2016-04-28 14:44:37.0
IO口发声问题
大家都知道,用1个IO口可以模拟出PWM的信号.然后PWM可以用来驱动铜片发出一定频率的声音。如,4k的BEEP声.
如果在IO口与铜片间串入一个可调电阻,通过调节电阻的阻值,可以控制4k BEEP的声音大小。

现在有个问题想请教一下大家。
能否在不接可调电阻的情况下,用产生PWM的IO口,产生4k的BEEP声的同时,控制这个BEEP声 声音的大小。
------解决思路----------------------
你改变io的不同频率,和占空比也可改变声音大小
------解决思路----------------------
引用:
大家都知道,用1个IO口可以模拟出PWM的信号.然后PWM可以用来驱动铜片发出一定频率的声音。如,4k的BEEP声.
如果在IO口与铜片间串入一个可调电阻,通过调节电阻的阻值,可以控制4k BEEP的声音大小。

现在有个问题想请教一下大家。
能否在不接可调电阻的情况下,用产生PWM的IO口,产生4k的BEEP声的同时,控制这个BEEP声 声音的大小。


让占空比按正弦规律变化,变化的频率为4Khz,可能只能在4K附件吧,不会那么恰好是4khz,这和主频有关
------解决思路----------------------
PWM频率是不变的,但是其占空比是可变的,_
------解决思路----------------------
--
------解决思路----------------------
___   _
------解决思路----------------------
---
------解决思路----------------------
__ 假设高电平时间为T

让T=AASin(bt+c)
------解决思路----------------------
让T=A Sin(bt+c)
------解决思路----------------------
引用:
Quote: 引用:

PWM频率是不变的,但是其占空比是可变的,_
------解决思路----------------------
--
------解决思路----------------------
___   _
------解决思路----------------------
---
------解决思路----------------------
__ 假设高电平时间为T

让T=AASin(bt+c)

非常谢谢,太用心了。
我试试,
不过在单片机中使用Sin函数不是太好吧.
能否推荐一下代替sin函数的方式呢?


查表
------解决思路----------------------
用PWM信号改变占空比就可以达到控制声音大小
------解决思路----------------------
占空比就可以了
  相关解决方案