That module has LCD display, touch input, and SD card reader. I have written some example programs to use that module and they are available at the following link.
https://github.com/yan9a/cearduino/tree/master/tft_lcd_touch
LCD Display
The following code is for display. Adafruit_GFX and Adafruit_TFTLCD libraries should be put in Arduino libraries folder.#include < Adafruit_GFX.h > // Core graphics library #include < Adafruit_TFTLCD.h > // Hardware-specific library //The control pins for the LCD can be assigned to any digital or analog pins. #define LCD_CS A3 // Chip Select #define LCD_CD A2 // Command/Data #define LCD_WR A1 // LCD Write #define LCD_RD A0 // LCD Read #define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin // When using the BREAKOUT BOARD only, use these 8 data lines to the LCD: // For the Arduino Uno, Duemilanove, Diecimila, etc.: // D0 connects to digital pin 8 (Notice these are // D1 connects to digital pin 9 NOT in order!) // D2 connects to digital pin 2 // D3 connects to digital pin 3 // D4 connects to digital pin 4 // D5 connects to digital pin 5 // D6 connects to digital pin 6 // D7 connects to digital pin 7 // For the Arduino Mega, use digital pins 22 through 29 // (on the 2-row header at the end of the board). // Assign human-readable names to some common 16-bit color values: #define BLACK 0xFFFF #define BLUE 0xFFE0 #define RED 0x07FF #define GREEN 0xF81F #define CYAN 0xF800 #define MAGENTA 0x07E0 #define YELLOW 0x001F #define WHITE 0x0000 Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); void setup(void) { tft.reset(); tft.begin(0x9341); tft.setRotation(3); tft.fillScreen(BLACK); } void loop(void) { tft.setCursor(20,20); tft.setTextColor(RED & BLUE); tft.setTextSize(8); tft.println("16:30"); tft.setCursor(20,100); tft.setTextColor(GREEN); tft.setTextSize(4); tft.println("2016/Jul/22"); tft.setCursor(10,150); tft.setTextColor(YELLOW); tft.setTextSize(3); tft.println("ME 1378 Waso "); tft.setCursor(10,180); tft.setTextColor(YELLOW); tft.setTextSize(3); tft.println("Waning 3"); delay(1000); }
Touch Input
An example for touch input is shown below. Touch screen library should also be put in Arduino libraries folder.#include < Adafruit_GFX.h > // Core graphics library #include < Adafruit_TFTLCD.h > // Hardware-specific library #include < TouchScreen.h > #define XP 7 #define XM A1 #define YM 6 #define YP A2 #define MINPRESSURE 10 #define MAXPRESSURE 1000 #define PENRADIUS 3 #define TS_MINX 150 #define TS_MINY 120 #define TS_MAXX 920 #define TS_MAXY 940 // For better pressure precision, we need to know the resistance // between X+ and X- Use any multimeter to read it // For the one we're using, its 300 ohms across the X plate TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 // Assign human-readable names to some common 16-bit color values: #define BLACK 0xFFFF #define BLUE 0xFFE0 #define RED 0x07FF #define GREEN 0xF81F #define CYAN 0xF800 #define MAGENTA 0x07E0 #define YELLOW 0x001F #define WHITE 0x0000 Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); void setup(void) { tft.reset(); tft.begin(0x9341); tft.fillScreen(BLACK); tft.setCursor(20,20); tft.setTextColor(YELLOW); tft.setTextSize(3); tft.println("Touch me!"); pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); TSPoint p = ts.getPoint(); digitalWrite(13, LOW); pinMode(XM, OUTPUT); pinMode(YP, OUTPUT); if (p.z > MINPRESSURE && p.z < MAXPRESSURE) { // scale from 0->1023 to tft.width p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0); p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0); tft.fillCircle(p.x, p.y, PENRADIUS, RED); } }
SD Card
This is just a replication of SD card reading and writing example as shown in Arduino website. I just changed CS pin to match this module./* SD card read/write This example shows how to read and write data to and from an SD card file The circuit: * SD card attached to SPI bus as follows: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 10 created Nov 2010 by David A. Mellis modified 9 Apr 2012 by Tom Igoe This example code is in the public domain. */ #include < SPI.h > #include < SD.h > File myFile; void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.print("Initializing SD card..."); if (!SD.begin(10)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. myFile = SD.open("test.txt", FILE_WRITE); // if the file opened okay, write to it: if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing lcd sd writing."); // close the file: myFile.close(); Serial.println("done."); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } // re-open the file for reading: myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); // read from the file until there's nothing else in it: while (myFile.available()) { Serial.write(myFile.read()); } // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } } void loop() { // nothing happens after setup }
No comments:
Post a Comment
Comments are moderated and don't be surprised if your comment does not appear promptly.