arduino 有源 蜂鸣器_(二十)arduino入门:蜂鸣器的使用

在这堂课中,大家将要了解如何使用蜂鸣器,蜂鸣器分为无源和有源两种。

第一步 准备材料

arduino uno

有源蜂鸣器

无源蜂鸣器

若干杜邦线

100Ω电阻一个

面包板

第二步 原理了解

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

有源蜂鸣器与无源蜂鸣器的区别:内部有否震荡源

注意:这里的“源”不是指电源,而是指震荡源。

有源蜂鸣器内部带震荡源,所以只要一通电就会叫;

无源蜂鸣器内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的波形脉冲信号去驱动它

有源蜂鸣器往往比无源的略贵,就是因为里面多个震荡电路。

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

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

第三步 无源蜂鸣器电路连接

无源蜂鸣器可以不分正负极直接一个脚鱼电阻串接到arduino的9号口。

另一个脚连接GND,如上图。

无源蜂鸣器程序:

其中程序用到了tone的频率控制库,需要单独下载放到库文件夹里。下载在最后面

int pinBuzzer = 9; //管脚D9连接到蜂鸣器模块的信号脚

void setup() {

pinMode(pinBuzzer, OUTPUT); //设置pinBuzzer脚为输出状态

}

void loop() {

long frequency = 300; //频率, 单位Hz

//用tone()函数发出频率为frequency的波形

tone(pinBuzzer, frequency );

delay(1000); //等待1000毫秒

noTone(pinBuzzer);//停止发声

delay(2000); //等待2000毫秒

}

设备:

暂无设备

平台:

ESP32 Dev Module

ESP32 Wrover Module

Node32s

Nano32

AI Thinker ESP32-CAM

ALKS ESP32

Adafruit ESP32 Feather

BPI-BIT

D-duino-32

Dongsen Tech Pocket 32

ESP32 FM DevKit

ESP32 Pico Kit

ESP32vn IoT Uno

ESPea32

ESPectro32

Electronic SweetPeas - ESP320

FireBeetle-ESP32

Frog Board ESP32

Heltec WiFi Kit 32

Heltec WiFi LoRa 32

Heltec WiFi LoRa 32(V2)

Heltec Wireless Stick

Hornbill ESP32 Dev

Hornbill ESP32 Minima

LOLIN D32

LOLIN D32 PRO

LoPy

LoPy4

M5Stack-Core-ESP32

M5Stack-FIRE

M5Stick-C

MH ET LIVE ESP32DevKIT

MH ET LIVE ESP32MiniKit

MagicBit

Microduino-CoreESP32

NodeMCU-32S ">Node32s

Noduino Quantum

ODROID ESP32

OLIMEX ESP32-DevKit-LiPo

OLIMEX ESP32-EVB

OLIMEX ESP32-GATEWAY

OLIMEX ESP32-PoE

OLIMEX ESP32-PoE-ISO

OROCA EduBot

Onehorse ESP32 Dev Module

Pycom GPy

Silicognition wESP32

SparkFun ESP32 Thing

SparkFun LoRa Gateway 1-Channel

T-Beam

TTGO LoRa32-OLED V1

TTGO T-Watch

TTGO T1

ThaiEasyElec's ESPino32

TinyPICO

Turta IoT Node

VintLabs ESP32 Devkit

WEMOS D1 MINI ESP32

WEMOS LOLIN32

WeMos WiFi&Bluetooth Battery

WiPy 3.0

Widora AIR

XinaBox CW02

u-blox NINA-W10 series (ESP32)

Generic ESP8266 Module

Generic ESP8285 Module

NodeMCU 0.9 (ESP-12 Module)

NodeMCU 1.0 (ESP-12E Module)

Arduino-ESP8266

ESPDuino (ESP-13 Module)

ESPectro Core

ESPino (ESP-12 Module)

ESPresso Lite 1.0

ESPresso Lite 2.0

LOLIN(WEMOS) D1 R2 & mini

LOLIN(WEMOS) D1 mini Lite

LOLIN(WEMOS) D1 mini Pro

Olimex MOD-WIFI-ESP8266(-DEV)

Phoenix 1.0

Phoenix 2.0

Schirmilabs Eduino WiFi

Seeed Wio Link

SparkFun Blynk Board

SparkFun ESP8266 Thing

SparkFun ESP8266 Thing Dev

SweetPea ESP-210

ThaiEasyElec's ESPino

WeMos D1 R1

WiFiduino

WifInfo

XinaBox CW01

4D Systems gen4 IoD Range

Adafruit Feather HUZZAH ESP8266

Amperka WiFi Slott

DOIT ESP-Mx DevKit (ESP8285)

Digistump Oak

ITEAD Sonoff

Invent One

Arduino Nano

Arduino Pro or Pro Mini

Arduino Uno

Arduino Uno WiFi

Arduino Mini

Arduino Mega or Mega 2560

Arduino Micro

Arduino Yun

Arduino Yun Mini

Adafruit Circuit Playground

LilyPad Arduino

LilyPad Arduino USB

Linino One

Arduino BT

Arduino Duemilanove or Diecimila

Arduino Esplora

Arduino Ethernet

Arduino Fio

Arduino Gemma

Arduino Industrial 101

Arduino Leonardo

Arduino Leonardo ETH

Arduino Mega ADK

Arduino NG or older

Arduino Robot Control

Arduino Robot Motor

Nucleo-32

Nucleo-64

Nucleo-144

Generic STM32F0 series

Generic STM32F1 series

Generic STM32F3 series

Generic STM32F4 series

Generic STM32H7 series

Generic STM32L0 series

Generic flight controllers

LoRa boards

Midatronics boards

STM32MP1 series coprocessor

Discovery

3D printer boards

Electronic speed controllers

Eval

编译

上传

int pinBuzzer = 9; //管脚D9连接到蜂鸣器模块的信号脚

void setup() {

pinMode(pinBuzzer, OUTPUT); //设置pinBuzzer脚为输出状态

}

void loop() {

long frequency = 300; //频率, 单位Hz

//用tone()函数发出频率为frequency的波形

tone(pinBuzzer, frequency );

delay(1000); //等待1000毫秒

noTone(pinBuzzer);//停止发声

delay(2000); //等待2000毫秒

}

第四步 有源蜂鸣器电路连接

有源蜂鸣器与无源蜂鸣器有点不一样,有源蜂鸣器最好是需要一个驱动电路。典型的驱动电路如下:

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

三极管集电极接GND,发射极接蜂鸣器的负端,三极管的基极极通过一只1K-2K的电阻到单片机的GPIO脚 .  蜂鸣器的正极接VCC.

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

1, 当GPIO输出高电平,三极基极与发射极间没有电压差,三极管发射极与集电极间不通,蜂鸣器LS1没有电流通过,蜂鸣器不响。

2,当GPIO输出低电平,三极基极与发射极间形成电压差,三极管发射极与集电极之间导通,电流通过蜂鸣器LS1,如果是有源蜂鸣器,则立即发出beep声。

(1) 三极管型号为 8550, 其引脚如下图:

如图所示

1脚=E(发射极,电路图三极管左侧那个脚)

2脚=B(基极,电路图中三极管中间那个脚)

3脚=C(集电极,电路图中右侧的那个脚)

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

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

三极管C极接地

有源蜂鸣器程序:

int pinBuzzer = 5; //管脚D5连接到蜂鸣器元件的基极

void setup() {

pinMode(pinBuzzer, OUTPUT); //设置pinBuzzer脚为输出状态

}

void loop() {

digitalWrite(pinBuzzer, HIGH);//输出HIGH电平,停止发声

delay(3000); //等待3000毫秒

digitalWrite(pinBuzzer, LOW);//输出LOW电平,发声

delay(1000); //等待1000毫秒

}

第五步 库文件下载与说明

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

运行效果: 蜂鸣器发出”beep beep”声音. 响一秒, 停两秒

本课程使用到的库文件:

隐藏内容,您需要满足以下条件方可查看

End


版权声明:本文为weixin_39609620原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>