当前位置:网站首页>树莓派入门(4)LED闪烁&呼吸灯
树莓派入门(4)LED闪烁&呼吸灯
2022-08-10 05:25:00 【jualay】
一、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()
边栏推荐
- FPGA工程师面试试题集锦31~40
- SQL Server query optimization
- 线性模型中的高级特征选择技术——基于R
- Hezhou ESP32C3 +1.8"tft network clock under Arduino framework
- Mysql CDC (2.1.1) inital snapshot database set up five concurrent degree, se
- How does flinksql write that the value of redis has only the last field?
- oracle rac 11g安装执行root.sh时报错
- leetcode每天5题-Day10
- leetcode每天5题-Day12
- 栈与队列 | 有效的括号、删除字符串中的所有相邻元素、逆波兰表达式求值、滑动窗口的最大值、前K个高频元素 | leecode刷题笔记
猜你喜欢
西门子Step7和TIA软件“交叉引用”的使用
AVL tree insertion--rotation notes
二进制中负数为何要用补码形式来表示——二进制加减法
AVL树的插入--旋转笔记
Order table delete, insert and search operations
【无标题】
【静态代理】
Why are negative numbers in binary represented in two's complement form - binary addition and subtraction
线程(中):线程安全
动手写prometheus的exporter-02-Counter(计数器)
随机推荐
Joomla漏洞复现
Big guys, mysql cdc (2.2.1 and previous versions) sometimes has this situation since savepoint, is there anything wrong?
FPGA工程师面试试题集锦21~30
Guys, the test in the idea uses FlinkCDC SQL to read Mysql data and write it into Kafka. The code creates
【Static proxy】
OAuth2 usage scenarios, common misunderstandings, use cases
Ask you guys.The FlinkCDC2.2.0 version in the CDC community has a description of the supported sqlserver version, please
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
实战小技巧19:List转Map List的几种姿势
线程(上篇):线程的创建
【LeetCode】41. The first missing positive number
Advanced Feature Selection Techniques in Linear Models - Based on R
SQL Server查询优化
剑指Offer 033.变位数组
flinksql怎么写redis的value只有最后一个字段?
大佬们,mysql cdc(2.2.1跟之前的版本)从savepoint起有时出现这种情况,有没有什
FPGA engineer interview questions collection 31~40
咨询cdc 2.0 for mysql不执行flush with read lock.怎么保证bin
Rpc接口压测
pytorch learning