// This sketch has been Refurbished by BUHOSOFT // IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY // CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD. // SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP. //#define DEBUG #include // Core graphics library #include // Hardware-specific library // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to // double up the pins with the touch screen (see the TFT paint example). #define LCD_CS A3 // Chip Select goes to Analog 3 #define LCD_CD A2 // Command/Data goes to Analog 2 #define LCD_WR A1 // LCD Write goes to Analog 1 #define LCD_RD A0 // LCD Read goes to Analog 0 #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: // With reversal for correcting colors #define BLACK 0xFFFF #define BLUE 0xFFE0 #define GREEN 0xF81F #define CYAN 0xF800 #define GRAY1 0x8410 #define RED 0x07FF //#define BRIGHT_RED 0x???? #define GRAY2 0x4208 #define MAGENTA 0x07E0 //Name Shows Black in IDE! #define YELLOW 0x001F #define WHITE 0x0000 Adafruit_ILI9341_8bit_AS tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // If using the shield, all control and data lines are fixed, and // a simpler declaration can optionally be used: // Adafruit_TFTLCD tft; void setup(void) { #ifdef DEBUG Serial.begin(9600); Serial.println(F("Rotation Test!")); #endif // DEBUG tft.reset(); uint16_t identifier = tft.readID(); if(identifier == 0x9325) { #ifdef DEBUG Serial.println(F("Found ILI9325 LCD driver")); } else if(identifier == 0x9328) { Serial.println(F("Found ILI9328 LCD driver")); } else if(identifier == 0x7575) { Serial.println(F("Found HX8347G LCD driver")); } else if(identifier == 0x9341) { Serial.println(F("Found ILI9341 LCD driver")); } else if(identifier == 0x8357) { Serial.println(F("Found HX8357D LCD driver")); #endif // DEBUG } else { #ifdef DEBUG Serial.print(F("Unknown LCD driver chip: ")); Serial.println(identifier, HEX); Serial.print(F("I try use ILI9341 LCD driver ")); Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:")); Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT")); Serial.println(F("should appear in the library header (Adafruit_TFT.h).")); Serial.println(F("If using the breakout board, it should NOT be #defined!")); Serial.println(F("Also if using the breakout, double-check that all wiring")); Serial.println(F("matches the tutorial.")); #endif // DEBUG identifier = 0x9341; } tft.begin(identifier); tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(F("This is a test of the rotation capabilities of the TFT library!")); Serial.println(F("Press (or type a character) to advance")); #endif // DEBUG } void loop(void) { #ifndef DEBUG rotatePixel(); #endif // DEBUG rotateLine(); rotateFastline(); rotateDrawrect(); rotateFillrect(); rotateDrawcircle(); rotateFillcircle(); rotateText(); } void rotateText() { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.setCursor(0, 30); tft.setTextColor(RED); tft.setTextSize(1); tft.println("Hello World!"); tft.setTextColor(YELLOW); tft.setTextSize(2); tft.println("Hello World!"); tft.setTextColor(GREEN); tft.setTextSize(3); tft.println("Hello World!"); tft.setTextColor(BLUE); tft.setTextSize(4); tft.print(1234.567); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateFillcircle(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.fillCircle(10, 30, 10, YELLOW); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateDrawcircle(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.drawCircle(10, 30, 10, YELLOW); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateFillrect(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.fillRect(10, 20, 10, 20, GREEN); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateDrawrect(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.drawRect(10, 20, 10, 20, GREEN); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateFastline(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.drawFastHLine(0, 20, tft.width(), RED); tft.drawFastVLine(20, 0, tft.height(), BLUE); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotateLine(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.drawLine(tft.width()/2, tft.height()/2, 0, 0, RED); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } } void rotatePixel(void) { for (uint8_t i=0; i<4; i++) { tft.fillScreen(BLACK); #ifdef DEBUG Serial.println(tft.getRotation(), DEC); #endif // DEBUG tft.drawPixel(10,20, RED); #ifdef DEBUG while (!Serial.available()); Serial.read(); Serial.read(); Serial.read(); #else delay(500); #endif // DEBUG tft.setRotation(tft.getRotation()+1); } }