Icorrect values between serial and lcd

Hi,

I am trying to display output values of a light sensor on a 2.4 tft touch screen monitor, I have managed to get values to appear on the lcd but they are different than what is displayed in serial if I use int, but if I use float then the values match. Also eventually I would like to send these values wirelessly through a 2.4ghz wireless connection but not there yet.

Why is the values different when using int and float?

// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library

// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
//   D0 connects to digital pin 8  (Notice these are
//   D1 connects to digital pin 9   NOT in order!)
//   D2 connects to digital pin 2
//   D3 connects to digital pin 3
//   D4 connects to digital pin 4
//   D5 connects to digital pin 5
//   D6 connects to digital pin 6
//   D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).

// 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

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;

float light;


void setup(void) {
  Serial.begin(38400);
  Serial.println(F("TFT LCD test"));


  tft.reset();

  uint16_t identifier = tft.readID();

  
  tft.begin(identifier);

  
}

void loop(void) {
  /*for(uint8_t rotation=0; rotation<4; rotation++)*/ {
    //tft.setRotation(rotation);// sets rotation of screen (1)(2)(3) etc
    testText();
    delay(500);
  }
}

unsigned long testFillScreen() {
  unsigned long start = micros();
  tft.fillScreen(BLACK);
  tft.fillScreen(RED);
  tft.fillScreen(GREEN);
  tft.fillScreen(BLUE);
  tft.fillScreen(BLACK);
  return micros() - start;
}

unsigned long testText() {
  tft.fillScreen(BLACK);
  unsigned long start = micros();
  tft.setCursor(0, 0);
  tft.setTextColor(WHITE);  tft.setTextSize(1);
  tft.println("Light readings");
  tft.setTextColor(YELLOW); tft.setTextSize(2);
  tft.println("...............");
  tft.setTextColor(RED);    tft.setTextSize(3);
  tft.println(0xDEADBEEF, HEX);
  tft.println();

  light = analogRead(A5);
  delay(50);
  tft.setTextColor(RED);
  tft.setTextSize(4);
  tft.println(light);
  Serial.println(light, HEX);
  
  
}

You sure you said that the right way round? You are printing the value to the serial printer in hexadecimal do you mean to do that?

Oops, should be DEC right? will try later on

should be DEC right?

The statement defaults to DEC so just leave out the second parameter.