#include <Arduino.h>#include <SPI.h>#include <MCUFRIEND_kbv.h>#include <Adafruit_GFX.h> // Core graphics library#include <Adafruit_I2CDevice.h> #include <FS.h> #include <SPIFFS.h> // Assign human-readable names to some common 16-bit color values:#define BLACK 0x0000#define BLUE 0x001F#define RED 0xF800#define GREEN 0x07E0#define CYAN 0x07FF#define MAGENTA 0xF81F#define YELLOW 0xFFE0#define WHITE 0xFFFFMCUFRIEND_kbv tft;uint16_t ox=0, oy=0;int ave=0, avec=0, avet=0;////////////////////////////////////////////////////////////////void aveg(void){ int z=0; Serial.println(ave); Serial.println(avec); avet=ave/avec; Serial.println(avet); avet=avet*32; for (int i=0; i<24; i++){ for (uint16_t a=0; a<3; a++) { tft.drawLine(avet+a, z, avet+a, z+10, 0xFB21); } // thick for (uint16_t a=0; a<2; a++) { tft.drawLine(avet-a, z, avet-a, z+10, 0xFB21);} delay(100); z=z+20; } } void dchart_10x10(uint16_t nx,uint16_t ny) { ave+=nx; avec++; nx=nx*32; ny=ny*48; tft.drawCircle(nx, ny, 10, 0x0517); tft.drawCircle(nx, ny, 9, 0x0517); tft.fillCircle(nx, ny, 7, 0x0517); delay (100); ox=nx; oy=ny; } void dotchart_10x10(uint16_t nx,uint16_t ny) { ave+=nx; avec++; nx=nx*32; ny=ny*48; int plus=0; float fplus=0; int sign=0; int y=0,x=0; y=oy; x=ox; float xmines, ymines; xmines=nx-ox; ymines=ny-oy; if (ox > nx) { xmines=ox-nx; sign=1; } else sign=0; for (int a=0; a<(ny-oy); a++) { fplus+=xmines/ymines; plus=fplus; if (sign==1) tft.drawFastHLine(0, y, x-plus, 0xBFDF); else tft.drawFastHLine(0, y, x+plus, 0xBFDF); y++; delay(5); } for (uint16_t a=0; a<2; a++){ tft.drawLine(ox+a, oy, nx+a, ny, 0x01E8);} // thick for (uint16_t a=0; a<2; a++){ tft.drawLine(ox, oy+a, nx, ny+a, 0x01E8);} ox=nx; oy=ny;}////////////////////////////////////////////////////////////////////void setup(void) { Serial.begin(115200); Serial.println(F("TFT LCD test")); tft.reset(); uint16_t identifier = tft.readID(); if(identifier == 0x9325) { Serial.println(F("Found ILI9325 LCD driver")); } else if(identifier == 0x9328) { Serial.println(F("Found ILI9328 LCD driver")); } else if(identifier == 0x4535) { Serial.println(F("Found LGDP4535 LCD driver")); }else if(identifier == 0x7575) { Serial.println(F("Found HX8347G LCD driver")); } else if(identifier == 0x9595) { Serial.println(F("Found HX8347-I LCD driver")); } else if(identifier == 0x4747) { Serial.println(F("Found HX8347-D LCD driver")); } else if(identifier == 0x8347) { Serial.println(F("Found HX8347-A LCD driver")); }else if(identifier == 0x9341) { Serial.println(F("Found ILI9341 LCD driver")); }else if(identifier == 0x7783) { Serial.println(F("Found ST7781 LCD driver")); }else if(identifier == 0x8230) { Serial.println(F("Found UC8230 LCD driver")); }else if(identifier == 0x8357) { Serial.println(F("Found HX8357D LCD driver")); } else if(identifier==0x0101){ identifier=0x9341; Serial.println(F("Found 0x9341 LCD driver")); }else if(identifier==0x7793){ Serial.println(F("Found ST7793 LCD driver")); }else if(identifier==0xB509){ Serial.println(F("Found R61509 LCD driver")); }else if(identifier==0x9486){ Serial.println(F("Found ILI9486 LCD driver")); }else if(identifier==0x9488){ Serial.println(F("Found ILI9488 LCD driver")); }else { Serial.print(F("Unknown LCD driver chip: ")); Serial.println(identifier, HEX); 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.")); identifier=0x9486; } tft.begin(identifier); tft.fillScreen(BLACK); unsigned long start = micros(); tft.setCursor(0, 0); tft.setTextColor(RED); tft.setTextSize(1); tft.println("Hello World!"); tft.println(01234.56789); tft.println(0xDEADBEEF, HEX); tft.println(); tft.println(); tft.setTextColor(GREEN); tft.setTextSize(2); tft.println("Hello World!"); tft.println(01234.56789); tft.println(0xDEADBEEF, HEX); tft.println(); tft.println(); tft.setTextColor(BLUE); tft.setTextSize(3); tft.println("Hello World!"); tft.println(01234.56789); tft.println(0xDEADBEEF, HEX); tft.setTextColor(WHITE); tft.setTextSize(4); tft.println("Hello!"); tft.setTextColor(YELLOW); tft.setTextSize(5); tft.println("Hello!"); tft.setTextColor(RED); tft.setTextSize(6); tft.println("Hello!"); tft.println(); tft.println(); delay(1000);}void loop(void) { tft.invertDisplay(true); tft.fillScreen(0xffff); dotchart_10x10(3, 0); dotchart_10x10(2, 1); dotchart_10x10(4, 2); dotchart_10x10(4, 3); dotchart_10x10(5, 4); dotchart_10x10(3, 5); dotchart_10x10(6, 6); dotchart_10x10(7, 7); dotchart_10x10(9, 8); dotchart_10x10(8, 9); dotchart_10x10(10, 10); dchart_10x10(3, 0); dchart_10x10(2, 1); dchart_10x10(4, 2); dchart_10x10(4, 3); dchart_10x10(5, 4); dchart_10x10(3, 5); dchart_10x10(6, 6); dchart_10x10(7, 7); dchart_10x10(9, 8); dchart_10x10(8, 9); dchart_10x10(10, 10); tft.setRotation(1); tft.setTextSize(2); tft.setTextColor(0x01E8); tft.setCursor(20, 20); tft.print("Average"); int dl=20; for (int i=0;i < 6;i++) { for (uint16_t a=0; a < 3; a++){ tft.drawLine(dl, 40+a, dl+10, 40+a, 0xFB21);} dl+=16; } tft.setRotation(0); aveg(); while(1);}