(SKU:DFR0514)IIC 16X2 RGB LCD KeyPad HAT(V1.0)

来自DFRobot Product Wiki
跳转至: 导航搜索


目录

简介

树莓派2代、3代、3代B+,一波又一波树莓派来袭,当然是不忘我们的树莓派粉丝们啦~ 为大家做了许多和Arduino一样体验感的产品。这不给粉丝们上一道秀色可观的‘菜’--IIC 16X2 RGB LCD KeyPad HAT!

这个扩展板不忘预留出树莓派扩展口原型排针用于接口扩展或者连接其他模块用,高度集成化的RGB LCD可控屏更是酷炫~,除此外板载了5颗按键,分别以人工学位摆放设计增强体验效果。

LCD屏是使用高品质RGB背光板制作而成,在保证了与我们使用的传统屏相同的情况下添加了可控背光的功能,以IIC一个接口引出 控制屏的显示和背光的控制。

技术规格

  • 工作电压:5V
  • 逻辑电平:3.3V
  • 工作电流:≤60mA
  • 显示描述:16*2
  • 通信方式:IIC/I2C
  • 背光:RGB可调背光(1600万)
  • 存放温度:-30 to +80℃
  • 工作温度:-20℃~70℃
  • 尺寸:85.0mm×56.0mm×13.0mm


按键接口说明

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


使用教程

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

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

准备

  • 硬件
    • 1 x 树莓派控制板
    • 1 x RGB LCD KeyPad HAT
    • 1 x HDMI线
    • 1 x 显示屏
    • 1 x 键盘鼠标


IIC 16X2 RGB LCD KeyPad HAT



操作步骤

 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扩展板的IIC地址是否被树莓派板总线检测到;

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

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

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

未安装RGB LCD KeyPad HAT板到树莓派上的IIC检测状态
安装RGB LCD KeyPad HAT板到树莓派上的IIC检测状态
 3、经过前面2步骤的准备工作,我们正式进入RGB LCD KeyPad HAT的使用,首先我们需要将库文件拷贝到树莓派板,以下有2种方式可以实现拷贝:

a、点击下载DFRobot_RGB1602_RaspberryPi,将下载后的文件拷贝到U盘 -> 再通过U盘拷贝到树莓派板;

b、如果您的树莓派板现在是连接到网络的,可以使用树莓派终端通过git命令直接获取,输入命令:git clone https://github.com/DFRobot/DFRobot_RGB1602_RaspberryPi.git

下载DFRobot_RGB1602_RaspberryPi库
查看是否下载树莓派板,输入命令:ls
 4、运行C++例程【SetColor】:设置LCD屏的颜色为红色

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

a、将目录切换到DFRobot_RGBLCD库:cd DFRobot_RGB1602_RaspberryPi/DFRobot_RGBLCD

b、查看DFRobot_RGBLCD中的文件:ls

c、将目录切换到CPP例程文件:cd cpp

d、查看CPP中的文件:ls (执行此命令后,可以看到所有的C++编写的例程)

e、将目录切换到SetColor:cd SetColor

f、编译例程:make

g、执行SetColor例程:./SetColor

Step100.png
  • 注意:如果遇到编译失败,可尝试执行“make clean”命令,再执行“make”命令。
 4-1、运行python例程【SetColor】:设置LCD屏的颜色为红色

a、安装python3的wiringpi库:pip3 install wiringpi

b、将目录切换到DFRobot_RGBLCD库:cd DFRobot_RGB1602_RaspberryPi/DFRobot_RGBLCD

c、查看DFRobot_RGBLCD中的文件:ls

d、将目录切换到python3例程文件:cd python3

e、查看python3中的文件:ls (执行此命令后,可以看到所有的python编写的例程)

f、将目录切换到SetColor:cd SetColor

g、执行SetColor例程: python3 SetColor.py

Python3wiringpi库.PNG


Step11.png


样例代码一【C例程】

 功能:设置RGB LCD 屏的颜色;
 结果: 输入 r:255  g:0  b:0   屏幕显示红色
  • 如果需要查看和编辑代码可以下载到Windows直接打开或者在树莓派系统的DFRobot_RGB1602_RaspberryPi/DFRobot_RGBLCD/cpp/SetColor目录下输入命令:vim SetColor.cpp
  • 需要保存退出:按ESC后,直接按shift+zz,或者切换到大写模式按ZZ;直接退出不保存:先按ESC,再输入冒号,在输入命令时,直接输入"q!"。
Vim打开c程序.PNG
#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直接打开或者在树莓派系统在DFRobot_RGB1602_RaspberryPi/DFRobot_RGBLCD/python3/Button目录下:输入命令;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或者论坛联系我们!


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


更多

  • 有趣的应用链接
  • 相关下载链接
  • 推荐阅读链接
  • 旧版本维库的链接


DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱