arduino的pwm
理论来说arduino的pwm输出并不是使用到了内部的定时器
所以,某些情况下面还是会发生冲突。
而且,最大的问题是不能改变频率和占空比
arduino的pwm函数
analogWrite(引脚, PWM占空比);
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
引脚 | int | 单片机支持pwm输出的IO | 单片机io |
PWM占空比 | int | 输出的pwm占空比就是xxx/255 | 0到255之间 |
返回值 | 无 | 无 | 无 |
arduino的pwm发出特定频率声音
tone(引脚, 发声频率, 发声时长)
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
引脚 | int | 单片机支持pwm输出的IO | 单片机io |
发声频率 | int | 单位为赫兹 | int |
发声时长 | int | 单位为微秒 | int |
返回值 | 无 | 无 | 无 |
备注:
1、使用tone()函数时可能会影响引脚3和引脚11的PWM信号输出
2、如果你想要使用不同的引脚产生不同的声音音调,每一次更换发声引脚以前
都要使用noTone函数停止上一个引脚发声。Arduino是不支持两个引脚同时发声的。
3、arduino的音谱文件
arduino关闭pwm发出特定频率声音
noTone(引脚)
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
引脚 | int | 单片机支持pwm输出的IO | 单片机io |
返回值 | 无 | 无 | 无 |
使用方法
1、先初始io为输出模式
2、使用pwm函数
参考代码案例
int ledPin = 2;//led
int intvalue,value;
void setup() {
pinMode(ledPin,OUTPUT);//初始化led为输出模式
}
void loop(){
for (intvalue = 0 ; value < 255; value=value+1){//执行亮度增加
analogWrite(ledPin, value);//改变占用比
delay(5);
}
for (intvalue = 255; value >0; value=value-1){//执行亮度减少
analogWrite(ledPin, value);//改变占用比
delay(5);
}
}