简介
这是一款提供2行16字符RGB液晶显示的树莓派扩展板,该扩展板改善老版液晶显示器繁琐的接线使用方式,增加免对比度调节功能,减少了板子的使用难度让你更专注实现自己的项目。 我们将RGB LCD1602屏与扩展底板做了集成化设计,使扩展板更加美观的同时引出了树莓派原有GPIO端口,可方便连接更多设备。扩展板采用I2C通讯接口,即可控制LCD1602的1600万种颜色组合、背光亮度控制、显示控制。板载5颗按键,使你在树莓派/rock 4se上使用更方便,可用于显示切换、功能设置按键等,即可搭建您的数据监控和小型操作平台。
I2C 16x2 RGB LCD Key Pad HAT有两款显示效果可选:彩色底、彩色字体。
技术规格
- 工作电压:5V
- 逻辑电平:3.3V
- 工作电流:≤60mA
- 显示描述:16*2
- 通信方式:I2C
- 背光:RGB可调背光(1600万)
- 存放温度:-30 to +80℃
- 工作温度:-20℃~70℃
- 尺寸:85.0mm×56.0mm×13.0mm
按键接口说明
注: 使用按键需将跳线帽安装上,例如:按键Select 用跳线帽将GPIO16和Button引脚连接。
GPIO(BCM编号) | 功能描述 |
---|---|
16 | Select按键 |
17 | Up按键 |
18 | Down按键 |
19 | Left按键 |
20 | Right按键 |
按键接口
使用教程
1、如何在树莓派/rock 4se上使用RGB LCD KeyPad HAT,并设置LCD屏的颜色。
2、按键的使用及程序调用方式。
准备
- 硬件
- 1 x 树莓派/rock 4se控制板
- 1 x RGB LCD KeyPad HAT
- 1 x HDMI线
- 1 x 显示屏
- 1 x 键盘鼠标
I2C 16X2 RGB LCD KeyPad HAT
操作步骤
1、将RGB LCD KeyPad HAT安装在树莓派板,树莓派系统默认没有开启I2C外设,需要手动进行开启:
在树莓派系统终端输入命令:sudo raspi-config
依次“键盘回车键”选择:【 Interfacing Options 】(或者【 Advanced Options 】)->【 I2C 】->【 Yes 】->【 OK 】->【 Finish 】:
2、检测RGB LCD KeyPad HAT扩展板的I2C地址是否被树莓派板总线检测到;
在树莓派系统终端输入命令:
安装测试工具:sudo apt-get install i2c-tools
检测总线上的I2C设备:sudo i2cdetect -y 1
3、经过前面2步骤的准备工作,我们正式进入RGB LCD KeyPad HAT的使用,首先我们需要将库文件拷贝到树莓派板,以下有2种方式可以实现拷贝:
a、点击下载DFRobot_RGB1602_RaspberryPi,将下载后的文件拷贝到U盘 -> 再通过U盘拷贝到树莓派板;
b、如果您的树莓派板现在是连接到网络的,可以使用树莓派终端通过git命令直接获取,输入命令:git clone https://gitee.com/DFRobot/DFRobot_RGB1602_RaspberryPi.git
4、运行C++例程【SetColor】:设置LCD屏的颜色为红色
在树莓派系统终端输入命令:
a、将目录切换到DFRobot_RGB1602_RaspberryPi库:cd DFRobot_RGB1602_RaspberryPi
b、查看DFRobot_RGB1602_RaspberryPi中的文件:ls
c、将目录切换到CPP例程文件:cd cpp/examples
d、查看CPP中的文件:ls (执行此命令后,可以看到所有的C++编写的例程)
e、编译及执行例程:make xxx ((例如,使用SetColor.cpp例程:make SetColor)
f、如下图所示,在终端输入r:255 (回车) g:0 (回车) b:0 (回车)
i、退出程序:Ctrl+C
4-1、运行python例程【SetColor】:设置LCD屏的颜色为红色
a、安装python3的wiringpi库:pip3 install wiringpi
b、将目录切换到DFRobot_RGB1602_RaspberryPi库:cd DFRobot_RGB1602_RaspberryPi
c、查看DFRobot_RGB1602_RaspberryPi中的文件:ls
d、将目录切换到python3例程文件:cd python/examples
e、查看python3中的文件:ls (执行此命令后,可以看到所有的python编写的例程)
f、执行SetColor例程: python3 SetColor.py
g、如下图所示,在终端输入r:255 (回车) g:0 (回车) b:0 (回车)
h、退出程序:Ctrl+C
rock 4se上使用
注:rock 4se只兼容了python代码
开启ROCK PI的i2c
打开文件/boot/hw_intfc.conf
将i2c7=off修改为i2c7=on
# Hardware Interface Config
# For more details, check https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays.
# Set "on" to enable the optional hardware interfaces while set "off" to disable.
intfc:pwm0=off
intfc:pwm1=off
intfc:uart2=off
intfc:uart4=off
intfc:spi1=off
intfc:spi2=off
intfc:i2c2=off
intfc:i2c6=off
intfc:i2c7=oN
# Devicetree Overlay Enable, uncomment to enable .dtbo under /boot/overlays/.
#intfc:dtoverlay=at24c02
#intfc:dtoverlay=two-color-led
#intfc:dtoverlay=console-on-ttyS2
#intfc:dtoverlay=console-on-ttyS4
#intfc:dtoverlay=devspi1
#intfc:dtoverlay=devspi2
安装smbus
pip install smbus
下载库文件
git clone https://github.com/DFRobot/DFRobot_RGB1602_RaspberryPi.git
cd DFRobot_RGB1602_RaspberryPi/python/examples
sudo python3 xxx.py
注:使用Ubuntu系统
样例代码一【C例程】
功能:设置RGB LCD 屏的颜色;
结果: 输入 r:255 g:0 b:0 屏幕显示红色
- 如果需要查看和编辑代码可以下载到Windows直接打开或者在树莓派系统DFRobot_RGB1602_RaspberryPi/cpp/examples目录下输入命令:vim SetColor.cpp
注意:如未安装vim编译器,需安装后继续以上操作,vim安装命令:sudo apt-get install vim-gtk
- 需要保存退出:按ESC后,直接按shift+zz,或者切换到大写模式按ZZ;直接退出不保存:先按ESC,再输入冒号,在输入命令时,直接输入"q!"。
#include "../DFRobot_RGBLCD.h"
#include <iostream>
#include <string>
using namespace std;
int main(){
int r,g,b;
DFRobot_RGBLCD lcd(16, 2);
// initialize
lcd.init();
// Print a message to the LCD.
lcd.print("set cllor");
while(1){
cout << "r:";
cin >> r;
cout << "g:";
cin >> g;
cout << "b:";
cin >> b;
lcd.setRGB(r, g, b);
cout << "r = " << r
<< "g = " << g
<< "b = " << b
<< endl;
}
return 0;
}
}
样例代码二【python例程】
功能:检测按钮功能;
结果: 当按下‘上’按钮,LCD屏显示 Push the buttons UP
当按下‘下’按钮,LCD屏显示 Push the buttons DOWN
当按下‘左’按钮,LCD屏显示 Push the buttons LEFT
当按下‘右’按钮,LCD屏显示 Push the buttons RIGHT
当按下‘选择’按钮,LCD屏显示 Push the buttons SELECT
- 如果需要查看和编辑代码,可以下载到Windows直接打开或者在树莓派/rock 4se unubutu系统在DFRobot_RGB1602_RaspberryPi/python/examples目录下:输入命令;vim Button.py
- 需要保存退出:按ESC后,直接按shift+zz,或者切换到大写模式按ZZ;直接退出不保存:先按ESC,再输入冒号,在输入命令时,直接输入"q!"。
import sys
sys.path.append('../')
import RPi.GPIO as GPIO
import rgb1602
import time
lcd = rgb1602.RGB1602(16,2)
GPIO.setmode(GPIO.BCM)
# Define keys
lcd_key = 0
key_in = 0
btnRIGHT = 0
btnUP = 1
btnDOWN = 2
btnLEFT = 3
btnSELECT = 4
GPIO.setup(16, GPIO.IN)
GPIO.setup(17, GPIO.IN)
GPIO.setup(18, GPIO.IN)
GPIO.setup(19, GPIO.IN)
GPIO.setup(20, GPIO.IN)
#Read the key value
def read_LCD_buttons():
key_in16 = GPIO.input(16)
key_in17 = GPIO.input(17)
key_in18 = GPIO.input(18)
key_in19 = GPIO.input(19)
key_in20 = GPIO.input(20)
if (key_in16 == 1):
return btnSELECT
if (key_in17 == 1):
return btnUP
if (key_in18 == 1):
return btnDOWN
if (key_in19 == 1):
return btnLEFT
if (key_in20 == 1):
return btnRIGHT
lcd.setCursor(0,0)
lcd.print("Push the buttons"); #print“Push the buttons”
while True:
lcd.setCursor(0,1)
lcd_key = read_LCD_buttons() # Reading keys
if (lcd_key == btnRIGHT):
lcd.print("RIGHT ")
elif (lcd_key == btnLEFT):
lcd.print("LEFT ")
elif (lcd_key == btnUP):
lcd.print("UP ")
elif (lcd_key == btnDOWN):
lcd.print("DOWN ")
elif (lcd_key == btnSELECT):
lcd.print("SELECT")
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。