限流电阻太大了,限制单片机IO口输出的电流 |
是不是阻抗不匹配? |
把22脚的引线换成VCC电源,你这样反而多浪费一个IO |
郑坤锐 发表于 2021-6-13 13:58 它的R2阻值也是太大了刚才我看错了 |
QQ504 发表于 2021-6-14 11:36 这个阻值不建议改,建议去看一下手册的单片机驱动三极管电路的那部分内容,改的太小会影响单片机的高低电平的输出的! |
喇叭在集电极 改变一下R2的大小可能是 阻值问题 ![]() |
无源蜂鸣器要求驱动信号的频率在2000~4000Hz左右。 |
喇叭在集电极 |
改变一下R2的大小可能是 阻值问题 |
蜂鸣器直接挂在VDD上,用一个IO口驱动三极管导通关断蜂鸣器,图上的接法是不对的。 |
![]() |
硬件电路有问题,1,蜂鸣器1端接三极管e,另一端要接地。2,10k电阻太大了,可以考虑1K以下,甚至0 3.c极电阻去掉,直接接电源+。4.也可以考虑将蜂鸣器接到c极,e接地,c的电阻去掉,b极电阻1~2k左右。 程序:g4=1;NPN的三极管是导通的,关蜂鸣器g4=0; |
基本电路知识没有搞明白,电源+三级管驱动蜂鸣器,你接法都是错的。 |
R1去掉,Q1集电极直接电源 |
你的接法很奇怪 1、蜂鸣器既然有P6.2驱动Q1来驱动为啥还要接P4.0 2、NPN三极管驱动蜂鸣器不应该用射随放大模式,蜂鸣器应该接在电源正极与集电极之间 。 3、 你用1k电阻限流,蜂鸣器上能分到多少电压? |
除开电流小的问题,应该就是蜂鸣器的驱动频率不对。试试2K或者4K的频率 即电平125us翻转或者250us翻转 |
试试调低R2的阻值 |
void Buzzer_on() //蜂鸣器 { unsigned char i; g4=0; for (i=0;i<100;i++) { //for(j=0;i<1;j++) // { Delay1us(500); // } dab=~dab; //g4=~g4; //BEEP取反 } g4=1; //关闭蜂鸣器,蜂鸣器低电平触发。 } |