日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python rgb led控件_Raspberry Pi-用树莓派实现RGB LED的颜色控制——Python版本-电路城论坛 - 电子工程师学习交流园地...

發(fā)布時間:2023/12/19 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python rgb led控件_Raspberry Pi-用树莓派实现RGB LED的颜色控制——Python版本-电路城论坛 - 电子工程师学习交流园地... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用樹莓派實現(xiàn)RGB LED的顏色控制

RGB色彩模式是工業(yè)界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代 表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統(tǒng)之一。RGB色彩模式使用RGB模型為圖像中每一個像素的RGB分量分配一個0~255范圍內(nèi)的強度值。RGB圖像只使用三種顏色,就可以使它們按照不同的比例混合,從而得到各種各樣的顏色。

在實際的控制中,往往通過PWM來實現(xiàn)LED亮度(顏色深度)的控制。

樹莓派只有一路硬件PWM輸出(GPIO1),可是要實現(xiàn)RGB LED的控制,需要3路PWM。其實,wiringPi庫為我們提供了用軟件多線程實現(xiàn)的PWM輸出,我們可以利用這個庫提供的函數(shù)很方便的將任意GPIO配置為PWM輸出。在本例中,我將GPIO0,GPIO1,GPIO2配置成了soft PWM輸出。樹莓派的引腳分配表如下圖所示:

1.jpg (58.86 KB, 下載次數(shù): 75)

2018-1-16 17:36 上傳

我用的RGB LED是共陰極的,與樹莓派的連接方式如下:

Raspberry Pi? ?? ?? ?? ?? ???RGB LED module

GPIO0 --------------------------------------??R

GPIO1??-------------------------------------??G

GPIO2 --------------------------------------??B

GND ----------------------------------------??‘-’

實物圖如下:

2.jpg (99.81 KB, 下載次數(shù): 56)

2018-1-16 17:36 上傳

#!/usr/bin/env python

#*********************************************************

#? ?File Name :rgb.py

#? ?Author? ? :Jason Dai

#? ?Date? ?? ?: 2015/02/04

#*********************************************************

import RPi.GPIO as GPIO

import time

colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF, 0xFFFFFF, 0x9400D3]

pins = {'pin_R':11, 'pin_G':12, 'pin_B':13}??# pins is a dict

GPIO.setmode(GPIO.BOARD)? ?? ? # Numbers GPIOs by physical location

for i in pins:

GPIO.setup(pins, GPIO.OUT)? ?# Set pins' mode is output

GPIO.output(pins, GPIO.HIGH) # Set pins to high(+3.3V) to off led

p_R = GPIO.PWM(pins['pin_R'], 2000)??# set Frequece to 2KHz

p_G = GPIO.PWM(pins['pin_G'], 2000)

p_B = GPIO.PWM(pins['pin_B'], 5000)

p_R.start(100)? ?? ?# Initial duty Cycle = 100(leds off)

p_G.start(100)

p_B.start(100)

def map(x, in_min, in_max, out_min, out_max):? ?# 將一個數(shù)從一個區(qū)間線性映射到另一個區(qū)間,比如將0~100之間的一個數(shù)映射到0~255之間

return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

def setColor(col):? ?# For example : col = 0x112233

R_val = (col & 0xFF0000) >> 16

G_val = (col & 0x00FF00) >> 8

B_val = (col & 0x0000FF) >> 0

R_val = map(R_val, 0, 255, 0, 100)? ?# change a num(0~255) to 0~100.

G_val = map(G_val, 0, 255, 0, 100)

B_val = map(B_val, 0, 255, 0, 100)

p_R.ChangeDutyCycle(100 - R_val)? ???# Change duty cycle

p_G.ChangeDutyCycle(100 - G_val)

p_B.ChangeDutyCycle(100 - B_val)

try:

while True:

for col in colors:

setColor(col)

time.sleep(0.5)

except KeyboardInterrupt:

p_R.stop()

p_G.stop()

p_B.stop()

for i in pins:

GPIO.output(pins, GPIO.HIGH)? ? # Turn off all leds

GPIO.cleanup()

總結(jié)

以上是生活随笔為你收集整理的python rgb led控件_Raspberry Pi-用树莓派实现RGB LED的颜色控制——Python版本-电路城论坛 - 电子工程师学习交流园地...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。