树莓派制作呼吸灯(PWM应用) 您所在的位置:网站首页 树莓派无线键盘怎么打开呼吸灯 树莓派制作呼吸灯(PWM应用)

树莓派制作呼吸灯(PWM应用)

2023-08-12 00:27| 来源: 网络整理| 查看: 265

古月金真 1. 脉冲宽度调制(PWM)

脉冲宽度调制(PWM)是一种高效的数字电压控制技术,它利用微处理器的数字输出来对模拟电路进行控制,通过控制固定电压的直流电源开关频率,改变负载两端的电压,进而达到控制要求的一种电压调整方法。为更好的理解和使用PWM,我们首先需要了解以下两个概念。

频率:以Hz为单位,一个脉冲信号时间周期的倒数。如果PWM的输出频率比较低,例如只有5Hz,那么在控制一个LED时候,LED就会一闪一闪的,较高的频率可以让运行更为平滑,但PWM的输出频率并不能无限的高,而且在高频情况下,测定的PWM频率会与作为树莓派参数提供的频率略有出入。因此,在使用PWM时,应该选择一个合适的频率,对于控制一个LED亮度来说,一般100Hz就足够了。占空比:输出的PWM脉冲信号中,高电平保持的时间与该PWM的时钟周期的时间之比,如图6.1所示,占空比=t1/T=t1/(t1+t2)。假设PWM脉冲的频率为1000Hz,那么它的时钟周期T就是1ms(即1000us),如果高电平持续时间t1为200us,低电平的时间t2为800us,那么占空比就是200:1000(即1:5)。 在这里插入图片描述 PWM脉冲信号 从应用的角度,我们可以简单的将PWM理解为通过改变脉冲信号的频率和高电平的持续时间(或占空比)来实现电压控控制的一种方法。图6.2显示了三个由GPIO输出的PWM信号(电压为3.3V),第一个信号是一个占空比为20%的PWM输出,即在信号周期中,20%的时间为高电平(逻辑1),其余80%的时间为低电平(逻辑0),对应的电压为满幅值的20%(0.66V)。第二、三个信号分别是占空比为50%和80%的PWM输出,对应的电压分别为1.65V和2.64V。 在这里插入图片描述 三个由GPIO输出的PWM信号树莓派操控PWM 在树莓派上,可以通过对GPIO的编程来实现PWM,RPi.GPIO库就提供了一个PWM功能,以下是使用RPi.GPIO库的PWM功能的方法。 2.电路

在这里插入图片描述

3.程序 import RPi.GPIO as GPIO # 引入GPIO模块 from time import sleep # 引入time模块 LedPin = 19 # 引脚定义 (后面用) freq =100 # 存放PWM频率变量,这里初始值为100,可以根据实际需要修改 dc = 0 # 存放PWM占空比变量,这里初始值为0,可以根据实际需要修改 GPIO.setmode(GPIO.BCM) # 使用BCM编号方式 GPIO.setup(LedPin, GPIO.OUT) # 将GPIO19设置为输出模式 pwm = GPIO.PWM(LedPin, freq) # 创建PWM对象,并指定初始频率 pwm.start(dc) # 启动PWM,并指定初始占空比 freq = int(input("Please input the frequency of PWM(1-2000Hz): ")) # 等待输入新PWM频率 pwm.ChangeFrequency(freq) # 改变PWM频率 while True: # 循环 if dc ==0: #如果占空比为0时 while 1: dc = dc+1 #占空比自加 sleep(0.01) #占空比一0.01s的速度自加 pwm.ChangeDutyCycle(dc) #灯现实逐渐变亮 if dc ==100: break 如果占空比加到一百时跳出循环体 if dc == 100: #与上面相反 while 1: dc = dc-1 sleep(0.01) pwm.ChangeDutyCycle(dc) if dc == 0: break input() GPIO.cleanup() # 清理释放GPIO资源,将GPIO复位 注意:占空比最大设置为100。 4.运行

输入频率后,点击回车即可,如下图所示。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有