如何更改 2x16 LCD 显示器的背光颜色



我正在使用带有 16 个针头引脚的 2x16 LCD 显示屏和树莓派 3 .为了显示消息,我安装并配置了Adafruit Char LCD库。它工作正常。

目前默认背光颜色为黄色,所以我想将其更改为其他颜色,如蓝色、红色。 为此,我导入了Adafruit_RGBCharLCD来自 Adafruit char LCD 库的类Adafruit_RGBCharLCD如下

class Adafruit_RGBCharLCD(Adafruit_CharLCD):
"""Class to represent and interact with an HD44780 character LCD display with
an RGB backlight."""
def __init__(self, rs, en, d4, d5, d6, d7, cols, lines, red, green, blue,
gpio=GPIO.get_platform_gpio(), 
invert_polarity=True,
enable_pwm=False,
pwm=PWM.get_platform_pwm(),
initial_color=(1.0, 1.0, 1.0)):
"""Initialize the LCD with RGB backlight.  RS, EN, and D4...D7 parameters 
should be the pins connected to the LCD RS, clock enable, and data line 
4 through 7 connections. The LCD will be used in its 4-bit mode so these 
6 lines are the only ones required to use the LCD.  You must also pass in
the number of columns and lines on the LCD.
The red, green, and blue parameters define the pins which are connected
to the appropriate backlight LEDs.  The invert_polarity parameter is a
boolean that controls if the LEDs are on with a LOW or HIGH signal.  By
default invert_polarity is True, i.e. the backlight LEDs are on with a
low signal.  If you want to enable PWM on the backlight LEDs (for finer
control of colors) and the hardware supports PWM on the provided pins,
set enable_pwm to True.  Finally you can set an explicit initial backlight
color with the initial_color parameter.  The default initial color is
white (all LEDs lit).
You can optionally pass in an explicit GPIO class,
for example if you want to use an MCP230xx GPIO extender.  If you don't
pass in an GPIO instance, the default GPIO for the running platform will
be used.
"""
super(Adafruit_RGBCharLCD, self).__init__(rs, en, d4, d5, d6, d7,
cols,
lines, 
enable_pwm=enable_pwm,
backlight=None,
invert_polarity=invert_polarity,
gpio=gpio, 
pwm=pwm)
self._red = red
self._green = green
self._blue = blue
# Setup backlight pins.
if enable_pwm:
# Determine initial backlight duty cycles.
rdc, gdc, bdc = self._rgb_to_duty_cycle(initial_color)
pwm.start(red, rdc)
pwm.start(green, gdc)
pwm.start(blue, bdc)
else:
gpio.setup(red, GPIO.OUT)
gpio.setup(green, GPIO.OUT)
gpio.setup(blue, GPIO.OUT)
self._gpio.output_pins(self._rgb_to_pins(initial_color))
def _rgb_to_duty_cycle(self, rgb):
# Convert tuple of RGB 0-1 values to tuple of duty cycles (0-100).
red, green, blue = rgb
# Clamp colors between 0.0 and 1.0
red = max(0.0, min(1.0, red))
green = max(0.0, min(1.0, green))
blue = max(0.0, min(1.0, blue))
return (self._pwm_duty_cycle(red), 
self._pwm_duty_cycle(green),
self._pwm_duty_cycle(blue))
def _rgb_to_pins(self, rgb):
# Convert tuple of RGB 0-1 values to dict of pin values.
red, green, blue = rgb
return { self._red:   self._blpol if red else not self._blpol,
self._green: self._blpol if green else not self._blpol,
self._blue:  self._blpol if blue else not self._blpol }
def set_color(self, red, green, blue):
"""Set backlight color to provided red, green, and blue values.  If PWM
is enabled then color components can be values from 0.0 to 1.0, otherwise
components should be zero for off and non-zero for on.
"""
if self._pwm_enabled:
# Set duty cycle of PWM pins.
rdc, gdc, bdc = self._rgb_to_duty_cycle((red, green, blue))
self._pwm.set_duty_cycle(self._red, rdc)
self._pwm.set_duty_cycle(self._green, gdc)
self._pwm.set_duty_cycle(self._blue, bdc)
else:
# Set appropriate backlight pins based on polarity and enabled colors.
self._gpio.output_pins({self._red:   self._blpol if red else not self._blpol,
self._green: self._blpol if green else not self._blpol,
self._blue:  self._blpol if blue else not self._blpol })
def set_backlight(self, backlight):
"""Enable or disable the backlight.  If PWM is not enabled (default), a
non-zero backlight value will turn on the backlight and a zero value will
turn it off.  If PWM is enabled, backlight can be any value from 0.0 to
1.0, with 1.0 being full intensity backlight.  On an RGB display this
function will set the backlight to all white.
"""
self.set_color(backlight, backlight, backlight)

我正在尝试按如下方式使用lcd.set_color(),但它不起作用。

import time
from Adafruit_CharLCD import Adafruit_RGBCharLCD
# instantiate lcd and specify pins
lcd = Adafruit_RGBCharLCD(rs=26, en=19,
d4=13, d5=6, d6=5, d7=11,
cols=16, lines=2,red=True,Green=True,Blue=True)
lcd.clear()
#setting backlight color as blue
lcd.set_color(0,0,100)

# display text on LCD display n = new line
lcd.message('2x16 CharLCDn  Raspberry Pi')

我正在使用 4 位节点,将最后两个引脚(作为背光引脚(连接到树莓派 gpio 引脚,如下所示:

背光引脚

15     LED+ or A        Pin No 2 of GPIO(5v Power)
16      LED- or K       Pin No 6 of GPIO(GND)

请帮我设置自定义颜色作为背光,因为我对这一切很陌生。

如果您的显示器有背光 (LED( 引脚,您只能打开和关闭背光,除非有一些可用的电压调节,我对此表示怀疑。 通常基于HD44780芯片的显示器不支持背光变色。您只能打开和关闭它。

相关内容

  • 没有找到相关文章

最新更新