树莓派 python驱动蜂鸣器

举报
毛利 发表于 2022/08/24 22:28:40 2022/08/24
【摘要】 @Author: Runsen 有问题,底部评论 蜂鸣器分为两种类型:“有源蜂鸣器”和“无源蜂鸣器”。 有源蜂鸣器内部具有多振动器,只需要在外部提供工作电压,它就能发出固定频率的声音。 无...

@Author: Runsen 有问题,底部评论

蜂鸣器分为两种类型:“有源蜂鸣器”和“无源蜂鸣器”。

有源蜂鸣器内部具有多振动器,只需要在外部提供工作电压,它就能发出固定频率的声音。

无源蜂鸣器没有内部振荡源,需要外部驱动电路来提供驱动信号,从而发出特定频率。

我的蜂鸣器由树莓派主板的物理引脚32直接驱动。

在这里插入图片描述
树莓派引脚对照表如下图所示。

在这里插入图片描述
在这里插入图片描述
使用的Python,我采用的是BOARD编码方式。

树莓派 wiringPi库使用及引脚BCM与BOARD编码说明,查看博客

驱动蜂鸣器 连接 32 引脚,然后控制电流输入输出

代码环境选择 Jupyter

脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法。在树莓派上,可以通过对GPIO的编程来实现PWM。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(32, GPIO.OUT)

p = GPIO.PWM(32, 440) 
p.start(50)
try:
    while 1:
        for dc in range(0, 101, 5):
            print ('start_1')
            # 更改频率:
            p.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -5):
            p.ChangeDutyCycle(dc)
            print ('start_2')
            time.sleep(0.1)
except KeyboardInterrupt:
    pass
p.stop()
print("Ending")
GPIO.cleanup()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

程序运行之后,我们可以听到蜂鸣器鸣笛。

文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。

原文链接:maoli.blog.csdn.net/article/details/126492828

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。