极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14566|回复: 4

OCROBOT入门教程011--蜂鸣器

[复制链接]
发表于 2014-4-25 16:09:34 | 显示全部楼层 |阅读模式
本帖最后由 董董soul 于 2016-10-27 10:59 编辑

蜂鸣器分电磁式和压电式,每种里面还会分有源与无源。这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。

这节课我们驱动一个阻抗为16Ω的无源蜂鸣器,让他发出声音。

我们看一下硬件连接图






程序部分我们试用数字引脚输出,然后通过delay控制延时来输出一个振荡源。

  1. int buzzer=7;//设置控制蜂鸣器的数字IO脚
  2. void setup()
  3. {
  4.   pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
  5. }
  6. void loop()
  7. {
  8.   unsigned char i,j;//定义变量
  9.   while(1)
  10.   {
  11.     for(i=0;i<80;i++)//输出一个频率的声音
  12.     {
  13.       digitalWrite(buzzer,HIGH);//发声音
  14.       delay(1);//延时1ms
  15.       digitalWrite(buzzer,LOW);//不发声音
  16.       delay(1);//延时ms
  17.     }
  18.     for(j=0;j<100;j++)//输出另一个频率的声音
  19.     {
  20.       digitalWrite(buzzer,HIGH);//发声音
  21.       delay(2);//延时2ms
  22.       digitalWrite(buzzer,LOW);//不发声音
  23.       delay(2);//延时2ms
  24.     }
  25.   }
  26. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-6-18 09:28:08 | 显示全部楼层
while里面的第二个for应该是j变量吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-19 21:31:11 | 显示全部楼层
熊娃子 发表于 2015-6-18 09:28
while里面的第二个for应该是j变量吧

确实。。。马上去修改。。。
回复 支持 反对

使用道具 举报

发表于 2015-8-6 23:53:11 | 显示全部楼层
同一个蜂鸣器模块,原先可以接高电平一直响的,现在居然不行了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 12:22 , Processed in 0.042895 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表