树莓派RGB

简介

这是一款提供2行16字符RGB液晶显示的树莓派扩展板,该扩展板改善老版液晶显示器繁琐的接线使用方式,增加免对比度调节功能,减少了板子的使用难度让你更专注实现自己的项目。 我们将RGB LCD1602屏与扩展底板做了集成化设计,使扩展板更加美观的同时引出了树莓派原有GPIO端口,可方便连接更多设备。扩展板采用I2C通讯接口,即可控制LCD1602的1600万种颜色组合、背光亮度控制、显示控制。板载5颗按键,使你在树莓派/rock 4se上使用更方便,可用于显示切换、功能设置按键等,即可搭建您的数据监控和小型操作平台。

I2C 16x2 RGB LCD Key Pad HAT有两款显示效果可选:彩色底、彩色字体。

技术规格

按键接口说明

1

2

注: 使用按键需将跳线帽安装上,例如:按键Select 用跳线帽将GPIO16和Button引脚连接。

GPIO(BCM编号) 功能描述
16 Select按键
17 Up按键
18 Down按键
19 Left按键
20 Right按键

按键接口

使用教程

1、如何在树莓派/rock 4se上使用RGB LCD KeyPad HAT,并设置LCD屏的颜色。

2、按键的使用及程序调用方式。

准备

I2C 16X2 RGB LCD KeyPad HAT

1

2

操作步骤

1、将RGB LCD KeyPad HAT安装在树莓派板,树莓派系统默认没有开启I2C外设,需要手动进行开启:

在树莓派系统终端输入命令:sudo raspi-config

依次“键盘回车键”选择:【 Interfacing Options 】(或者【 Advanced Options 】)->【 I2C 】->【 Yes 】->【 OK 】->【 Finish 】:

step 1

step 2

step 3

step 4

step 5

2、检测RGB LCD KeyPad HAT扩展板的I2C地址是否被树莓派板总线检测到;

在树莓派系统终端输入命令:

安装测试工具:sudo apt-get install i2c-tools

检测总线上的I2C设备:sudo i2cdetect -y 1

未安装RGB LCD KeyPad HAT板到树莓派上的I2C检测状态

安装RGB LCD KeyPad HAT板到树莓派上的I2C检测状态

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

下载DFRobot_RGB1602_RaspberryPi库

查看是否下载树莓派板,输入命令:ls

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代码

安装 libmraa

开启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 屏幕显示红色

注意:如未安装vim编译器,需安装后继续以上操作,vim安装命令:sudo apt-get install vim-gtk


    #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

    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或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接