树莓派4B-Python-基于rpi_ws281x库控制LED亮灭
树莓派4B-Python-基于rpi_ws281x库控制LED亮灭
1、需求介绍
1.2、 视图界面:运用PyQt编写小灯控制界面
1.3、 功能实现:使用树莓派4B控制LED灯实现多种颜色的变换亮灭,随意其亮度。
2、参数介绍与工作原理
小灯是一个集控制电路与发光电路于一体的智能外控LED光源,每个元件即为一个像素点。
LED_COUNT = 8,
LED_PIN = 18, # GPIO接口 (PWM编码).
LED_BRIGHTNESS = 255, # 设置LED亮度 (0-255)
# 以下LED配置无需修改
LED_FREQ_HZ = 800000, # LED信号频率(以赫兹为单位)(通常为800khz)
LED_DMA = 10, # 用于生成信号的DMA通道(尝试5)
LED_INVERT = False, # 反转信号(使用NPN晶体管电平移位时)
LED_CHANNEL = 0
3、小灯与树莓派4B接线:
红色------5V
蓝色------GND
黄色------GPIO18
4、首先需要安装相关库:
4.1、在线安装:sudo pip install rpi-ws281x
4.2、直接安装:cd /home/pi/Desktop/rpi_ws281x-
sudo python3 setup.py install
4.3若没有安装pip的还得先安装pip:(装了则跳过此步骤)
sudo apt-get install python-pip在这里插入代码片
5、功能代码:
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
from PyQt5.QtGui import QGuiApplication, QScreen, QColor, QPixmap, QMouseEvent, QFont, QFontInfo, QFontDatabase
from PyQt5.QtCore import QEvent, Qt, QSize, QRect, QCoreApplication, QFile, QIODevice, QThread, pyqtSignal
import sys
from mainwindow_ledtest import Ui_MainWindow
import time
from rpi_ws281x import *
import argparse
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self,LED_COUNT = 8,
LED_PIN = 18, # GPIO接口 (PWM编码).
LED_BRIGHTNESS = 255, # 设置LED亮度 (0-255)
# 以下LED配置无需修改
LED_FREQ_HZ = 800000, # LED信号频率(以赫兹为单位)(通常为800khz)
LED_DMA = 10, # 用于生成信号的DMA通道(尝试5)
LED_INVERT = False, # 反转信号(使用NPN晶体管电平移位时)
LED_CHANNEL = 0):
super(MainWindow, self).__init__()
self.setupUi(self)
self.LED_COUNT = LED_COUNT
self.LED_PIN = LED_PIN
self.LED_BRIGHTNESS = LED_BRIGHTNESS
self.LED_FREQ_HZ = LED_FREQ_HZ
self.LED_DMA = LED_DMA
self.LED_INVERT = LED_INVERT
self.LED_CHANNEL = LED_CHANNEL
#
self.color_R.setValue(255)
self.light_up.setValue(255)
conuts = 0
self.location_text.setText(str(conuts))
# 设置整体亮度 关闭LED为0 最亮为255 范围0-255
# 该函数与下面的设置颜色都不会直接对LED进行修改,可以理解为将修改数据保存到缓存区。
#strip.setBrightness(200)
# Create NeoPixel object with appropriate configuration.
# 当下拉索引发生改变时发射信号触发绑定的事件
self.comboBox.currentIndexChanged.connect (self.selectionchange)
self.pushButton.clicked.connect(self.location_manage)
QComboBox类中的常用方法:
方法 描述
• :
意义
.addItem(string) #添加字