单片机高低电平是给低电平,开始报警,麻烦说下具体原理,怎么实现的,三极管是高还是低越仔细越好谢谢了!!!给

蜂鸣器是一种电子发声元器件鈳以发出"beep beep"的声音.  采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件蜂鸣器在电路中用字母“FM”、“H”或“HA” 或“ZZG”、“LB”、“JD”等表示。


蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种

有源蜂鸣器与无源蜂鸣器的区别:内部有否震荡源
注意:这里的“源”不是指电源,而是指震荡源
有源蜂鸣器内部带震荡源,所以只要一通電就会叫;
无源蜂鸣器内部不带震荡源所以如果用直流信号无法令其鸣叫。必须用2K-5K的波形脉冲信号去驱动它
有源蜂鸣器往往比无源的略貴就是因为里面多个震荡电路。

从外观上看两种蜂鸣器好像一样. 一般有源有源蜂鸣器比无源蜂鸣器厚一点. 

但是, 从外观上并不能绝对的區分出有源与无源,最可靠的做法除了查看产品的参数手册以外. 另一种方式是使用万用表测试蜂鸣器电阻只有8Ω或者16Ω的是无源蜂鸣器,电阻在几百欧以上的是有源蜂鸣器。

二、蜂鸣器模块实验(使用无源型蜂鸣器模块)

1, 无源蜂鸣器模块模块如下图:


蜂鸣器模块有三个管脚,其中  (图中右侧)标注‘-’的管脚接地(GND) 中间的管脚接 5V , (图中左侧)标注"S"的管脚接信号(数字I/O)

用三根杜邦线把模块接到开发板上,其中“-”脚接GND, 中间管脚接5V, "S"脚 接 D3口 ( D3口可以用作 PWM)

(所谓PWM, 指的是脉冲宽度调制脉冲宽度调制可以用数字管脚按某种频率输出波形的脉冲信号.  单片机高低电岼上某些数字IO口支持PWM功能, Arduino Nano的D3, D8支持PWM.   对于无源蜂鸣器, 必须用PWM输出波形的脉冲信号,才能驱动它发声)

程序说明:对于无源蜂鸣器模块,必须使用tone()函數通过PWM管脚,输出一个波形才能让无源蜂鸣器发声


三、蜂鸣器实验(使用蜂鸣器元器件自已搭电路

1, 准备元器件和器材


2, 蜂鸣器驱动电路原理图

蜂鸣器元件需要通过一个驱动电路接在单片机高低电平上. 典型的驱动电路原理图如下:

上述电路中用一个PNP型三极管做为控制开关,  图中FM昰蜂鸣器

三极管C极接GND,E极接蜂鸣器的负端三极管的B极通过一只1K-2K的电阻到单片机高低电平的GPIO脚 .  蜂鸣器的正端接VCC.

该电路中三极管相当于一个開关, 运行原理如下: 

1, 当GPIO输出高电平三极B极与E极间没有电压差,三极管E极与C极间不通蜂鸣器FM没有电流通过,蜂鸣器不响

2,当GPIO输出低電平三极B极与E极间形成电压差,三极管E极与C极之间导通电流通过蜂鸣器FM,如果是有源蜂鸣器则立即发出beep声

1脚=E(发射极电路图中帶箭头的那个)

2脚=B(基极,电路图中跟R相接的那个)

3脚=C(集电极与E相对的那个)


有源蜂鸣器是一通电就响的,两个脚分别是正负极,  两个腳一长一短, 短脚为负极, 长脚为正极接VCC. 本例用的是有源蜂鸣器要注意正负极。

而无源蜂鸣器的是需要波形信号驱动的两个脚没有正负极。

把三极管, 蜂鸣器,  电阻插入面包板, 按上述电路原理图用杜邦线接线,  接线如下图: 


有源蜂鸣器的正极(长脚)接5V,  负极(短脚)接三极管 E极

三极管B极接1K欧姆电阻,再接到Arduino D3脚

1 根据电路图,当D3脚输出低电压则有源蜂鸣器将发声(有源蜂鸣器不需要振荡波,因此不用tone()函数)

2, 根据电路圖当D3脚输出高电压,则有源蜂鸣器将停止发声

有源蜂鸣器的程序与上例采用无源蜂鸣器是不同的

1,连接一个有源蜂鸣器到Arduino开发板編写程序,让它发出以下模式的声音

   (1)长鸣: 鸣叫2秒停0.5秒

   (2)滴滴短声: 鸣叫0.5秒,停0.5秒

   (4)长短声: 鸣叫2秒停0.5秒,鸣叫0.5秒停0.5秒

2,在上述电路中测量有源蜂鸣器的电流是多少如何让有源蜂鸣器不要那么响? 

  测量题:有源蜂鸣器的电阻是多少

4,连接一个无源蜂鸣器到Arduino开发板编写一个程序,让它播放一首音乐比如:小蜜蜂
5,在上述电路中测量无源蜂鸣器的电流是多少如何让蜂鸣器不要那么响? 

  测量题:无源蜂鸣器的电阻是多少



看过之前很多STC自动下载方法这裏提供另外一个思路,欢迎指点

1. 起因    最近搞了个普中的51学习板研究,如下图厂家提供了一个自动下载程序,但是支持的芯片型号不多研究其电路发现,原理是靠串口的DTR端控制单片机高低电平复位和Arduino的原理差不多,不同是STC单片机高低电平下载时必须断电完成复位该電路就是DTR控制断电。

所以为了自动下载又可以用官方STC-ISP程序支持各种型号单片机高低电平考虑做一个外挂,达到下载程序时控制DTR达成断电複位2. 准备材料  

3. 硬件电路    原理就是DTR端控制单片机高低电平供电可以用学习板那套电路,以下为山寨供电电路凑合能用。

   软件原理主要是紸入代码到STC官方程序中挂钩打开串口函数CreateFile,在打开串口后执行上面两句控制DTR完成复位。涉及到部分IATHook知识有兴趣深入研究的可以看代碼,或者百度相关知识

   本软件相当于STC-ISP的外挂,运行时修改其代码环境不修改原始文件。代码在下面Delphi7环境编译。5. 整体效果

下载积分: 黑幣 -5

关于用GPIO口控制双向可控硅(5V电动机囷蜂鸣器)的问题

设计目标: 我有3个设备(电动机;蜂鸣器;AD模块),这些模块都要5v才能工作于是我就加一个升压板(3v升5V);但是我想控制这些模块的电源通断。于是用了4个双向可控硅Z0409MF并用4个GPIO口来控制。(图上没有AD模块)

GPIO口:低电平=接地;高电平=3.3V。

现在的情况: 我能控制升压板的开关GPIO口工作都正常(不接直流电动机的情况下)。

但是当我接上直流电动机后我无法控制直流电动机的通断。

检测单爿机高低电平发现单片机高低电平的几个GPIO口电压变成5.5V了. 

我觉得原因:当低电平有效时,感觉是A2脚的正向电压向G脚跑过去了而不是回到A1腳。这是为什么呢 

在我不重新画板的情况下, 能解决这些问题吗 比如将双向可控硅换成别的?(MOS管)

我要回帖

更多关于 单片机高低电平 的文章

 

随机推荐