关于单片机驱动三极管的问题
如图所示,我用的IO口是stc的单片机的准双向口,可是在IO口高电平的时候,蜂鸣器几乎没有声音,我把10k电阻拿掉,直接相连,声音大了一点,可还是很小。我用镊子把三极管的...
如图所示,我用的IO口是stc的单片机的准双向口,可是在IO口高电平的时候,蜂鸣器几乎没有声音,我把10k电阻拿掉,直接相连,声音大了一点,可还是很小。我用镊子把三极管的CE短接,蜂鸣器声音就会很大,我觉得这种情况就是IO驱动电流很小的原因,可我删掉其他程序,只保留这个IO口的输出,可声音还是很小,请问怎么回事?
展开
4个回答
展开全部
这个问题是三极管的问题,你可以将三极管换成S8050(NPN)的或者S8550(PNP)的。
另外你可以在三极管的基极接只20K左右的电阻到电源。从IO口输出的电阻换成1K至2K的,这样高电平驱动就是由20K驱动,而不是IO口驱动,能提高基极电流,而低电平由IO口拉低,IO口上的电阻只是限流,保护IO口不被损坏。而IO口的吸收电流远远大于输出电流。
其实如果蜂鸣器是5V集成震荡的,可以直接接入到IO口的,STC的单片机可以承受的,但是你不能在这其工作时再接其他大电流输入的了。个人建议不这样做,因为感觉还是不稳定,尽管我使用没有烧个单片机。
另外说点题外话,建议驱动这种电路的IO口不要使用P1.0和P1.1口,如果这两个口损坏了,单片机同样写不了程序的,这样就报废了,如果是其他口损坏了,只要不使用这个口就行了,单片机还是可以勉强使用的
另外你可以在三极管的基极接只20K左右的电阻到电源。从IO口输出的电阻换成1K至2K的,这样高电平驱动就是由20K驱动,而不是IO口驱动,能提高基极电流,而低电平由IO口拉低,IO口上的电阻只是限流,保护IO口不被损坏。而IO口的吸收电流远远大于输出电流。
其实如果蜂鸣器是5V集成震荡的,可以直接接入到IO口的,STC的单片机可以承受的,但是你不能在这其工作时再接其他大电流输入的了。个人建议不这样做,因为感觉还是不稳定,尽管我使用没有烧个单片机。
另外说点题外话,建议驱动这种电路的IO口不要使用P1.0和P1.1口,如果这两个口损坏了,单片机同样写不了程序的,这样就报废了,如果是其他口损坏了,只要不使用这个口就行了,单片机还是可以勉强使用的
2014-02-25
展开全部
因为三极管基极电流较大。建议你换成mos管,比如2n7002,只需要极微小电流就可以驱动很大的输出。
追问
三极管的基极电流很大吗?我觉得IO口德电流应该够用了啊
追答
假如buzzer的电流为100ma, 三极管beta值为100 ,则Ib至少1mA. 1mA*10k=10V. 也就是说电阻前至少需要10V, 你想吧,3.3V的单片机怎么能驱动得了呢?
换mos管吧,不消耗电流!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里的三极管是开关作用,不是放大作用,所以会这样,驱动不够,和你删除程序无关。
追问
那IO口改为推挽输出很好吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询