(SKU:DFR0387)TELEMATICS LCD SHIELD V1.0

来自DFRobot Product Wiki
跳转至: 导航搜索
DFR0355 TELEMATICS LCD SHIELD V1.0

目录

概 述

TELEMATICS LCD扩展板是DFRobot针对MEGA系列主板开发的一款3.5" TFT LCD触摸屏,320*480分辨率,外扩3个串口和一个IIC接口。完美兼容Arduino DUE、Mega1280/2560 和Bluno Mega1280/2560。板载电压切换开关,可手动切换3.3V和5V输出电压,确保两者都能正常使用。此外LCD背面带有一个MicroSD卡槽,可以用来存取数据信息,最大支持32G外置存储卡。
对于Arduino初学者来说,繁琐而复杂的液晶驱动电路连线一直困扰着很多人,一不小心就会连错,每次上电前都要细心检查一遍。而这款极简化的LCD扩展板就能很好的满足这些需求。并且我们提供了各类驱动包,帮助您实现各种功能。

Warning yellow.png

注意:为了避免Due和MEGA两个芯片不同的工作电压而导致驱动液晶背光亮度不同,你可以通过调节D8的PWM而控制液晶背光亮度。


技术规格

  • 屏幕尺寸:3.5"
  • 分辨率:320x480
  • 供电电源:5 V
  • 输出电源:3.3/5 V
  • 背景光控制方式:PWM (D8,高电平有效)
  • 支持MicroSD卡(最大32GB)
  • 外扩三个UART扩展接口
  • 外扩一个IIC扩展接口
  • 兼容Arduino DUE/Mega 1280/2560
  • 兼容Bluno Mega 1280/2560
  • 支持触摸功能
  • 大小:100*57mm
  • 重量:70g

接口示意图

Lcd.png
接口 功能描述
IIC接口 IIC 接口(SDA: 20; SCL: 21)
串口1 Serial1
串口2 Serial2
串口3 Serial3
SD接口 D50->DATA0
D51->CMD
D52->CLK
D53->CD/DATA3


注意:
  • SD接口:箭头方向表示控制连线,而非直接连线
  • 液晶驱动被占用引脚:D2、D3、D4、D5、D6、D8、D22~D41、D50~D53


使用教程

请先下载TELEMATICS LCD SHIELD相关库文件并安装库文件。TELEMATICS 点击下载 将下载的所有库文件安装导入到你的编译器下面,即可使用

库文件的导入

如何安装库?

样例代码一

功能简述:例程给出来如何初始化LCD,并打印字符串到屏幕上面。用户可以通过setFontSize和setColor函数来修改字符串字体和颜色。

/*
This code is to teach you how to make the LCD display string with the library.
Maybe you need to set the font size, you can call this function "setFontSize()",and you can pass the parameters :
    FONT_SIZE_SMALL 
    FONT_SIZE_MEDIUM
    FONT_SIZE_LARGE
    FONT_SIZE_XLARGE
and if you want to change the font color,you can call this function "setColor()" with the parameters:
    RGB16_RED-------->RED 
    RGB16_GREEN------>GREEN 
    RGB16_BLUE------->BLUE 
    RGB16_YELLOW----->YELLOW 
    RGB16_CYAN------->CYAN 
    RGB16_PINK------->PINK 
    RGB16_WHITE------>WHITE 
 Created 2016-4-8
 By Andy zhou <Andy.zhou@dfrobot.com>
 version:V1.0
*/
#include <Arduino.h>
#include <SPI.h>
#include <MultiLCD.h>

LCD_R61581 lcd;

void setup(){
  lcd.begin();
  lcd.setFontSize(FONT_SIZE_MEDIUM);  //set font size
  lcd.setColor(RGB16_RED);  //set strings color
  lcd.println();
  lcd.println();
  lcd.println("DFRobot!!!");
  lcd.println("TELEMATICS LCD SHIELD V1.0");
  lcd.println();
  lcd.setColor(RGB16_WHITE);
}

void loop(){
}

样例代码二

功能简述:在样例代码一的基础上,进一步学习如何使用SD卡库文件。

/*
/*
This code is to teach you how to use SD library.
   
 Created 2016-4-8
 By Andy zhou <Andy.zhou@dfrobot.com>
 version:V1.0
*/
#include <Arduino.h>
#include <SPI.h>
#include <MultiLCD.h>
#include <SD.h>
#include "datalogger.h"

#define STATE_SD_READY 0x1
#define STATE_OBD_READY 0x2
#define STATE_GPS_CONNECTED 0x4
#define STATE_GPS_READY 0x8
#define STATE_MEMS_READY 0x10
#define STATE_GUI_ON 0x20

LCD_R61581 lcd;
CDataLogger logger;

byte state = 0;

bool checkSD()
{
    Sd2Card card;
    SdVolume volume;
    state &= ~STATE_SD_READY;
    pinMode(SS, OUTPUT);

    lcd.setFontSize(FONT_SIZE_MEDIUM);
    if (card.init(SPI_HALF_SPEED, SD_CS_PIN)) {
        const char* type;
        switch(card.type()) {
        case SD_CARD_TYPE_SD1:
            type = "SD1";
            break;
        case SD_CARD_TYPE_SD2:
            type = "SD2";
            break;
        case SD_CARD_TYPE_SDHC:
            type = "SDHC";
            break;
        default:
            type = "SDx";
        }

        lcd.print(type);
        lcd.write(' ');
        if (!volume.init(card)) {
            lcd.print("No FAT!");
            return false;
        }

        uint32_t volumesize = volume.blocksPerCluster();
        volumesize >>= 1; // 512 bytes per block
        volumesize *= volume.clusterCount();
        volumesize >>= 10;

        lcd.print((int)volumesize);
        lcd.print("MB");
    } else {
        lcd.println("No SD Card");
        return false;
    }

    if (!SD.begin(SD_CS_PIN)) {
        lcd.println("Bad SD");
        return false;
    }

    state |= STATE_SD_READY;
    return true;
}

void setup(){
  lcd.begin();
  lcd.setFontSize(FONT_SIZE_MEDIUM);  //set font size
  lcd.setColor(RGB16_RED);  //set strings color
  lcd.println();
  lcd.println();
  lcd.println("DFRobot!!!");
  lcd.println("TELEMATICS LCD SHIELD V1.0");
  lcd.println();
  lcd.setColor(RGB16_WHITE);
  if (checkSD()) {
        uint16_t index = logger.openFile();
        lcd.println();
        if (index > 0) {
            lcd.print("File ID:");
            lcd.println(index);
        } else {
            lcd.print("No File");
        }
    }
}

void loop(){
}


样例代码三

功能简述:主要是实现触摸功能


#include <Arduino.h>
#include <SPI.h>
#include <MultiLCD.h>
#include "touch.h"

LCD_R61581 lcd;


void setup(){
  lcd.begin();
  lcd.setFontSize(FONT_SIZE_MEDIUM);  //set font size
  lcd.setColor(RGB16_YELLOW);  //set strings color
  lcd.println("DFRobot");
  lcd.println("TELEMATICS LCD SHIELD V1.0");
  lcd.println();
  lcd.setColor(RGB16_WHITE);
  
  touch.init();
}

void loop(){
  lcd.setCursor(0, 8);
  int x, y;
  if ( touch.read(x, y) ){
    lcd.print("X:");
    lcd.print(x);
    lcd.print(" Y:");
    lcd.print(y);
    lcd.print("  ");
  } else {
    lcd.print("           ");
  }
}


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


更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱