PinPong Board快速入门教程(2)蜂鸣器「终于解决」

PinPong Board快速入门教程(2)蜂鸣器「终于解决」上一节我们做的奇葩的blink这个小程序用到了蜂鸣器。不过没有让蜂鸣器能够好好地发出一个声音。那么这一节将带领大家真正的开始用一下蜂鸣器。简单阐

欢迎大家来到IT世界,在知识的湖畔探索吧!

PinPong Board快速入门教程(2)蜂鸣器「终于解决」


上一节我们做的奇葩的blink这个小程序用到了蜂鸣器。不过没有让蜂鸣器能够好好地发出一个声音。那么这一节将带领大家真正的开始用一下蜂鸣器。简单阐述一下蜂鸣器的原理、发出警报声最后用它播放一个歌曲。

一、初识蜂鸣器

这个PinPong Board这个板子上的蜂鸣器就长这样。小小的一个。那么蜂鸣器是什么呢?

PinPong Board快速入门教程(2)蜂鸣器「终于解决」

简单理解蜂鸣器就是一个小喇叭,可以用它发出一些声音,一般蜂鸣器分为有源和无源两种蜂鸣器,有源蜂鸣器通电就可以发出声音。而无源就比较麻烦了。在板子上的蜂鸣器是一个无源蜂鸣器,无源蜂鸣器想要发出声音就需要震动。想要控制蜂鸣器震动就需要我们给一个脉冲信号。给脉冲信号其实很简单,只需要让他快速的开关就可以,如果一秒钟让他开关500次那么它就是500Hz的震动频率。先看下500Hz如何发出来。

二、用脉冲信号控制发出声音

脉冲信号简单来说就是高电平加上低电平就是一个脉冲,那么500Hz就是500个脉冲,简单来说就是高低电平500次,参考一下程序。

# -*- coding: utf-8 -*-

#效果:发出500Hz赫兹的声音
#接线:使用windows电脑连接一块PinPong主控板,主控板D5引脚的蜂鸣器
import time
from pinpong.board import Board,Pin

#Board("uno").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
ip =  "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081    #网络配置中OLEB屏上显示的port
Board(ip, port)

sound = Pin(Pin.D5, Pin.OUT) #引脚初始化为电平输出
while True:
  sound.value(1) #输出高电平
  time.sleep(0.001) #等待1秒 保持状态
  sound.value(0) #输出低电平
  time.sleep(0.001) #等待1秒 保持状态

欢迎大家来到IT世界,在知识的湖畔探索吧!

三、使用Tone函数

原来发出声音这么简单。不过用这一种方法如果想发出一个261Hz的声音就有点难了。那怎么搞呢?其实我们可以用pinpong库当中的Tone函数就可以非常方便地使用了。.freq是设定频率 .on()播放 .off()关闭声音。下面这个程序就是简单播放一个261Hz的声音。

欢迎大家来到IT世界,在知识的湖畔探索吧!# -*- coding: utf-8 -*-

#效果:发出261Hz声音
#接线:使用windows电脑连接一块PinPong主控板,主控板D5引脚的蜂鸣器
import time
from pinpong.board import Board,Pin,Tone

ip =  "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081    #网络配置中OLEB屏上显示的port
Board(ip, port)

sound = Tone(Pin(Pin.D5)) #将Pin传入Tone中实现模拟输出
sound.freq(200) #按照设置的频率播放

while True:
  sound.on()  #打开蜂鸣器

使用Tone函数后发现我想要什么频率就可以有什么频率非常简单,由此我可以做一个简单的报警器的效果。也就是声音频率从200Hz开始慢慢地到5000Hz然后再慢慢降到200Hz。

# -*- coding: utf-8 -*-
#接线:使用windows电脑连接一块PinPong主控板,主控板D5引脚的蜂鸣器
import time
from pinpong.board import Board,Pin,Tone

ip =  "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081    #网络配置中OLEB屏上显示的port
Board(ip, port)

sound = Tone(Pin(Pin.D5)) #将Pin传入Tone中实现模拟输出
sound.freq(200) #按照设置的频率播放

while True:
    
    for my_variable in range(200, 5001, 1):
        sound.freq(my_variable)
        sound.on()  #打开蜂鸣器
        time.sleep(0.001)
    pass
    for my_variable in range(5001, 199, -1):
        sound.freq(my_variable)
        sound.on()  #打开蜂鸣器
        time.sleep(0.001)
    pass

四、播放小星星

接下来我们尝试用PinPong Board来播放一个音乐。先来看看一个简单的歌曲,《小星星》作为例子。当然我的程序只是写了一个简单的前两个小节内容,有兴趣的可以接着往下写。或者用更简单的方法写出来。我在这里只是抛砖引玉简单的举例说明一下怎么来用蜂鸣器。

欢迎大家来到IT世界,在知识的湖畔探索吧!# -*- coding: utf-8 -*-
#接线:使用windows电脑连接一块PinPong主控板,主控板D5引脚的蜂鸣器
import time
from pinpong.board import Board,Pin,Tone

ip =  "192.168.31.128" #网络配置中OLEB屏上显示的ip
port = 8081    #网络配置中OLEB屏上显示的port
Board(ip, port)

sound = Tone(Pin(Pin.D5)) #将Pin传入Tone中实现模拟输出
while True:
  sound.on()  #打开蜂鸣器
  for my_variable in range(2, 201):
    sound.freq(261)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2) 

    sound.freq(261)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2) 
    
    sound.freq(392)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2)

    sound.freq(392)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2)
    
    sound.freq(440)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2)
    
    sound.freq(440)
    sound.on()  #打开蜂鸣器
    time.sleep(1)
    sound.off()
    time.sleep(0.2)

    sound.freq(392)
    sound.on()  #打开蜂鸣器
    time.sleep(2)
    sound.off()
    time.sleep(0.2)
    pass
PinPong Board快速入门教程(2)蜂鸣器「终于解决」

各个音符所对应的频率的就在以下表格中。

PinPong Board快速入门教程(2)蜂鸣器「终于解决」


因为python语言不熟可能有些程序可能不够严谨,欢迎留言更正。

CC BY-NC-SA

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18138.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信