树莓派:双色LED灯实验

树莓派:双色LED灯实验

  • 简介
  • 一、实验效果
  • 二、组件
  • 三、实验原理
  • 四、实验步骤
  • 五、代码实现


简介

双色LED灯(双基色 LED灯),是指模块只能显示2种颜色,一般是红色和绿色,可以有三种状态:灭、颜色1亮、颜色2亮;根据颜色组合的不同,分为红蓝双色,黄蓝双色,红绿双色等等。

双色 LED常于指示状态:比如红色表示设备异常,绿色表示正常。
树莓派:双色LED灯实验_第1张图片

一、实验效果

树莓派:双色LED灯实验

二、组件

1、树莓派主板*1

2、树莓派电源*1

3、40P软排线*1

4、双色LED模块*1

5、面包板*1

6、跳线若干

三、实验原理

将引脚S(绿色)和中间管脚R(红色)连接到树莓派的GPO 接口上,对树莓派进行编程控制,将LED的颜色从红色变为绿色,然后使用PWM混合其他颜色。
该模块的原理图如下所示:
树莓派:双色LED灯实验_第2张图片


四、实验步骤

建立电路:

树莓派 面包板 双色LED模块
GPIO1 GPIO18 G(S)
GPIO0 GPIO17 R(中间)
GND GND GND

树莓派:双色LED灯实验_第3张图片

五、代码实现

WM的频率:P决定了输出的数字信号on (1) 和 off(0 )的切换速度,频率越高,切换就越快。

占空比:指一串理想脉冲序列中,正脉冲的持续时间与脉冲总周期的比值,用来调节灯的亮度。

import RPi.GPIO as GPIO
import time

colors = [0xFF00, 0x00FF, 0x0FF0, 0xF00F]
makerobo_pins = (11, 12)  # PIN管脚字典

GPIO.setmode(GPIO.BOARD)     # 采用实际的物理管脚给GPIO口
GPIO.setwarnings(False)      # 去除GPIO口警告
GPIO.setup(makerobo_pins, GPIO.OUT)   # 设置Pin模式为输出模式
GPIO.output(makerobo_pins, GPIO.LOW)  # 设置Pin管脚为低电平(0V)关闭LED

p_R = GPIO.PWM(makerobo_pins[0], 2000)  # 设置频率为2KHz
p_G = GPIO.PWM(makerobo_pins[1], 2000)  # 设置频率为2KHz

# 初始化占空比为0(led关闭)
p_R.start(0)     
p_G.start(0)

def makerobo_pwm_map(x, in_min, in_max, out_min, out_max):
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

def makerobo_set_Color(col):   # 例如:col = 0x1122
    R_val = col  >> 8
    G_val = col & 0x00FF
    # 把0-255的范围同比例缩小到0-100之间
    R_val = makerobo_pwm_map(R_val, 0, 255, 0, 100)
    G_val = makerobo_pwm_map(G_val, 0, 255, 0, 100)

    p_R.ChangeDutyCycle(R_val)     # 改变占空比
    p_G.ChangeDutyCycle(G_val)     # 改变占空比

# 调用循环函数
def makerobo_loop():
    while True:
        for col in colors:
            makerobo_set_Color(col)
            time.sleep(0.5)
# 释放资源
def makerobo_destroy():
    p_G.stop()
    p_R.stop()
    GPIO.output(makerobo_pins, GPIO.LOW)    # 关闭所有LED
    GPIO.cleanup()                          # 释放资源

# 程序入口
if __name__ == "__main__":
    try:
        makerobo_loop()       # 调用循环函数
    except KeyboardInterrupt:  # 当按下Ctrl+C时,将执行destroy()子程序。
        makerobo_destroy()    # 释放资源

在这里插入图片描述

你可能感兴趣的:(树莓派,树莓派,硬件开发,单片机)