[求助]最小系统tone扬声器错误问题[已解决]
本帖最后由 donggan 于 2013-3-19 21:57 编辑自制了一个最小系统,之前在mango上正常的tone发声程序(《Arduino入门教程--第八课--用蜂鸣器模拟警报器》)。在最小系统上只能发出几个单调的声音,请问可能是什么原因?
最小系统环境:ATMEGA8A-PU、16M晶振+22p瓷片电容*2、VCC(PIN7)和GND(PIN8)间接了一个104瓷片电容(手上没有独石电容)、没有接PIN 20(AVCC)/21(AREF)/22 (GND)。扬声器正极串联了一个10uf电解电容。(最小系统测试控制LED、读取A0口数据是正常的)
已经测试过VCC和GND之间加不加电容、扬声器的正负极间加不加电容,声音都是不对。可能是什么地方错误呢?
==============分割线=====================
使用第三方库Tone替代tone(),可解决发声不对的问题。见4楼。 使用第三方Tone库发声正确。
代码如下:使用noteplayer.play(i); 代替 tone(4,i); 。发出了正确的警报声音。
#include <Tone.h>
Tone noteplayer;
void setup()
{
pinMode(4, OUTPUT);
noteplayer.begin(4);
}
void loop()
{
int count = sizeof(notes);
for(int i=200;i<=800;i++) //用循环的方式将频率从200HZ 增加到800HZ
{
noteplayer.play(i); //在四号端口输出频率
delay(5); //该频率维持5毫秒
}
delay(2000); //最高频率下维持2秒钟
for(int i=800;i>=200;i--)
{
noteplayer.play(i);
delay(5);
}
noteplayer.stop();
delay(1000);
}
Tone库
M8是有这种问题~~~貌似暂时无解,只能换168或者328芯片。 谢谢弘毅{:soso_e179:}。死心了现在就去买328 {:soso_e103:}居然有这么神奇的第三方库。。。不错不错。。。又学习了 收藏了感谢,找了很久
页:
[1]