树莓派入门(4)LED闪烁&呼吸灯

本文介绍了PWM技术的基本概念,包括频率、周期、脉宽及占空比等,并提供了使用Python控制LED实现闪烁与呼吸效果的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、PWM

PWM就是脉宽调制技术

1.频率

PWM的频率(f):1s内信号从低电平到高电平的总次数

2.周期

PWM周期(T):从一个高电平到下一个高电平的时间
f = 1 T {f=\frac{1}{T}} f=T1

3.脉宽

PWM脉宽(W):一个周期内的高电平时间

4.占空比

占空比(D):一个周期内脉宽占周期长度的百分比
D = W T {D=\frac{W}{T}} D=TW
在这里插入图片描述

二、使用PWM

1.创建一个PWM实例

PWM=GPIO.PWM(channel,freq)

2.启动PWM实例

PWM.start(dc)

dc:占空比,范围是:0.0~100.0

3.修改频率

PWM.ChangeFrequency(frequency)

4.停止PWM实例

PWM.stop()

三、LED闪烁

import RPi.GPIO as GPIO
import time								#导入时间模块
try:
    import RPi.GPIO as GPIO
except RuntimeError:
    print("import RPi.GPIO error")

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)
while True:
    GPIO.output(12,GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(12,GPIO.LOW)
    time.sleep(0.5)

四、呼吸灯

import RPi.GPIO as GPIO
from time import sleep
GPIO.setwarnings(False)

led1=12
led2=18 
freq=50
dc=0

GPIO.setmode(GPIO.BOARD)
GPIO.setup(led1,GPIO.OUT)
GPIO.setup(led2,GPIO.OUT)

PWM1=GPIO.PWM(led1,freq)
PWM2=GPIO.PWM(led2,freq)
PWM1.start(dc)
PWM2.start(dc)

freq = int(input("Please input the frequency:"))   
PWM1.ChangeFrequency(freq)
PWM2.ChangeFrequency(freq) 

while True:
    if(dc==0):
        while 1:
            dc=dc+1
            sleep(0.01)
            PWM1.ChangeDutyCycle(dc)
            PWM2.ChangeDutyCycle(dc)
            if (dc==100):
                break
    if(dc==100):
        while 1:
            dc=dc-1
            sleep(0.01)
            PWM1.ChangeDutyCycle(dc)
            PWM2.ChangeDutyCycle(dc)
            if (dc==0):
                break
input()
PWM.stop()
GPIO.cleanup()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值