tone()函数

tone(pin, frequency)
tone(pin, frequency, duration)
# 参数
pin: the pin on which to generate the tone
frequency: the frequency of the tone in hertz - unsigned int
duration: the duration of the tone in milliseconds (optional) - unsigned long

tone()的使用说明

产生指定频率的占空比为50%的方波. 可以指定持续时间, 若未指定, 则持续到调用noTone().
在同一时间只能产生一个频率的方波, 如果tone正执行在一个pin上, 在其他pin上调用tone()将不起作用. 如果在同一个pin上再次调用tone, 则会使用新指定的频率.
除了Mega开发板以外, 使用tone()会与pin 3 和 pin 11 脚的 PWM输出冲突.
输出的最低频率为31Hz.

noTone函数

noTone(pin)
# 参数
pin: the pin on which to stop generating the tone

注意: 如果在不同的pin脚上有多个喇叭/蜂鸣器, 在对下一个pin调用tone()前必须对前一个pin调用noTone().

接线

蜂鸣器的+脚接Arduino D6, -脚接GND

测试代码

#define TONEPIN 6
#define TONE_BASE 294 void setup() {
pinMode(TONEPIN, OUTPUT);
}
void loop() {
for(int i = ; i < ; i ++) {
tone(TONEPIN, TONE_BASE + i * , );
delay();
noTone(TONEPIN);
}
delay();
}

测试可以看到, tone方法是非阻塞的, 如果delay时间比tone的duration短, 则duration不起作用, 实际时间是delay的时间.

Arduino驱动无源蜂鸣器发声的更多相关文章

  1. 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)

    l  STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l  STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l  编程使用STM32 HAL库 l  IIC OLED界面编程,动画实 ...

  2. Arduino与无源蜂鸣器

    1.Arduino无源蜂鸣器传感器模块 我们可以使用Arduino进行很多互动作品,其中最常用的是声光显示器.之前的所有实验都与LED有关.但是,这个实验中的电路可以产生声音.通常,实验是通过蜂鸣器或 ...

  3. 【STM32H7教程】第20章 STM32H7的GPIO应用之无源蜂鸣器

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第20章       STM32H7的GPIO应用之无源蜂鸣器 ...

  4. arduino驱动安装

    方法一:使用官方提供的一键安装程序安装 打开Arduino在你电脑上的位置如果你的电脑是32位系统,就运行dpinst-x86.exe如果是64位系统,就运行dpinst-amd64.exe然后在弹出 ...

  5. 使用Arduino驱动基于ST7533芯片的TFT屏

    在合宙通信买了一个1.8寸的TFT屏,驱动芯片是ST7533,本来打算使用Air800直接驱动,但由于其他原因,放弃了.于是尝试使用arduino驱动,为了屏幕刷新速度更快,采用硬件SPI. 硬件连接 ...

  6. STM32使用无源蜂鸣器演奏歌曲

    上一次使用了有源蜂鸣器,只能发出固定的”滴滴“声,当然不能满足于此呀.使用无源蜂鸣器,只要输出不同频率的PWM波,即可发出不同的音符. 不同的音符组合起来就是一个曲子了. 改变PWM的音调,可以输出D ...

  7. win8.1环境下安装arduino驱动问题解决方案

    1. Windows 键+ R, 输入 shutdown.exe /r /o /f /t 00 2.此时电脑会自动重启,进入一下画面,选择Troubleshoot (转载请注明原处:http://ww ...

  8. 最新 Arduino 驱动 12接口/户外 LED显示屏/LED点阵屏/LED单元板

    起因 现有的驱动LED显示屏的资料,比较好的只有这个.但是它驱动的是08接口的室内显示屏,而我要驱动的是12接口的户外显示屏.两种屏幕的区别在于户外屏幕点阵比较稀疏,而且二者的扫描方式,驱动方式都不太 ...

  9. 精简版、GHOST版win7,arduino驱动安装失败的解决方法分享

    arduino组件安装驱动不成功,总是提示系统找不到指定文件. 原因是因为精简版缺少了两个关键的系统文件,导致无法安装.mdmcpq.inf  和 usbser.sys 解决方案详见帖子http:// ...

随机推荐

  1. mysql 5.1简明教程

    第一章Mysql简介与安装 第一节 MySql简介 百度百科 第二节 MySql安装与配置 1.MySql5.1下载及安装 2.MySql数据库编码配置 UTF-8 3.MySql图形页面sqlyog ...

  2. [leetcode]Median of Two Sorted Arrays @ Python

    原题地址:https://oj.leetcode.com/problems/median-of-two-sorted-arrays/ 题意:There are two sorted arrays A ...

  3. System.Diagnostics.Debug和System.Diagnostics.Trace

    在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类——debug ...

  4. 文本框只能输入数字(兼容IE火狐)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Binary Tree Level Order Traversal II leetcode java

    题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from ...

  6. 解决Android中图片圆角——.9图

    目录:  一.问题概述 二..9图介绍 三..9图制作 1.开发工具 2.打开图片 3.制作图片 4.保存图片 一.问题概述 在html开发中,可以通过设置css的border-radius来设置圆角 ...

  7. Android -- Toolbar跟随ListView滑动隐藏和显现

    布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...

  8. getWidth() 和 getMeasuredWidth()的区别

    getWidth(): View在设定好布局后整个View的宽度.   getMeasuredWidth(): 对View上的内容进行测量后得到的View内容占据的宽度,前提是你必须在父布局的onLa ...

  9. MFC自定义控件如何向父窗口发送自定义消息

    自定义了一个控件 class CHtmlEditCtrlEx : public CHtmlEditCtrl   想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息.具体 ...

  10. 【Python】使用torrentParser1.02对多文件torrent的分析结果

    C:\Users\horn1\Desktop\python\41-torrentParser>python torrentParser.py 文件名=./6.torrent 文件结构: anno ...