【菜鸟FPGA VHDL学习帖】第9帖 蜂鸣器
(一) 蜂鸣器基本知识
(a)蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、电话机、报警器等中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器。
(b)有源蜂鸣器和无源蜂鸣器
从外观上看,如将两种蜂鸣器的引脚朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。
迸一步判断有源蜂鸣器和无源蜂鸣器还可以用万用表电阻Rxl档测试用黑表笔接蜂鸣器"+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。
(我实际操作,无源蜂鸣器的电阻为15.7欧姆。而有源蜂鸣器电阻一直显示0)
(网络摘抄)
注意,这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
无源蜂鸣器的优点是:1。便宜,2。声音频率可控,可以做出“多来米发索拉西”的效果。3。在一些特例中,可以和LED复用一个控制口 有源蜂鸣器的优点是:程序控制方便 。 (二) 原理图
这里主要是要知道蜂鸣器接的是FPGA哪个引脚,注意这个蜂鸣器电路只是测试,不太推荐使用。 (三) 例程
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY buzzer IS
PORT (
clk : IN std_logic;
dout : OUT std_logic);
END buzzer;
ARCHITECTURE arch OF buzzer IS
SIGNAL num: std_logic_vector(31 downto 0);
SIGNAL vet: std_logic := '0';
BEGIN
PROCESS(clk)
BEGIN
IF(clk'event and clk ='1') THEN
num <= num + 1;
IF(num = 48000) THEN
num <= "00000000000000000000000000000000";
vet <= vet XOR '1';
END IF;
END IF;
END PROCESS;
dout <= vet;
END arch;
[
本帖最后由 常见泽1 于 2013-10-3 23:53 编辑 ]