PWM 就是pulse width Modulation的缩写,意思就是脉冲宽度调制。通过调整输出信号占空比达到改变输出平均电压的目的。
例如端口的电压有两个,0V和5V。 如果要获得3V的电压可以通过分压来实现,但是如果我想输出的电压在0V 3V 3.5V 5V 这四个数值之间来回变动的话,单纯的分压是不行的(因为不能一直不停的切换电阻)。这种情况下就该使用PWM了,对于Ardunio的数字端口而言,只有两个数值,0或者1. 表示低电平或者是高电平。 我们把0 代表0V,数字1 代表5V。如果我们让Ardunio在一秒钟内输出500个信号,如果这500个信号全是1111111..... 那就以为着电压是5V。 如果全部信号都为0 那就以为着电压是0V。 如果是是10101010....这样 1和0交替出现的话,各出现一半,那么输出的电压就是2.5V啦。 于此可知3.5V电压是如何输出的。
因为本文作者使用的是Ardunio uno, 所以只有 3, 5, 6, 9, 10, 11 插口支持PWM。 本文中是采用11号插口来实现的。
在Ardunio中实现PWM的方式有三种,第一种是通过analogWrite(pin, value) 函数来实现PWM。第二种是用户自己动手实现PWM的方式,第三种是使用PWM寄存器的方式。
下面是电路的实际图
附上使用ardunio analogW

最低0.47元/天 解锁文章
3670

被折叠的 条评论
为什么被折叠?



