树莓派4B学习笔记17:RBG_LED全色域灯的驱动模块编写

发布于:2024-06-30 ⋅ 阅读:(18) ⋅ 点赞:(0)

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

 本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

 Python 版本3.7.3:

今日学习:RBG_LED全色域灯的驱动模块编写_(if __name__=="__main__")

写一篇比较水的文章测试一下今天刚到手的LED模块,哈哈哈~~~~~~~~~~~~~~~

文章提供测试代码讲解,整体代码贴出、测试效果图、整体工程下载

目录

创建测试文件:

编写RBG_LED.py模块代码:

编写main.py调用模块测试:

测试效果展示:

整体测试工程下载:


创建测试文件:

这里编写的是自己的驱动显示模块,因此会有个main.py调用它来测试是否正常能运行

我将这个测试文件RBG_LED文件夹整个放在了树莓派如下目录:

/home/pi/code_examples/

编写RBG_LED.py模块代码:

这个目前的RBG_LED模块代码 包括了初始化LED函数以及各种颜色的设定,以及一个用于测试各种颜色显示的测试函数

代码所在文件命名为:RBG_LED.py

# coding: utf-8 
import RPi.GPIO as GPIO
import time

# 定义RGB LED连接的GPIO引脚  
RGB_RED = 18  
RGB_GREEN = 19  
RGB_BLUE = 20 

#初始化LED
def Init_RBG_LED():
    # 设置GPIO模式为BCM(Broadcom SOC channel)  
    GPIO.setmode(GPIO.BCM)
    # 设置引脚为输出模式  
    GPIO.setup(RGB_RED, GPIO.OUT)
    GPIO.setup(RGB_GREEN, GPIO.OUT)
    GPIO.setup(RGB_BLUE, GPIO.OUT)

# 创建一个函数来设置LED颜色(red, green, blue只能GPIO.HIGH,或GPIO.LOW)
def set_led_color(red, green, blue):  
    GPIO.output(RGB_RED, red)  
    GPIO.output(RGB_GREEN, green) 
    GPIO.output(RGB_BLUE, blue) 

#设置LED为红色
def set_red():
    set_led_color(GPIO.HIGH, GPIO.LOW, GPIO.LOW)
# 设置LED为绿色 
def set_green():
    set_led_color(GPIO.LOW, GPIO.HIGH, GPIO.LOW)
# 设置LED为蓝色
def set_blue():
    set_led_color(GPIO.LOW, GPIO.LOW, GPIO.HIGH)
# 设置LED为白色(所有颜色都亮)  
def set_white():
    set_led_color(GPIO.HIGH, GPIO.HIGH, GPIO.HIGH) 
# 设置LED为关闭(所有颜色都熄灭)  
def set_off():
    set_led_color(GPIO.LOW, GPIO.LOW, GPIO.LOW)
# 设置LED为紫色
def set_purple():
    set_led_color(GPIO.HIGH, GPIO.LOW, GPIO.HIGH)
# 设置LED为黄色
def set_yellow():
    set_led_color(GPIO.HIGH, GPIO.HIGH, GPIO.LOW)
# 设置LED为青色
def set_cyan():
    set_led_color(GPIO.LOW, GPIO.HIGH, GPIO.HIGH)

# 示例:闪烁LED(红绿蓝依次闪烁)  
def blink_led():
    try:  
        while True:
            set_white()
            time.sleep(0.55)
            set_red()
            time.sleep(0.55)
            set_green()
            time.sleep(0.55)
            set_blue()
            time.sleep(0.55)
            set_purple()
            time.sleep(0.55)
            set_yellow()
            time.sleep(0.55)
            set_cyan()
            time.sleep(0.55)
    except KeyboardInterrupt:  # 捕获键盘中断以安全退出 <ctrl+c> 
        set_off()                              # 关闭led
        GPIO.cleanup()

if __name__ == "__main__": 
    GPIO.setwarnings(False)      # 禁用GPIO警告
    Init_RBG_LED()                       #初始化LED
    blink_led()                              #彩色闪烁呼吸测试

编写main.py调用模块测试:

如果在定义RGB_REDRGB_GREEN、RGB_BLUE三个有关引脚编号的全局变量的文件和Init_RBG_LED函数位于同一个文件中(RBG_LED.py

并且已经在main.py中正确地导入了RBG_LED模块,那么在main.py调用Init_RBG_LED()函数是没有问题的。

代码所在文件命名为:main.py

# coding: utf-8 
import RBG_LED as LED

LED.Init_RBG_LED()
LED.blink_led()

测试效果展示:

首先使用cd命令进入代码所在目录:

cd /home/pi/code_examples/RBG_LED

再使用python运行脚本:

python3 RBG_LED.py

python3 main.py

循环显示了各个测试函数的设置颜色:(main.py文件效果与RBG_LED.py是一样的)

按<ctrl+c>可以退出并关闭LED

整体测试工程下载:

https://download.csdn.net/download/qq_64257614/89500771


网站公告

今日签到

点亮在社区的每一天
去签到