找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4007|回复: 8
收起左侧

请问怎么按键控制蜂鸣器音量大小啊

[复制链接]
ID:367110 发表于 2018-7-9 11:33 | 显示全部楼层 |阅读模式
百度搜遍了也没找到例子。。。。有没有大神教教啊最简单的例子也可以。
听说无源的不能控制?那有源的呢
回复

使用道具 举报

ID:366893 发表于 2018-7-9 12:13 | 显示全部楼层
用PWM可调占空比控制音量。
回复

使用道具 举报

ID:342644 发表于 2018-7-9 12:53 | 显示全部楼层
有源无源的貌似都无法控制音量。
回复

使用道具 举报

ID:367110 发表于 2018-7-9 13:14 | 显示全部楼层
hayden 发表于 2018-7-9 12:13
用PWM可调占空比控制音量。

程序不太会写....
回复

使用道具 举报

ID:341045 发表于 2018-7-9 13:30 | 显示全部楼层
不能控制音量。音量大小是硬指标,参数定死的
回复

使用道具 举报

ID:320306 发表于 2018-7-9 13:50 | 显示全部楼层
有源的可以的,控制电压就行了!!
回复

使用道具 举报

ID:367901 发表于 2018-7-9 14:00 | 显示全部楼层
想办法控制电流啊 电流控制音量啊
回复

使用道具 举报

ID:367923 发表于 2018-7-9 14:17 | 显示全部楼层
貌似无法控制哎
回复

使用道具 举报

ID:142045 发表于 2018-7-9 15:23 | 显示全部楼层
1.可以用计数器然后控制三极管和蜂鸣器,可以简单用单片机实现计数功能,然后通过不同的电阻网络来调节电流。
2.用单片机输出pwm控制三极管然后控制蜂鸣器。仅供参考
#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int  
uchar count;
sbit  PWM=P2^0;
sbit  zz=P1^0;
uchar N=0;

void delay(uint k)
{  uchar i,j;
   for(i=0;i<k;i++)
    {for(j=0;j<121;j++)
        {;}
     }
}  

void T0_init()
{  TMOD=0x01;
   TH0=(65536-1000)/256;  
   TL0=(65536-1000)%256;  
   ET0=1;  
   TR0=1;
   EA=1;
}  

void time0(void) interrupt 1 using 1
{ TH0=(65536-1000)/256;  
  TL0=(65536-1000)%256;  
  count++;  
  if(count<=N) PWM=0;  
  else PWM=1;
  if(count>=100)
   count=0;
}

void main(void)
{
  T0_init();
   while(1)
    { if(!zz)          
     {delay(100);
            if(!zz)
                  {N=N+1;
                     if(N>100)
                           N=0;
                   }
          }  
          delay(100);
           }
            }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表