#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 0xFFFF
MCUFRIEND_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);
}