TA的每日心情 | 怒 2023-7-25 22:49 |
---|
签到天数: 385 天 连续签到: 1 天 [LV.9]以坛为家II
|
今天学习Advanced I/O功能,使用的函数
tone()
说明
在一个引脚上产生一个特定频率的方波(50%占空比)。持续时间可以设定,否则波形会一直产生直到调用noTone()函数。该引脚可以连接压电蜂鸣器或其他喇叭播放声音。 在同一时刻只能产生一个声音。如果一个引脚已经在播放音乐,那调用tone()将不会有任何效果。如果音乐在同一个引脚上播放,它会自动调整频率。 使用tone()函数会与3脚和11脚的PWM产生干扰(Mega板除外)。
语法
tone(pin,frequency) tone(pin,frequency,duration)
参数
pin:要产生声音的引脚 frequency: 产生声音的频率,单位Hz,类型unsigned int duration:声音持续的时间,单位毫秒(可选),类型unsigned long注意事项
返回值
无
注意事项
如果你要在多个引脚上产生不同的音调,你要在对下一个引脚使用tone()函数前对此引脚调用noTone()函数。
noTone()
说明
停止由tone()产生的方波。如果没有使用tone()将不会有效果。
语法
noTone(pin)
参数
pin:所要停止产生声音的引脚。
返回值
无
注意事项
如果你想在多个引脚上产生不同的声音,你要在对下个引脚使用tone()前对刚才的引脚调用noTone()。
实验代码- int ledPin = 8;
- void setup() {
- // put your setup code here, to run once:
- pinMode(ledPin,OUTPUT);
- Serial.begin(9600);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- noTone(ledPin);
- tone(ledPin,1000);
- for(int i = 0;i<1000;i++)
- {
- Serial.println(i);
- delay(500);
- }
- }
复制代码 理论上应该是可以产生1000HZ的50%占空比的PWM的波型,可是测式的时候,并没有发现。不知道问题出在哪里,有没有高人给指点下。 |
评分
-
查看全部评分
|