| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // ILI9341 example with embedded color bitmaps in sketch.
- // WILL NOT FIT ON ARDUINO UNO OR OTHER AVR BOARDS;
- // uses large bitmap image stored in array!
- // Options for converting images to the format used here include:
- // http://www.rinkydinkelectronics.com/t_imageconverter565.php
- // or
- // GIMP (https://www.gimp.org/) as follows:
- // 1. File -> Export As
- // 2. In Export Image dialog, use 'C source code (*.c)' as filetype.
- // 3. Press export to get the export options dialog.
- // 4. Type the desired variable name into the 'prefixed name' box.
- // 5. Uncheck 'GLIB types (guint8*)'
- // 6. Check 'Save as RGB565 (16-bit)'
- // 7. Press export to save your image.
- // Assuming 'image_name' was typed in the 'prefixed name' box of step 4,
- // you can have to include the c file, then using the image can be done with:
- // tft.drawRGBBitmap(0, 0, image_name.pixel_data, image_name.width, image_name.height);
- // See also https://forum.pjrc.com/threads/35575-Export-for-ILI9341_t3-with-GIMP
- #include "SPI.h"
- #include <Adafruit_ILI9341.h>
- #include "dragon.h"
- // For the Adafruit shield, these are the default.
- //#define TFT_DC 9
- //#define TFT_CS 10
- // Feather 32u4 or M0 with TFT FeatherWing:
- #define TFT_DC 10
- #define TFT_CS 9
- // ESP8266:
- //#define TFT_DC 15
- //#define TFT_CS 0
- // Other boards (including Feather boards) may have other pinouts;
- // see learn.adafruit.com/adafruit-2-4-tft-touch-screen-featherwing/pinouts
- Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
- // If using the breakout, change pins as desired
- //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
- void setup() {
- tft.begin();
- }
- void loop(void) {
- for(uint8_t r=0; r<4; r++) {
- tft.setRotation(r);
- tft.fillScreen(ILI9341_BLACK);
- for(uint8_t j=0; j<20; j++) {
- tft.drawRGBBitmap(
- random(-DRAGON_WIDTH , tft.width()),
- random(-DRAGON_HEIGHT, tft.height()),
- #if defined(__AVR__) || defined(ESP8266)
- dragonBitmap,
- #else
- // Some non-AVR MCU's have a "flat" memory model and don't
- // distinguish between flash and RAM addresses. In this case,
- // the RAM-resident-optimized drawRGBBitmap in the ILI9341
- // library can be invoked by forcibly type-converting the
- // PROGMEM bitmap pointer to a non-const uint16_t *.
- (uint16_t *)dragonBitmap,
- #endif
- DRAGON_WIDTH, DRAGON_HEIGHT);
- delay(1); // Allow ESP8266 to handle watchdog & WiFi stuff
- }
- delay(3000);
- }
- }
|