无源蜂鸣器驱动
无源蜂鸣器驱动这是一款购买的机器驱动的无源蜂鸣器测试到的波形,声音还比较大,用的是两个IO口直接连接到蜂鸣器两端。
自己设计的如果只用一个IO口用三极管驱动,蜂鸣器一端接电源3V另一端经过三极管到地反而声音更小!为了达到同样的声音大小,也想用两个IO和蜂鸣器直接连接!我要怎么跟软件工程是说?就说驱动的频率3.7K就可以?还需要告诉他哪些信息才能达到和参考产品一样的效果?比如声音大小 参考的产品两个IO口驱动.jpg(72.69 KB, 下载次数: 8)下载附件2020-9-7 17:09 上传一个IO驱动.jpg(15.64 KB, 下载次数: 11)下载附件2020-9-7 17:09 上传参考的产品无源蜂鸣器驱动的波形.jpg(107.44 KB, 下载次数: 9)下载附件2020-9-7 17:09 上传两个IO口驱动蜂鸣器,那应该是两支引脚的波形,两个通道测试再相加或相减的图象才对呀!
两个IO直接连接到蜂鸣器啊 !不知道你说啥东东
振幅是6.6V了 也就是两倍的VCC这个怎么做到的?比如IO口B3是给高3.3VB2给低也就是0V 交替给电平 反相 也就是0-3.3V啊 要有一个是-3.3V 3.3-(-3.3) 才能到6.6V啊!
这是参考产品压电无源蜂鸣器的驱动波形和自己产品压电无源蜂鸣器驱动波形 这是软件的延时搞得不对吗?
你的频率也太低了吧!蜂鸣器规格书上是4.8KHZ ,你才1.88KHZ.蜂鸣器规格是不会乱标的,出厂都会测试响度的。
那就是频率不对造成得咯?代码我明天叫他发出来 我是搞硬件的
void Beep(int iNum){ int i, j; DrvGPIO_PT9_EnableOUTPUT(0x01); DrvGPIO_PT9_EnableOUTPUT(0x02); for(i = 0; i < iNum; i++) {for(j = 0; j < 90; j++){ DrvGPIO_PT9_SetPortBits(0x01); DrvGPIO_PT9_ClrPortBits(0x02); Delay(43);//Delay(125);130 DrvGPIO_PT9_ClrPortBits(0x01); DrvGPIO_PT9_SetPortBits(0x02); Delay(43);//Delay(125);130} }// if(iNum > 1)//Delay(10000); DrvGPIO_PT9_DisableOUTPUT(0x01); DrvGPIO_PT9_DisableOUTPUT(0x02);}
为什么要调试呢,就是不理想向理想方向调。
程序是对的,只要调短延时,频率变高。
调短时间 声音都没了。
。
。
。
。
。
。
。
。
你的蜂鸣器是压电式的,这种需要电压高,响度才大。
你这种情况要换电磁式的蜂鸣器,声音响度会大些.
空间不够成本要低 所以用的是压电的。
。
。
用逻辑分析仪也抓了下波形(因为是方波,不知道选取哪个协议,选的IIC的协议,)波形如图,哪个可以进一步指示,谢谢