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

今日继续学习树莓派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()                              # 关闭ledGPIO.cleanup()if __name__ == "__main__": GPIO.setwarnings(False)      # 禁用GPIO警告Init_RBG_LED()                       #初始化LEDblink_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 LEDLED.Init_RBG_LED()
LED.blink_led()

测试效果展示:

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

cd /home/pi/code_examples/RBG_LED

再使用python运行脚本:

python3 RBG_LED.pypython3 main.py

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

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

整体测试工程下载:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/369074.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笑麻了|4款让人心疼的电脑软件,由于免费又实用,常被同行挤压

有好多小众软件&#xff0c;不仅免费&#xff0c;还特别好用&#xff0c;而且一点广告都没有&#xff0c;这些软件因为太良心了&#xff0c;反而被排挤&#xff0c;真是让人感叹不已。 格式工厂 这是一款80后应该都不陌生的老牌国产软件&#xff0c;叫做格式工厂&#xff0c;…

从传统到智能:工业园区消防管理开始华丽转身

一、工业园区的消防管理现状 然而&#xff0c;当我们审视当前工业园区的消防管理现状时&#xff0c;不难发现其中存在诸多不足。首先&#xff0c;消防信息的智能化程度低&#xff0c;仿佛一位年迈的守望者&#xff0c;力不从心&#xff0c;难以即时将现场的数据信息传达至指挥…

如何实现公网环境远程连接本地局域网宝塔FTP服务远程管理文件

文章目录 前言1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 &#x1f4a1;推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

【计算智能】遗传算法(二):基本遗传算法在优化问题中的应用【实验】

前言 本系列文章架构概览&#xff1a; 本文将介绍基本遗传算法在解决优化问题中的应用,通过实验展示其基本原理和实现过程&#xff1a;选取一个简单的二次函数作为优化目标&#xff0c;并利用基本遗传算法寻找其在指定范围内的最大值。 2. 基本遗传算法&#xff08;SGA&#x…

【单片机与嵌入式】stm32串口通信入门

一、串口通信/协议 &#xff08;一&#xff09;串口通信简介 串口通信是一种通过串行传输方式在电子设备之间进行数据交换的通信方式。它通常涉及两条线&#xff08;一条用于发送数据&#xff0c;一条用于接收数据&#xff09;&#xff0c;适用于各种设备&#xff0c;从微控制…

从零到一:eBay自养号测评全流程解析与实操建议

eBay自养号测评是一种通过模拟真实买家行为&#xff0c;为卖家提供市场反馈并提升店铺权重和排名的技术手段。以下是进行eBay自养号测评的具体步骤和注意事项&#xff1a; 一、准备阶段 1. 技术配置&#xff1a;搭建境外服务器&#xff1a;选择稳定的境外服务器&#xff0c;模…

【LeetCode:841. 钥匙和房间 + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【等保2.0是什么意思?等保2.0的基本要求有哪些? 】

一、等保2.0是什么意思&#xff1f; 等保2.0又称“网络安全等级保护2.0”体系&#xff0c;它是国家的一项基本国策和基本制度。在1.0版本的基础上&#xff0c;等级保护标准以主动防御为重点&#xff0c;由被动防守转向安全可信&#xff0c;动态感知&#xff0c;以及事前、事中…

Linux之文本三剑客

Linux之三剑客 Linux的三个命令,主要是用来处理文本,grep,sed,awk,处理日志的时候使用的非常多 1 grep 对文本的内容进行查找 1) 基础用法 语法 grep 选项 内容|正则表达式 文件选项: -i 不区分大小写 -v 排除,反选 -n 显示行号 -c 统计个数查看文件里包含有的内容 [roo…

【linux网络(七)】数据链路层详解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. 认识MAC…

从硬件角度看Linux的内存管理

1. 分页机制 分段机制的地址映射颗粒度太大&#xff0c;以整个进程地址空间为单位的分配方式导致内存利用率不高。 分页机制把这个分配机制的单位继续细化为固定大小的页(Page)&#xff0c;进程的虚拟地址空间也按照页来分割&#xff0c;这样常用的数据和代码就可以以页为单位…

uniapp中实现跳转链接到游览器(安卓-h5)

uniapp中实现跳转链接到游览器&#xff08;安卓-h5&#xff09; 项目中需要做到跳转到外部链接&#xff0c;网上找了很多都不是很符合自己的要求&#xff0c;需要编译成app后是跳转到游览器打开链接&#xff0c;编译成web是在新窗口打开链接。实现的代码如下&#xff1a; 效果&…

某安全公司DDoS攻击防御2024年6月报告

引言&#xff1a; 在2024年6月&#xff0c;网络空间的安全挑战汹涌澎湃。分布式拒绝服务&#xff08;DDoS&#xff09;攻击频发&#xff0c;针对云服务、金融科技及在线教育平台的精密打击凸显出当前网络威胁环境的严峻性。 某安全公司作为网络安全防护的中坚力量&#xff0c…

QT5.12环境搭建与源码编译

一、概述 QT版本&#xff1a;QT5.12.10 Qt网址&#xff1a;http://download.qt.io/archive/qt/ 编译平台 ubuntu18.04 二、安装交叉编译工具链 1、获取交叉编译工具链 一般如果是编译系统如果有对应的gcc 就是用这个就可以了 比如rk3128 lin…

Vue 详情实战涉及从项目初始化到功能实现、测试及部署的整个过程

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

机器人入门路线及参考资料(机器人操作方向)

机器人入门路线及参考资料&#xff08;机器人操作方向&#xff09; 前言1 数理基础和编程2 机器人学理论3 计算机视觉4 机器人实操5 专攻方向总结Reference: 前言 随着机器人和具身智能时代的到来&#xff0c;机器人越来越受到大家的重视&#xff0c;本文就介绍了机器人&#…

震惊!张宇25版高数18讲发布,656页惹争议!

这个张宇老师在微博已经解释过了&#xff01; 我觉得张宇老师本意是好的&#xff0c;在考研数学教学创新这方面&#xff0c;他真的有自己的思考。 他为什么要这么做&#xff1f; 其实作为一个考研高数老师&#xff0c;他完全可以像其他老师一样&#xff0c;什么都不做&#x…

武汉免费 【FPGA实战训练】 Vivado入门与设计师资课程

一&#xff0e;背景介绍 当今高度数字化和智能化的工业领域&#xff0c;对高效、灵活且可靠的技术解决方案的需求日益迫切。随着工业 4.0 时代的到来&#xff0c;工业生产过程正经历着前所未有的变革&#xff0c;从传统的机械化、自动化逐步迈向智能化和信息化。在这一背景下&…

11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法

11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法 0. 引言1. 关于m_track2. 关于m_range_ring3. 关于m_ellipse4. 关于m_windrose5. 结语 0. 引言 本篇介绍下m_map中绘制航迹图函数&#xff08;m_track&#xff09;、绘…

Redis深度解析:核心数据类型与键操作全攻略

文章目录 前言redis数据类型string1. 设置单个字符串数据2.设置多个字符串类型的数据3.字符串拼接值4.根据键获取字符串的值5.根据多个键获取多个值6.自增自减7.获取字符串的长度8.比特流操作key操作a.查找键b.设置键值的过期时间c.查看键的有效期d.设置key的有效期e.判断键是否…