A battery will have less noise (none) but if it can't supply the required current at the required voltage then noise is not going to make any difference
whilst i resolve the issue and find the correct USB lead to power the unit, linked the ground out from one board to the other and resolved the issue - the LCD and Serial Monitor are now displaying the same reading 374 - with 1.154vdc on the input pin A0 but the display is saying 1.83vdc (5/1023x374)
Ok rooky error not common ground between units. So more stable
OK well i cocked that up, now got a negative value -311.70
/*
16x1 LCD display using hd44780.h (Hitachi HD44780 driver).
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD R/W pin to ground
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* GND to LCD VO pin (pin 3)
*/
// include the library code:
#include <hd44780.h>
#include <hd44780ioClass/hd44780_pinIO.h> // Arduino pin i/o class header
// Sets the pins to be used by the LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
hd44780_pinIO lcd(rs, en, d4, d5, d6, d7);
const int LCD_COLS = 8; // this must be left at 8 for the 16x1 LCD being used.
const int LCD_ROWS = 2;
int sensorPin = A0; // select the input pin for the potentiometer
int sensorValue = 0; // variable to store the value coming from the sensor
// Thermistor Setup
int ThermistorPin = 0; // Changed to A0 from A8
int Vo;
float R1 = 100000; // changed to 100K
float logR2, R2, T;
float c1 = 3.354016e-03, c2 = 2.460382e-04, c3 = 3.405377e-06; // 100K NTCLE100E3 Vishay Thermistor A1, B1 & C1 values
void setup()
{
lcd.begin(LCD_COLS, LCD_ROWS); // initialize LCD with number of columns and rows:
Serial.begin(9600); // initialize the serial communications
// noLineWrap() can be used to disable automatic line wrapping.
lcd.lineWrap(); // turn on automatic line wrapping
// Print a message to the LCD
lcd.print("Let Us Begin!");
delay(2000); // 2 second delay
}
void loop()
{
lcd.clear(); // Clear Screen of existing data
Vo = analogRead(ThermistorPin); // Thermistor Settings
sensorValue = analogRead(sensorPin); // read the value from the sensor:
R2 = R1 * (1023.0 / (float)Vo - 1.0); // 100k x (1023/ 392 -1.0) = 160,969.3878
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
T = T - 273.15; // Temp in Kelvin
T = (T * 9.0)/ 5.0 + 32.0;
lcd.print("Temp = ");
lcd.print(T);
// lcd.print(Vo); // Changed to display input on Analogue Input Pin A0
Serial.println(sensorValue);
delay(500);
lcd.clear(); // Clear Screen of existing data
}