View Raw Markdown
rev:384 · 2015-07-06T07:10:17+00:00
RGB 1602(chinese)
产品简介
相比原来的LCD1602显示模块我们做了一些改进,使其融合LCD多彩显示和按键扩展功能。
LCD1602是一款提供2行16字符液晶显示的树莓派扩展板。扩展了多个按键输入,可供用户作为LCD显示屏的菜单选择按键或者操控按键使用。
一个扩展板就能让你与树莓派进行互动。用户可以通过调节扩展板上的微型电位器,调节LCD屏的对比度。
对于树莓派初学者来说,不必为繁琐复杂液晶驱动电路连线而头疼了。
这款1602 LCD扩展板将电路简化,直接将此板插到树莓派系统板上即可使用。
通过i2c操作的mcp23016扩展io口,减少了对树莓派引脚的占用。
调用wiringPi的lcd库,简单的几行代码便可以完数据和字符的显示功能。
除此之外,显示模块可以单独取出和面包板搭配使用,避免了浪费。
产品参数
| 项目 | 参数 |
|---|---|
| 模块电压 | 5V |
| 背光颜色 | 红绿蓝 |
| 模块最大电流 | 60mA |
| LCD 显示模式 | STN |
| 工作温度 | 0~+50℃ |
| 存储温度 | -20~+70℃ |
| 模块尺寸 | 82x58(mm) |
| 显示区域 | 64.5x16 |
| 显示字符数目 | 16x2行 |
| 控制器 | SplC780 |
| 安装尺寸/孔径 | 75.0*31.0/ 2.8mm |
| 显示字符数目 | 16x2行 |
| LCD点大小 | 0.55*0.65mm |
| 接口形式/尺寸 | 18PIN,PH2.54,1.0mm |
产品展示
电气连接图
产品尺寸大小
RGB1602显示屏幕引脚说明
| 管脚号 | 符号 | 功能 |
|---|---|---|
| 1 | Vss | 电源地 |
| 2 | Vdd | 电源正极 |
| 3 | Vo | LCD偏压输入 |
| 4 | RS | 数据命令选择 |
| 5 | R/W | 读写控制信号 |
| 6 | E | 使能信号 |
| 7 | DB0 | 数据IO口0 |
| 8 | DB1 | 数据IO口1 |
| 9 | DB2 | 数据IO口2 |
| 10 | DB3 | 数据IO口3 |
| 11 | DB4 | 数据IO口4 |
| 12 | DB5 | 数据IO口5 |
| 13 | DB6 | 数据IO口6 |
| 14 | DB7 | 数据IO口7 |
| 15 | LEDA | LED背光灯正极 |
| 16 | LEDR | 红色LED背光灯控制 |
| 17 | LEDG | 绿色LED背光灯控制 |
| 18 | LEDB | 蓝色LED背光灯控制 |
如何使用
- 对于初次使用的用户请确保树莓派I2C接口已经打开,如何打I2C接口请参考 http://www.52pi.net/forum.php?mod=viewthread&tid=1363&highlight=rtc
- 操作RGB1602显示模块需要使用wiringPi库,如何安装wiringPi库请参考 http://wiringpi.com/download-and-install/
- wiringPi库安装完成后,在用户目录下输入以下代码
sudo vim.tiny lcd1602.c,新建一个c文件
- 将下面的示例代码复制进新建立的lcd1602.c文件
- 在vim编辑器下输入:字符,之后输入wq按回车键保存新建立的文件并退出编辑器
- 使用gcc编译刚刚建立的C文件,输入
gcc lcd1602.c -lwiringPi /home/pi/wiringPi/devLib/lcd.o -o lcd1602编译程序
- 编译成功好可以看到当前用户目录下面已经多了一个可执行文件lcd1602输入
sudo modprobe i2c-dev加载i2c模块
- 输入
sudo ./lcd1602执行可以看到RGB1602已经成功点亮了
- 彩色背光展示

示例代码说明
#include <stdio.h> //添加标准输入输出头文件
#include <wiringPi.h> //添加wiringpi头文件
#include <mcp23017.h> //添加mcp23017操作头文件
#include <lcd.h> //添加lcd操作头文件
#include <softPwm.h> //添加软件pwm头文件
int main()
{
long value=0;
int rand_num;
int value_blue; //蓝色背光亮度
int value_red; //红色背光亮度
int value_green; //绿色背光亮度
int display,i,count;
wiringPiSetup(); //初始化wiringPi
mcp23017Setup (100, 0x20); //初始化mcp23017芯片i2c地址0x20,地址起始100
printf ("Raspberry Pi - MCP23017 Test\n"); //打印信息
for(i=0;i<16;i++)
pinMode(100+i,OUTPUT); //配置引脚 100 - 115为输出
digitalWrite(101,0); //引脚101为低电平
display=lcdInit(2,16,4,100,102,103,104,105,106,0,0,0,0); //lcd初始化2*16,4位控制,使用100,101,102,103,104脚作为控制引脚
lcdHome(display); //光标复位
lcdClear(display); //清空屏幕
lcdPosition(display,0,0); //设置显示位置(0,0)
lcdPuts(display,"Hello World"); //打印字符Hello World
lcdPosition(display,0,1); //设置显示位置(0,1)
lcdPuts(display,"www.52pi.net"); //打印字符(www.52pi.net)
pinMode(0, OUTPUT); //树莓派GPIO引脚0设置为输出
pinMode(2, OUTPUT); //树莓派GPIO引脚2设置为输出
pinMode(3, OUTPUT); //树莓派GPIO引脚3设置为输出
softPwmCreate (3, 50, 100); //软件pwm设置引脚3 pwm值范围0-100 初始50
softPwmCreate (2, 50, 100); //软件pwm设置引脚2 pwm值范围0-100 初始50
softPwmCreate (0, 50, 100); //软件pwm设置引脚0 pwm值范围0-100 初始50
while(1) //循环
{
delay(200); //延时200ms
value_red=(value<100)?value:0; //0-100之间时红色颜色渐变
value_green=(value>100&&value<200)?(value-100):0; //100-200之间时绿色渐变
value_blue=(value>200)?(value-200):0; //200-300之间时蓝色渐变
if(value>300) //大于300时,颜色随机跳转
{
value_red=rand()%100;
value_green=rand()%100;
value_blue=rand()%100;
}
//rand_num=rand();
softPwmWrite (3,value_red); //软件pwm控制红色
softPwmWrite (2,value_green); //软件pwm控制绿色
softPwmWrite (0,value_blue); //软件pwm控制蓝色
value++;
if(value>900) //累加值在900,轮回
{
value=0;
}
lcdPosition(display,13,1);
lcdPrintf(display,"%d",value); //显示累加数值
//value_blue=0;
}
}