极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

Arduino入门教程--第八课--用蜂鸣器模拟警报器

[复制链接]
 楼主| 发表于 2012-10-31 17:19:22 | 显示全部楼层
linhaimi 发表于 2012-10-30 22:58
这个例程 Leonardo @ 1.01 不能正常执行, 1.01 换装 1.5 的Core库后能正常执行,推测tone函数的问题。


Leonardo 采用芯片与 UNO完全不同,请参考arduino的说明
回复 支持 反对

使用道具 举报

发表于 2012-11-1 22:13:42 | 显示全部楼层
迷你强 发表于 2012-10-31 17:19
Leonardo 采用芯片与 UNO完全不同,请参考arduino的说明

回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-1 22:55:03 | 显示全部楼层
linhaimi 发表于 2012-11-1 22:13

额.........................
回复 支持 反对

使用道具 举报

发表于 2012-11-9 16:46:30 | 显示全部楼层
不错,提供了一种很好的教程,现在发现用arduino控制蜂鸣器要比51单片机简单多了!不过数码管要复杂的多。
回复 支持 反对

使用道具 举报

发表于 2012-12-1 16:36:39 | 显示全部楼层
不错  用低音炮的音响 效果更好
回复 支持 反对

使用道具 举报

发表于 2012-12-29 13:47:32 | 显示全部楼层
为什么我第二个tone(4,i)提示错误啊,让我用new IO
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-29 22:21:25 | 显示全部楼层
第柒夜 发表于 2012-12-29 13:47
为什么我第二个tone(4,i)提示错误啊,让我用new IO

贴出程序
回复 支持 反对

使用道具 举报

发表于 2013-3-4 12:59:27 | 显示全部楼层
本帖最后由 <一一巛 于 2013-3-5 10:15 编辑

交作业
  1. void setup() {   
  2.   pinMode(6, INPUT);
  3.   pinMode(11,OUTPUT);  
  4. }
  5. void loop() {
  6.   if(digitalRead(6)==1){
  7.     for(int i=200;i<=800;i++){
  8.       tone(11,i);
  9.       delay(5);
  10.     }
  11.   }
  12. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-4-15 13:17:29 | 显示全部楼层
继续学习。。
回复 支持 反对

使用道具 举报

发表于 2013-4-23 16:37:18 | 显示全部楼层
/*

作者:极客工坊-迷你强

时间:2012年6月13日

IDE版本号:1.0.1

发布地址:www.geek-workshop.com

作用:使用tone()函数产生声音,模拟防控警报的响声



*/

void setup()

{
  pinMode(4,OUTPUT);
}



void loop()

{

  for(int i=200;i<=800;i++)                    //用循环的方式将频率从200HZ 增加到800HZ

  {



    tone(4,i,5);                            //在四号端口输出频率



  }

  delay(4000);                            //最高频率下维持4秒钟

  for(int i=800;i>=200;i--)

  {



    tone(4,i,5);



  }

}


用tone (pin,frequency,duration)为什么不行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-23 17:21:59 | 显示全部楼层
johnny 发表于 2013-4-23 16:37
/*

作者:极客工坊-迷你强

不知道,可能是函数的问题吧,这个函数貌似不太好使。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-4-23 19:12:47 | 显示全部楼层
谢谢强哥了
回复 支持 反对

使用道具 举报

发表于 2013-8-9 21:54:36 | 显示全部楼层
本帖最后由 chaoser 于 2013-8-9 21:57 编辑

换种写法写一下楼主大大的程序:

  1. /* 程序功能:使用tone()函数产生声音,模拟防控警报的响声
  2.    用循环的方式将频率从200HZ 增加到800HZ
  3.    各频率维持5毫秒,最高频率下维持4秒钟
  4. */

  5. int n=200;      // 初始频率
  6. int i=1;        // 步进幅度
  7. void setup() {pinMode(4,OUTPUT);}
  8. void loop() {
  9.   tone(4,n);
  10.   delay(5);
  11.   if (n==800) delay(4000);
  12.   if (n==800||n==200) i=-i;
  13.   n+=i;
  14. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-8-18 16:04:05 | 显示全部楼层
迷你强 发表于 2012-7-26 17:07
没区别,当时我写程序时准备要关闭OUTPUT状态的,后来将那个去掉了。程序就没修改了。。。

哈哈 我也正想问这个呢。。。谢了
回复 支持 反对

使用道具 举报

发表于 2013-8-18 16:05:39 | 显示全部楼层
啸风 发表于 2012-12-1 16:36
不错  用低音炮的音响 效果更好

汗, 咋接低音炮音箱?
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 06:41 , Processed in 0.055464 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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