Странное отображение на TFT LCD 3,5" дисплее (arduino)
Возникла проблема - когда информация выводится на дисплей(320х480), она выводится в квадратах - то есть всё отображается, но разбито на отдельные части. Как это исправить?

#include <Adafruit_GFX.h> // Ядро графической библиотеки
#include <Adafruit_TFTLCD.h> // Специфика аппаратного обеспечения
#include <MCUFRIEND_kbv.h> // Специфика работы с разными чипами
#include "Ucglib.h"
#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;
const int trigPin = 6;
const int echoPin = 5;
int Ymax = 320;
int Xmax = 480;
int base = 8;
int pos = base+6;
int deg=0;
int x;
int val =200;
int j = 2;
Servo myServo;
long duration;
int distance;
int k;
void setup(void)
{
delay(1000);
myServo.write(80);
tft.reset(); //сброс дисплея
uint16_t identifier = tft.readID(); //чтение идентификатора чипа
tft.begin(identifier); //инициализация дисплея
tft.invertDisplay(true); //установка чёрной подсветки для ILI9481
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600);
myServo.attach(3); // Defines on which pin is the servo motor attached
}
void loop(void)
{
tft.setRotation(1);
fix();
for ( x=80; x >= 10; x--){
distance = calculateDistance();
tft.println(distance);
k = map(x, 80, 10, 15,480);
myServo.write(k);
if (distance < 30){
int f = x+6;
//tft.fillScreen(BLACK);
tft.drawLine(Xmax/2, pos, -val*cos(radians(f*2)), val*sin(radians(f*2)), GREEN);//(Xmax/2, Ymax, -val*cos(radians(f*2)), val*sin(radians(f*2))); !!!!!!
}
//ucg.setColor(0, 207, 0);
//ucg.drawLine(Xmax/2, pos, -200*cos(radians(x*2)),200*sin(radians(x*2)));
int d = x+1;
//ucg.setColor(0, 207, 0);
//ucg.drawLine(Xmax/2, pos, -200*cos(radians(d*2)),200*sin(radians(d*2)));
int c = x+2;
//ucg.setColor(0, 207, 0);
//ucg.drawLine(Xmax/2, pos, -200*cos(radians(c*2)),200*sin(radians(c*2)));
int b = x+3;
//ucg.setColor(0, 102, 0);
//ucg.drawLine(Xmax/2, pos, -200*cos(radians(b*2)),200*sin(radians(b*2)));
int a = x+4;
//ucg.setColor(0, 102, 0);
//ucg.drawLine(Xmax/2, pos, -200*cos(radians(a*2)),200*sin(radians(a*2)));
int e = x+5;
tft.drawLine(Xmax/2, pos, -200*cos(radians(e*2)),200*sin(radians(e*2)), GREEN);
tft.setTextColor(RED);
tft.setCursor(160,0);
//tft.setPrintDir(2);
tft.print("Deg :");
deg = map (x, 80, 10 , 0, 180);
tft.setCursor(120,0);
// tft.setPrintDir(2);
tft.print(deg);
tft.setCursor(10,0);
tft.print(distance);
tft.setTextColor(BLUE);
tft.setCursor(90,38);
//tft.setPrintDir(2);
tft.print("0.25");
tft.setCursor(90,70);
tft.print("0.50");
tft.setCursor(90, 110);
tft.print("1.00");
}
//tft.fillScreen(BLACK);
fix();
for ( x=10; x <= 80; x++)
{
distance = calculateDistance();
Serial.println(distance);
k = map(x, 10, 80, 165,15);
myServo.write(k);
if (distance < 10){
int e = x-5;
// tft.setTextColor(RED);
tft.drawLine(Xmax/2, pos, -val*cos(radians(e*2)),val*sin(radians(e*2)), RED);
}
tft.drawLine(Xmax/2, pos, -200*cos(radians(x*2)),200*sin(radians(x*2)), GREEN);
int a = x-1;
tft.drawLine(Xmax/2, pos, -200*cos(radians(a*2)),200*sin(radians(a*2)), GREEN);
int b = x-2;
tft.drawLine(Xmax/2, pos, -200*cos(radians(b*2)),200*sin(radians(b*2)), GREEN);
int c = x-3;
tft.drawLine(Xmax/2, pos, -200*cos(radians(c*2)),200*sin(radians(c*2)), GREEN);
int d = x-4;
tft.drawLine(Xmax/2, pos, -200*cos(radians(d*2)),200*sin(radians(d*2)), WHITE);
tft.setTextColor(RED);
tft.setCursor(160,0);
tft.print("Deg :");
deg = map (x, 10, 80 , 0, 180);
tft.setCursor(120,0);
tft.print(deg);
tft.setCursor(10,0);
tft.print(distance);
tft.setTextColor(BLUE);
tft.setCursor(90,38);
tft.print("0.25");
tft.setCursor(90,70);
tft.print("0.50");
tft.setCursor(90,110);
tft.print("1.00");
}
//tft.fillScreen(BLACK);
}
void fix(){
//tft.setTextColor(RED);
//tft.drawDisc(Xmax/2, base, 5, UCG_DRAW_LOWER_RIGHT);
//tft.drawDisc(Xmax/2, base, 5, UCG_DRAW_LOWER_LEFT);
//tft.setColor(225, 255, 50);
tft.drawCircle(80, base, 115, UCG_DRAW_LOWER_RIGHT);
tft.drawCircle(80, base, 115, UCG_DRAW_LOWER_LEFT);
tft.drawCircle(80, base, 78, UCG_DRAW_LOWER_RIGHT);
tft.drawCircle(80, base, 78, UCG_DRAW_LOWER_LEFT);
tft.drawCircle(80, base, 40, UCG_DRAW_LOWER_RIGHT);
tft.drawCircle(80, base, 40, UCG_DRAW_LOWER_LEFT);
//tft.drawLine(0, base, 160,base);
//tft.drawRect(100, 0, 30, 30, WHITE);
}
int calculateDistance(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds
distance= duration*0.034/2;
return distance;
}```