Problema pantalla LCD ILI9481

Tengo una pantalla, junto a un RTC y un DHT11 conectados en mi arduino. Quiero que los datos que me den estos sensores se muestren en el LCD, pero sin darme ningún error el compilador no lo hace. Este es el código:

#include <RTClib.h>
#include <UTFT.h>
#include <DHT11.h>
#include <Wire.h>

RTC_Millis rtc;
UTFT lcd(ILI9481,38,39,40,41);

extern uint8_t BigFont[];
extern uint8_t SmallFont[];
extern uint8_t SevenSegNumFont[];
extern uint8_t Grotesk24x48[];
extern uint8_t Grotesk32x64[];


int pin = 2;
DHT11 dht11(pin);
char minuto;
char hora;

void setup()
{
 Serial.begin(9600);
 lcd.InitLCD();
 lcd.clrScr();
 rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
}


void loop(){

    float temp, hum;
    DateTime now = rtc.now();
    lcd.setFont(BigFont);
    lcd.printNumI(now.year(), DEC, RIGHT, 20);
    lcd.printNumI(now.month(), DEC, RIGHT, 20);
    lcd.printNumI(now.day(), DEC, RIGHT, 20);
    lcd.setFont(Grotesk32x64);
    lcd.printNumI(now.hour(), DEC, CENTER, 100);
    lcd.printNumI(now.minute(), DEC, CENTER, 100);
    lcd.printNumI(temp, CENTER, 160);
    lcd.printNumI(hum, CENTER, 220);
    delay(1000);
  }

¿Qué tengo mal? Probablemente todo, pero según lo que he estado viendo sería algo así... Por cierto, creo que se nota que soy nuevo en esto xD

Edit: me sale este error al acabar de compilar:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Ya va, era el cable que no funciona bien... El código está, aunque tengo por ahí unas variables que tengo que borrar xD