_SKU_DFR0374_LCD_Keypad_Shield_V2.0 - jimaobian/DFRobotWikiCn GitHub Wiki

|

概述

LCD Keypad Shield 是一款提供2行16字符液晶显示的Arduino扩展板。扩展了多个按键输入,可供用户作为LCD显示屏的菜单选择按键或者操控按键使用。对于Arduino初学者来说,不必为繁琐复杂液晶驱动电路连线而头疼了,这款LCD扩展板将电路简化,直接将此板插到Arduino控制器上即可使用,调用Arduino自带的LCD库,简单的几行代码便可以完成数据和字符的显示功能。

相比于V1.0版本,我们的V2.0版本将LCD镶嵌在PCB底部,只露出液晶屏。使扩展板看起来更加美观;去掉了液晶对比度调节的电位器,因为我们发现,这个调节对比度的功能不太常用,一般第一次设置好后就不需要再调节了,所以我们在设计的时候已经确定了比较合适的对比度,不需要用户自己去调整。同时去掉了V1.0版本中引出的所有扩展I/O口,使扩展板更加专注的实现自己的显示功能,并使用更高的按键,便于用户将LCD Keypad Shield所搭建的Arduino数据监控平台或者小型操控平台封装在模具内。

warning_yellow.png
IOREF引脚:

由于在V2版的设计中,添加了IOREF引脚,该引脚连接在5V口。因此,当DFR0374插在底层主控板上后,如果您的主控板的工作电压不是5V,如3.3V,建议您将DRI0009上的IOREF引脚用剪刀剪断,或者用用硬物划断PCB板上它们之间的接线,否则可能引起工作不正常或主控板烧坏等意外状况。如果主控板操作电压是5V,您可以放心使用。对此,我们深表歉意,我们将会在下一版本中修改此设计。如果给您带来不便,敬请谅解! |

产品参数

  • 工作电压:5V
  • 1602蓝色背景液晶(2行16字节)
  • 5个按键输入
  • 尺寸:54*84mm

引脚说明

| | | | ----------------------------------------------- | | | | | | DFR0374.png | |

引脚 描述
模拟脚0 按钮 (选择, 上, 右, 下,左)
数字脚4 DB4
数字脚5 DB5
数字脚6 DB6
数字脚7 DB7
数字脚8 RS (数据或信号显示选择)
数字脚9 使能(开始数据的读/ 写)
数字脚10 背光控制

所有的5个按键都是连接到A0引脚上的,他们的读取值和按下的按钮对应关系如下。如果同时按下多个按钮,会读取到所有按下按钮中A0读取值最小的一个。 由于模拟信号易受干扰,他们的A0读取值不一定与上表完全相同,±10的误差都是正常情况。

RIGHT 0
UP 206
DOWN 407
LEFT 624
SELECT 824
没有按键按下 1023

按键信号对照表 !按键号 !A0读取值

使用教程

下面我们以一个简单的样例,来教大家如何使用我们的LCD 按键扩展版。

准备

首先准备好下面的硬件及安装好软件

样例代码

硬件连接部分弄完了以后,我们就来看看软件部分怎么弄吧。 **新版的Arduino IDE已经内置了驱动1602屏幕的库LiquidCrystal,如果你的Arduino IDE缺少这个库请按下面步骤进行安装 **

  • 首先你需要下载下面链接的库文件及一些参考资料。将这个文件夹解压后复制出来放到我们ARDUINO安装目录下的libraries文件夹中就可以了。

    点击下载LCD Keypad Shield V2.0 library

    具体的安装库文件方法可以参考下面的链接

    如何安装库?

接下来我们就需要打开ARDUINO IDE了,将我们的下面的代码复制到IDE中,注意:将刚刚打开的IDE中的所有内容都删除掉!然后选好串口和板型(UNO),点击下载就OK了。

/***************************************************
 LCD Keypad Shield
 <http://www.dfrobot.com.cn/goods-1189.html>

 ***************************************************
 This example Test LCD liquid crystal display and 5 buttons properly.

 Created 2015-7-30
 By Loan <[email protected]>

 GNU Lesser General Public License.
 See <http://www.gnu.org/licenses/> for details.
 All above must be included in any redistribution
 ****************************************************/

/***********Notice and Trouble shooting***************
 1.Connection and Diagram can be found here
 <http://wiki.dfrobot.com.cn/index.php?title=%28SKU:DFR0374%29LCD_Keypad_Shield_V2.0>
 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
 3.LCD library is created by jonoxer.
 See <http://www.dfrobot.com.cn/images/upload/File/DFR0374/20151103105417pp7en5.zip Arduino LiquidCrystal library]> for details.
 ****************************************************/


#include <LiquidCrystal.h>
//Definitions used on the LCD to pin
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Define keys
int lcd_key     = 0;
int adc_key_in  = 0;

#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

//Read the key value
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);          // 0 read the ADC from analog values
 // By setting different threshold, you can read the corresponding to the appropriate buttons
 if (adc_key_in > 1000) return btnNONE;
 if (adc_key_in < 50)   return btnRIGHT;
 if (adc_key_in < 250)  return btnUP;
 if (adc_key_in < 450)  return btnDOWN;
 if (adc_key_in < 650)  return btnLEFT;
 if (adc_key_in < 850)  return btnSELECT;
 return btnNONE;
}

void setup()
{
 lcd.begin(16, 2);              // Start
 lcd.setCursor(0,0);
 lcd.print("Push the buttons"); //print“Push the buttons”
}

void loop()
{
 lcd.setCursor(9,1);
 lcd.print(millis()/1000);      // Output wait


 lcd.setCursor(0,1);            //
 lcd_key = read_LCD_buttons();  //  Reading keys

 switch (lcd_key)               // Judge key
 {
   case btnRIGHT:
     {
     lcd.print("RIGHT ");
     break;
     }
   case btnLEFT:
     {
     lcd.print("LEFT   ");
     break;
     }
   case btnUP:
     {
     lcd.print("UP    ");
     break;
     }
   case btnDOWN:
     {
     lcd.print("DOWN  ");
     break;
     }
   case btnSELECT:
     {
     lcd.print("SELECT");
     break;
     }
     case btnNONE:
     {
     lcd.print("NONE  ");
     break;
     }
 }

}

更多

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

shopping_car.png DFRobot商城购买链接 |}