请用pyhton解决proteus 8 professional 的双色LED灯实验,要求如下

编程实现:绿灯点亮10秒后熄灭。

2、编程实现:红灯闪烁5次,每次亮灭的时间各1秒。

3、编程实现:红绿灯交替闪烁,每次红灯持续2秒,绿灯持续5秒。

4、使用PWM(脉冲宽度调节)将单种颜色混合成其它颜色。

问题相关代码,请勿粘贴截图

、 LED绿灯点亮10秒熄灭。

import RPi.GPIO as GPIO #导入RPi.GPIO,并起别名GPIO

import time #导入时间库,提供延时、时钟和其它时间函数

GPIO.setmode(GPIO.BOARD) #设置引脚编号模式为板载模式

GPIO.setwarnings(False) #去除GPIO口警告

pinR=11 #物理位置编号,红色针脚为11号

pinG=12 #物理位置编号,绿色针脚为12号

GPIO.setup(pinR,GPIO.OUT) #设置针脚模式为输出(或者输入GPIO.IN)

GPIO.setup(pinG,GPIO.OUT) #设置针脚模式为输出(或者输入GPIO.IN)

GPIO.output(pinR,GPIO.LOW) #设置针脚为低电平,关掉LED灯

GPIO.output(pinG,GPIO.LOW) #设置针脚为低电平,关掉LED灯

GPIO.output(pinG,GPIO.HIGH) #设置绿灯对应的针脚为高电平,打开LED灯

time.sleep(10) #程序等待10秒

GPIO.output(pinG,GPIO.LOW) #设置绿灯对应的针脚为低电平,关闭LED灯

GPIO.cleanup() #释放资源

2、 编程实现红灯闪烁5次,每次亮灭的时间各1秒。

import RPi.GPIO as GPIO #导入RPi.GPIO,并起别名GPIO

import time #导入时间库,提供延时、时钟和其它时间函数

GPIO.setmode(GPIO.BOARD) #设置引脚编号模式为板载模式

GPIO.setwarnings(False) #去除GPIO口警告

pinR=11 #物理位置编号,红色针脚为11号

pinG=12 #物理位置编号,绿色针脚为12号

GPIO.setup(pinR,GPIO.OUT) #设置针脚模式为输出

GPIO.setup(pinG,GPIO.OUT) #设置针脚模式为输出

GPIO.output(pinR,GPIO.LOW) #设置针脚为低电平,关掉LED灯

GPIO.output(pinG,GPIO.LOW) #设置针脚为低电平,关掉LED灯

i=0

while i<5:

GPIO.output(pinR,GPIO.HIGH)  #设置红灯对应的针脚为高电平,打开LED灯

time.sleep(1)  #程序等待1秒

GPIO.output(pinR,GPIO.LOW)  #设置红灯对应的针脚为低电平,关闭LED灯

time.sleep(1)  #程序等待1秒

i=i+1  #循环变量增1

GPIO.cleanup() #释放资源

3、编程实现红绿灯交替闪烁,每次红灯持续2秒,绿灯持续5秒。

import RPi.GPIO as GPIO #导入RPi.GPIO,并起别名GPIO

import time #导入时间库,提供延时、时钟和其它时间函数

GPIO.setmode(GPIO.BOARD) #设置引脚编号模式为板载模式

GPIO.setwarnings(False) #去除GPIO口警告

pinR=11 #物理位置编号,红色针脚为11号

pinG=12 #物理位置编号,绿色针脚为12号

GPIO.setup(pinR,GPIO.OUT) #设置针脚模式为输出

GPIO.setup(pinG,GPIO.OUT) #设置针脚模式为输出

GPIO.output(pinR,GPIO.LOW) #设置针脚为低电平,关掉LED灯

GPIO.output(pinG,GPIO.LOW) #设置针脚为低电平,关掉LED灯

while True:

GPIO.output(pinR,GPIO.HIGH)  #设置红灯对应的针脚为高电平,打开LED灯

time.sleep(2)   #程序等待2秒

GPIO.output(pinR,GPIO.LOW)   #设置红灯对应的针脚为低电平,关闭LED灯

GPIO.output(pinG,GPIO.HIGH)

time.sleep(5)   #程序等待5秒

GPIO.output(pinG,GPIO.LOW)   

GPIO.cleanup() # 释放资源

4、使用PWM(脉冲宽度调节)将单种颜色混合成其它颜色。

import RPi.GPIO as GPIO #导入RPi.GPIO,并起别名GPIO

import time #导入时间模块,提供延时、时钟和其它时间函数

GPIO.setmode(GPIO.BOARD) #采用实际的物理管脚给GPIO口

GPIO.setwarnings(False) #去除GPIO口警告

pinR=11 #物理位置编号,红色针脚为11号

pinG=12 #物理位置编号,绿色针脚为12号

GPIO.setup(pinR,GPIO.OUT) #设置针脚模式为输出

GPIO.setup(pinG,GPIO.OUT) #设置针脚模式为输出

GPIO.output(pinR,GPIO.LOW) #设置针脚为低电平,关掉LED灯

GPIO.output(pinG,GPIO.LOW) #设置针脚为低电平,关掉LED灯

p_R = GPIO.PWM(pinR, 2000) #设置频率为2KHz

p_G = GPIO.PWM(pinG, 2000) #设置频率为2KHz

colors = [ 0x00FF,0xFF00, 0x7777,0] #颜色列表

#初始化占空比为0(led关闭)

p_R.start(0)

p_G.start(0)

try:

while True:

    for col in colors:

        R_val = col  >> 8  #提取R值

G_val = col & 0x00FF #提取G值

        #把0-255的范围同比例缩小到0-100之间,转成占空比

           R_val = 100*R_val/255

G_val = 100*G_val/255

        p_R.ChangeDutyCycle(R_val)     #改变红色占空比

         p_G.ChangeDutyCycle(G_val)     #改变绿色占空比

           time.sleep(1)

except KeyboardInterrupt: #当按下Ctrl+C组合健时,停止PWM、释放资源

p_G.stop()  #停止PWM

p_R.stop()  #停止PWM

GPIO.output(pinR, GPIO.LOW)    #熄灭红灯

GPIO.output(pinG, GPIO.LOW)     #熄灭绿灯

GPIO.cleanup()          #释放资源

请将关键步骤截图发出

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,超出我们目前的服务范围,暂时无法为您解答。


问答VIP目前服务范围为 :Python、Java、MySQL、Redis、MongoDB、HBase、Zookeeper、Kafka、Linux领域专业问题解答,为您提供解决问题的思路和指导。
不提供源码代写、项目文档代写、论文代写、安装包资源发送或安装使用指导等服务。


本次提问扣除的有问必答次数,会为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。